Statistics SAS:如何为300多个外部变量修改Proc模型
我必须用300多个外生变量(由于多重滞后和时间伪变量)进行Newey-West回归。这是运行SAS Newey-West回归的典型方法:Statistics SAS:如何为300多个外部变量修改Proc模型,statistics,sas,regression,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=
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时间虚拟,名为
tdum1
到tdum390
,我如何避免写r\u invest=b0+b1*r\u int+b2*r\u gnp+b3*tdum1……b390*tdum390代码> 我不确定这个过程的确切语法,但是这个宏将写出您在代码下面的注释中列出的变量。您可以对其进行编辑以符合所需的确切语法
%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;”,则宏输出将写入日志,这样您就可以看到它在做什么。太好了!谢谢!