我正在使用以下代码处理回归宏:
%Macro Regression;
%let index = 1;
%do %until (%Scan(&Var2,&index," ")=);
%let Ind = %Scan(&Var2,&index," ");
ods output SelectionSummary = SelectionSummary;
proc reg data = Regression2 plots = none;
model &Ind = &var / selection = stepwise maxstep=1;
output out = summary R = RSQUARE;
run;
quit;
%if &index = 1 %then %do;
data final;
set selectionsummary;
run;
%end;
%else %do;
data final;
set final selectionsummary;
run;
%end;
%let index = %eval(&Index + 1);
%end;
%mend;
%Regression;
这段代码可以运行并给我一个表格,该表格突出显示了因变量变化最大的自变量。
我正在寻找一种方法来运行它,但回归给了我三个最好的自变量来解释因变量,如果它被选为第一个变量,例如:
选择的模型:
GDP = Human Capital
GDP = Working Capital
GDP = Growth
DependentVar Ind1 Ind2 Ind3 Rsq1 Rsq2 Rsq3
GDP human capital working capital growth 0.76 0.75 0.69
或
DependentVar Independent1 Rsq
GDP human capital 0.76
GDP working capital 0.75
GDP growth 0.69
编辑:
如果有一种方法可以逐步使用maxstep = 3并且每个因变量具有最佳的三个独立变量组合,并且条件是第一个自变量是唯一的,那将是一个绝对的好处。
TIA。
答案 0 :(得分:1)
在模型语句中尝试STOP = 3选项。它将适合最多三个变量的最佳模型。但是,它不适用于逐步选项,但可以使用R ^平方选项。
model &Ind = &var / selection = maxR stop=3;
如果您只想考虑3个变量模型,还包括start = 3。
model &Ind = &var / selection = maxR stop=3 start=3;