SAS:如何修改超过300个外生变量的Proc模型

时间:2013-10-28 08:19:50

标签: statistics sas regression

我必须使用超过300个外生变量运行Newey-West回归(由于多个滞后和时间虚拟变量)。这是运行SAS Newey-West回归的典型方法:

proc model data=two;
     endo r_invest;
     exog r_int r_gnp;
     instruments _exog_;
     parms b0 b1 b2;
     r_invest=b0 + b1*r_int + b2*r_gnp;
     fit r_invest / gmm kernel=(bart,5,0) vardef=n;
     run;
     quit; 

假设我有390个时间假人tdum1tdum390,我怎么能避免写r_invest=b0 + b1*r_int + b2*r_gnp +b3*tdum1....b390*tdum390;

1 个答案:

答案 0 :(得分:1)

我不确定此过程的确切语法,但此宏将写出您在代码下方的注释中列出的变量。您可以对其进行编辑以符合您需要的确切语法。

%macro writeOutMyVars();

    %do i=1 %to 390;
        + b%eval(&i+2)*tdum&i  
    %end;

%mend;

proc model data=two;
     endo r_invest;
     exog r_int r_gnp;
     instruments _exog_;
     parms b0 b1 b2;
     r_invest=b0 + b1*r_int + b2*r_gnp %writeOutMyVars(); ;
     fit r_invest / gmm kernel=(bart,5,0) vardef=n;
run;
quit;

如果添加“options mprint;”在代码的顶部,宏输出将被写入日志,以便您可以看到它正在做什么。