使用SAS Proc Logistic生成大型数据集的交互条件

时间:2018-12-18 14:39:41

标签: sas modeling interaction

使用大量解释变量(在此示例中为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个变量,这是不现实的。

有什么建议可以提供比通过困难的方式创建更好的方法更好的方法,以及创建一个包含所有交互项的新数据集吗?

1 个答案:

答案 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。这对您来说是一个合理的选择吗?