使用大量解释变量(在此示例中为400)执行逻辑回归。我可以使用下面的model语句中的代码轻松地引用所有400个变量,但是还有一种简便的方法来生成一级交互作用项(即,所有成对的两个)吗?
proc logistic data = d1;
model y = var1-var400 / rsquare;
run;
我看过这样的代码:
proc logistic data = d1;
model y = var1 | var2 | var3... @2 / rsquare;
run;
但是对于400个变量,这是不现实的。
有什么建议可以提供比通过困难的方式创建更好的方法更好的方法,以及创建一个包含所有交互项的新数据集吗?
答案 0 :(得分:0)
您可以使用proc sql轻松地从数据集中生成包含列表变量的宏变量,例如:
proc sql noprint;
select name into :var_list
separated by '|'
from dictionary.columns
where libname = 'SASHELP'
and memname = 'CLASS'
;
quit;
%put &var_list;
然后,您可以在代码中使用该宏变量,而不用键入var1 | ... | var400
。这对您来说是一个合理的选择吗?