如何在 sas 中使用 proc glmselect 语句
您可以使用 SAS 中的PROC GLMSELECT语句根据潜在预测变量列表选择最佳回归模型。
下面的例子展示了如何在实践中使用这个语句。
示例:如何在 SAS 中使用 PROC GLMSELECT 进行模型选择
假设我们想要拟合一个多元线性回归模型,该模型使用(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 中执行逻辑回归