如何在 sas 中创建 roc 曲线
当响应变量是二元时,逻辑回归是我们可以用来拟合回归模型的方法。
为了评估逻辑回归模型对数据集的拟合程度,我们可以查看以下两个指标:
- 敏感性:当结果实际上是积极的时,模型预测观察结果为积极的概率。这也称为“真阳性率”。
- 特异性:当结果实际上为负时,模型预测观察结果为负的概率。这也称为“真负率”。
可视化这两个测量值的一种方法是创建ROC 曲线,它代表“接收器操作特性”曲线。该图显示逻辑回归模型的敏感性和特异性。
以下分步示例展示了如何在 SAS 中创建和解释 ROC 曲线。
第 1 步:创建数据集
首先,我们将为 18 名学生创建一个包含以下变量信息的数据集:
- 被某所大学录取(1 = 是,0 = 否)
- GPA(1 至 4 等级)
- ACT 分数(1 至 36 分)
/*create dataset*/ data my_data; input acceptance gpa act; datalines ; 1 3 30 0 1 21 0 2 26 0 1 24 1 3 29 1 3 34 0 3 31 1 2 29 0 1 21 1 2 21 0 1 15 1 3 32 1 4 31 1 4 29 0 1 24 1 4 29 1 3 21 1 4 34 ; run ;
步骤 2:拟合逻辑回归模型并创建 ROC 曲线
接下来,我们将使用proc Logistics来拟合逻辑回归模型,使用“acceptance”作为响应变量,“gpa”和“act”作为预测变量。
我们将指定递减,以便 SAS 知道如何预测响应变量取值 1 的概率。
我们还将使用plots(only)=roc为模型创建ROC 曲线:
/*fit logistic regression model & create ROC curve*/
proc logistic data =my_data descending plots ( only )=roc;
model acceptance = gpa act;
run ;
第 3 步:解释 ROC 曲线
ROC 曲线越接近图的左上角,模型对数据集中响应值的预测效果就越好。
从上图中,我们可以看到蓝色的 ROC 曲线倾向于紧贴左上角,表明逻辑回归模型在预测响应值方面做得很好。
为了量化逻辑回归模型对数据的拟合程度,我们可以计算AUC (曲线下面积),它告诉我们有多少图位于曲线下。
AUC 越接近 1,模型越好。 AUC 等于 0.5 的模型并不比进行随机分类的模型更好。
在上面的图表标题下,我们可以看到该模型的 AUC 为0.9351 。
由于该值接近于 1,这证实了模型很好地预测了响应值的值。
我们还可以使用AUC值来比较不同逻辑回归模型的拟合程度。
例如,假设我们拟合两个不同的逻辑回归模型并计算每个模型的 AUC 值:
- 模型1的AUC: 0.9351
- 模型2的AUC: 0.8140
由于模型 1 的 AUC 较大,这表明模型 1 比模型 2 更好地拟合数据。
其他资源
以下教程解释了如何在 SAS 中执行其他常见操作: