Proc reg: параллельная проверка трех лучших переменных

Я работаю над макросом для регрессий, используя следующий код:

%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.

Как вы определяете «три лучшие независимые переменные»?

Reeza 11.04.2018 20:50

Я предполагаю, что это зависит от того, как SAS определяет их, в пошаговой регрессии он выбирается на основе того, что объясняет наибольшую дисперсию, то есть имеет лучший R ^ 2

78282219 12.04.2018 07:54

Вы используете настройки по умолчанию? Вы проверили, что это на самом деле, потому что это не R ^ 2, это показатель F. R в квадрате - это другой вариант. Я настоятельно рекомендую вам четко определить свою методологию.

Reeza 12.04.2018 18:21

Я использовал пошаговую регрессию, а затем выбрал R ^ 2 из сводной статистики и вывел в другую таблицу

78282219 16.04.2018 17:14

спасибо, я прочитаю это сейчас

78282219 16.04.2018 17:15
1
6
351
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте опцию STOP = 3 в вашей модели утверждения. Он подойдет для лучшей модели с тремя переменными. Однако он не работает с пошаговой опцией, но будет работать с опцией R ^ в квадрате.

model &Ind = &var / selection = maxR stop=3;

Если вы хотите рассмотреть только модели с 3 переменными, также включите start = 3.

model &Ind = &var / selection = maxR stop=3 start=3;

Быстрый вопрос, как мне поместить R ^ 2 в таблицу для сравнения? в этом случае вывод будет другим. мой обычный код, как указано выше, не работает

78282219 16.04.2018 18:52

Найдите соответствующую таблицу ODS и снимите ее, что, вероятно, является самым простым решением. Оператор OUTPUT по-прежнему должен генерировать значения R в квадрате.

Reeza 16.04.2018 19:48

К сожалению, для MaxR R-квадрат отображается только в виде строки перед любыми сводными таблицами, метки выходной таблицы следующие: Диагностическая панель ANOVA

78282219 17.04.2018 07:45

Другие вопросы по теме