信用承認率

Pythonで学ぶクレジットリスクモデリング

Michael Crabtree

Data Scientist, Ford Motor Company

しきい値とローン状態

  • 以前、prob_default の範囲に対してしきい値を設定した
    • これで予測 loan_status を変更
preds_df['loan_status'] = preds_df['prob_default'].apply(lambda x: 1 if x > 0.4 else 0)
Loan prob_default threshold loan_status
1 0.25 0.4 0
2 0.42 0.4 1
3 0.75 0.4 1
Pythonで学ぶクレジットリスクモデリング

しきい値と承認率

  • 予測を使ってより良いしきい値を設定
    • 新規ローンの承認/否認にも使用可能
  • 新規ローン全体で、延滞見込みは否認したい
    • テストデータを新規ローンの例として使う
  • 承認率: ポートフォリオの延滞を抑えるために承認する新規ローンの割合
    • 承認された延滞ローンは、偽陰性に近い影響
Pythonで学ぶクレジットリスクモデリング

承認率の理解

  • 例: prob_default が低い方から85%を承認

予測確率の分布ヒストグラム

Pythonで学ぶクレジットリスクモデリング

しきい値の計算

  • 承認率85%となるしきい値を計算
import numpy as np
# Compute the threshold for 85% acceptance rate
threshold = np.quantile(prob_default, 0.85)
0.804
Loan prob_default Threshold Predicted loan_status Accept or Reject
1 0.65 0.804 0 承認
2 0.85 0.804 1 否認
Pythonで学ぶクレジットリスクモデリング

計算したしきい値の適用

  • 新しいしきい値で loan_status を再割り当て
# Compute the quantile on the probabilities of default
preds_df['loan_status'] = preds_df['prob_default'].apply(lambda x: 1 if x > 0.804 else 0)
Pythonで学ぶクレジットリスクモデリング

不良率(Bad Rate)

  • しきい値を設定しても、承認済みローンの一部は延滞になる
  • これは、prob_default がモデルの較正不足な境界付近のローン

不良率を強調した承認ローンの棒グラフ

Pythonで学ぶクレジットリスクモデリング

不良率の計算

不良率の式

#Calculate the bad rate
np.sum(accepted_loans['true_loan_status']) / accepted_loans['true_loan_status'].count()
  • 非延滞を 0、延滞を 1 とすれば、sum() は延滞件数
  • 単一列の .count() はデータフレームの行数と同じ
Pythonで学ぶクレジットリスクモデリング

練習してみましょう!

Pythonで学ぶクレジットリスクモデリング

Preparing Video For Download...