カットオフの指定
カットオフの設定しだいで、良い混同行列が得られるかどうかが変わることを見てきました。ここでは、予測ベクトルを、ローンの状態を示す二値のベクトルに変換する方法を学びます。R では、ifelse() 関数が役立ちます。
カットオフの文脈で ifelse() を適用すると、次のようになります。
ifelse(predictions > 0.3, 1, 0)
第1引数では、predictions ベクトルの各値が 0.3 より大きいかを判定します。これが TRUE の場合、R は第2引数で指定した「1」を返し、FALSE の場合は第3引数で指定した「0」を返します。これはそれぞれ「延滞(default)」と「延滞なし(no default)」を表します。
この演習はコースの一部です
R で学ぶクレジットリスク・モデリング
演習の手順
- 完全なロジスティック回帰モデルと予測ベクトルのコードはコンソールに用意されています。
- カットオフを 0.15 にして、
ifelse()関数とpredictions_all_fullを使い、ベクトルpred_cutoff_15を作成してください。 table()を使って混同行列を確認しましょう(第1引数には真の値、つまりtest_set$loan_statusを指定します)。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# The code for the logistic regression model and the predictions is given below
log_model_full <- glm(loan_status ~ ., family = "binomial", data = training_set)
predictions_all_full <- predict(log_model_full, newdata = test_set, type = "response")
# Make a binary predictions-vector using a cut-off of 15%
# Construct a confusion matrix