用 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 物件。記得 response 是test_set中的貸款狀態指標,可用test_set$loan_status取得。 - 用前一步建立的物件來畫 ROC 曲線。要把它們畫在同一張圖上,第一條(
ROC_logit)用plot(),其餘三條則用 lines() 加到同一張圖上。 - 使用
col參數變更曲線顏色:ROC_probit為"blue"、ROC_cloglog為"red"、ROC_all_full為"green"。請注意,和影片中的說明不同,這裡 x 軸標籤是 Specificity,而不是「1-Specificity」,因此座標軸會從左側的 1 走到右側的 0。 - 看起來連結函式對 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