我正在尝试为多个变量创建一个 proc glm 函数。当我运行代码时,需要几分钟的时间来处理,然后 sas studio 崩溃并让我退出。
我哪里出错了:
proc glm data=diet;
class age sex smokstat bmi vituse cal fat fiber alcohol chol betadiet retdiet;
model betaplsama=age sex smokstat bmi vituse cal fat fiber alcohol chol betadiet retdiet;
model retplasma=age sex smokstat bmi vituse cal fat fiber alcohol chol betadiet retdiet;
means age sex smokstat bmi vituse cal fat fiber alcohol chol betadiet retdiet / schefee;
run;
我需要进行方差分析。 教授提供的示例代码:
data twoway;
input class1 $ class2 $ y;
datalines;
;
proc glm data=twoway;
class class1 class2;
model y=class1 class2 class1*class2; /*(model y=class1|class2)*/
means class1 class2 class1*class2 / scheffe; /*(means class1|class2)*/
run;
您已将每个变量指定为类变量。 BMI、年龄、卡路里和脂肪等值不太可能是绝对的。您基本上是在告诉 SAS 将每个单独的值视为其自己的级别并对它进行单热编码。确定哪些是您的分类变量,然后将它们添加到
class
语句中。您不需要对数字变量执行此操作。例如:
proc glm data=sashelp.cars;
class origin make cylinders;
model horsepower = origin make cylinders weight wheelbase msrp;
run;
class
语句告诉SAS将origin
、make
和cylinders
视为分类变量并自动对它们进行one-hot编码。默认情况下,weight
、wheelbase
和 msrp
被视为数字。