ロジスティック回帰モデルを比較するためのROC曲線
RのpROCパッケージを使うと、ROC曲線は簡単に作成できます。これまでの演習で使ってきた4つのロジスティック回帰モデルについて、ROC曲線に大きな違いがあるか確認してみましょう。事前情報として:
predictions_logitには、デフォルトのlogitリンクを用い、age、emp_cat、ir_cat、loan_amntを含む変数で推定したPD(デフォルト確率)の予測が入っています。predictions_probitには、probitを用い、age、emp_cat、ir_cat、loan_amntを含む変数で推定したPDの予測が入っています。predictions_cloglogには、cloglogリンクを用い、age、emp_cat、ir_cat、loan_amntを含む変数で推定したPDの予測が入っています。predictions_all_fullには、デフォルトのlogitリンクを用い、データセット中の7変数すべてを含めて推定したPDの予測が入っています。
まず、これら4モデルのROC曲線を1つのプロットに描画します。続いて、曲線下面積(AUC)を確認します。
この演習はコースの一部です
R で学ぶクレジットリスク・モデリング
演習の手順
- RコンソールでpROCパッケージを読み込みます。
- 関数
roc(response, predictor)を使って、4つのロジスティック回帰モデルのROCオブジェクトを作成します。レスポンスはtest_setのローンステータス指標で、test_set$loan_statusから取得できます。 - 作成したオブジェクトを使ってROC曲線を描画します。4本を1つのプロットに重ねるには、最初のROC(
ROC_logit)はplot()を使い、残り3本は同じプロットに lines() で追加します。 col引数で色を指定します。ROC_probitは"blue"、ROC_cloglogは"red"、ROC_all_fullは"green"にしてください。動画での説明と異なり、x軸ラベルは「1-Specificity」ではなくSpecificityである点に注意してください。これにより、x軸は左が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