Как использовать оператор proc glmselect в sas


Вы можете использовать оператор PROC GLMSELECT в SAS, чтобы выбрать лучшую модель регрессии на основе списка потенциальных переменных-предикторов.

Следующий пример показывает, как использовать это утверждение на практике.

Пример. Как использовать PROC GLMSELECT в SAS для выбора модели.

Предположим, мы хотим подобрать модель множественной линейной регрессии, которая использует (1) количество часов, потраченных на учебу, (2) количество сданных подготовительных экзаменов и (3) пол для прогнозирования итоговой оценки учащихся на экзамене.

Сначала мы будем использовать следующий код, чтобы создать набор данных, содержащий эту информацию для 20 студентов:

 /*create dataset*/
data exam_data;
    input hours prep_exams gender $score;
    datalines ;
1 1 0 76
2 3 1 78
2 3 0 85
4 5 0 88
2 2 0 72
1 2 1 69
5 1 1 94
4 1 0 94
2 0 1 88
4 3 0 92
4 4 1 90
3 3 1 75
6 2 1 96
5 4 0 90
3 4 0 82
4 4 1 85
6 5 1 99
2 1 0 83
1 0 1 62
2 1 0 76
;
run ;

/*view dataset*/
proc print data =exam_data;

Далее мы будем использовать оператор PROC GLMSELECT , чтобы определить подмножество переменных-предикторов, которое создает лучшую модель регрессии:

 /*perform model selection*/
proc glmselect data =exam_data;
    classgender ;
    model score = hours prep_exams gender;
run ;

Примечание . Мы включили пол в оператор класса , поскольку это категориальная переменная.

Первая группа таблиц в выводе показывает обзор процедуры GLMSELECT:

Мы видим, что критерием, используемым для прекращения добавления или удаления переменных из модели, был SBC , который является информационным критерием Шварца , иногда называемым байесовским информационным критерием .

По сути, оператор PROC GLMSELECT продолжает добавлять или удалять переменные из модели до тех пор, пока не найдет модель с наименьшим значением SBC, которая считается «лучшей» моделью.

В следующей группе таблиц показано, чем завершился пошаговый выбор:

Мы видим, что модель, содержащая только исходный термин, имела значение SBC 93,4337 .

При добавлении часов в качестве предикторной переменной в модель значение SBC упало до 70,4452 .

Лучшим способом улучшить модель было добавить пол в качестве предикторной переменной, но это фактически увеличило значение SBC до 71,7383.

Таким образом, окончательная модель включает в себя только член перехвата и изученные времена.

Последняя часть результата показывает сводку этой подобранной регрессионной модели:

Мы можем использовать значения в таблице «Оценки параметров» для написания подобранной регрессионной модели:

Экзаменационный балл = 67,161689 + 5,250257 (учебные часы)

Мы также можем увидеть различные метрики, которые говорят нам, насколько хорошо эта модель соответствует данным:

Значение R-квадрата показывает нам процент вариации результатов экзаменов, который можно объяснить количеством учебных часов и количеством сданных подготовительных экзаменов.

При этом 72,73% разброса экзаменационных баллов можно объяснить количеством учебных часов и количеством сданных подготовительных экзаменов.

Также полезно знать значение Root MSE . Это представляет собой среднее расстояние между наблюдаемыми значениями и линией регрессии.

В этой регрессионной модели наблюдаемые значения отклоняются в среднем на 5,28052 единицы от линии регрессии.

Примечание . Полный список потенциальных аргументов, которые можно использовать с PROC GLMSELECT, см. в документации SAS .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:

Как выполнить простую линейную регрессию в SAS
Как выполнить множественную линейную регрессию в SAS
Как выполнить полиномиальную регрессию в SAS
Как выполнить логистическую регрессию в SAS

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *