用于对比逻辑回归模型的 ROC 曲线
在 R 中可以使用 pROC 包轻松绘制 ROC 曲线。让我们看看本课程前面用到的 4 个逻辑回归模型的 ROC 曲线是否存在明显差异。先做个小提示:
predictions_logit包含使用默认 logit 链接函数得到的违约概率(PD)预测,所含变量为age、emp_cat、ir_cat和loan_amnt。predictions_probit包含使用 probit 链接函数得到的 PD 预测,所含变量为age、emp_cat、ir_cat和loan_amnt。predictions_cloglog包含使用 cloglog 链接函数得到的 PD 预测,所含变量为age、emp_cat、ir_cat和loan_amnt。predictions_all_full包含使用默认 logit 链接函数得到的 PD 预测,并包含数据集中全部 7 个变量。
您将先在同一张图上绘制这 4 个模型的 ROC 曲线。随后,再查看曲线下面积。
本练习是课程的一部分
R 中的信用风险建模
练习说明
- 在 R 控制台中加载 pROC 包。
- 使用函数
roc(response, predictor)为这 4 个逻辑回归模型构建 ROC 对象。请记住,响应变量是test_set中的贷款状态指标,可通过test_set$loan_status获取。 - 使用前一步创建的对象绘制 ROC 曲线。若要在同一张图上绘制全部曲线,对第一条 ROC(
ROC_logit)使用plot(),对另外三个模型使用 [lines()](https://www.rdocumentation.org/packages/graphics/functions/lines 来将 ROC 曲线添加到同一图中)。 - 使用
col参数更改曲线颜色:将ROC_probit设为"blue",ROC_cloglog设为"red",ROC_all_full设为"green"。注意,与视频中的说明相反,x 轴标签是 Specificity,而不是 "1-Specificity",因此该轴从左侧的 1 递减到右侧的 0。 - 看起来链接函数对这里的 ROC 影响不大,而更好的 ROC 主要来自在模型中纳入更多变量。为更精确地比较 ROC 表现,请查看 AUC,使用函数 auc()。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Load the pROC-package
# Construct the objects containing ROC-information
ROC_logit <- roc(test_set$loan_status, predictions_logit)
ROC_probit <-
ROC_cloglog <-
ROC_all_full <-
# Draw all ROCs on one plot
plot(___)
lines(___, col=___)
lines(___, col=___)
lines(___, col=___)
# Compute the AUCs