ロジスティック回帰:導入

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

Lore Dirick

Manager of Data Science Curriculum at Flatiron School

最終データ構造

str(training_set)
'data.frame':\t19394 obs. of  8 variables:
 $ loan_status   : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
 $ loan_amnt     : int  25000 16000 8500 9800 3600 6600 3000 7500 6000 22750 ...
 $ grade         : Factor w/ 7 levels "A","B","C","D",..: 2 4 1 2 1 1 1 2 1 1 ...
 $ home_ownership: Factor w/ 4 levels "MORTGAGE","OTHER",..: 4 4 1 1 1 3 4 3 4 1 ...
 $ annual_inc    : num  91000 45000 110000 102000 40000 ...
 $ age           : int  34 25 29 24 59 35 24 24 26 25 ...
 $ emp_cat       : Factor w/ 5 levels "0-15","15-30",..: 1 1 1 1 1 2 1 1 1 1 ...
 $ ir_cat        : Factor w/ 5 levels "0-8","11-13.5",..: 2 3 1 4 1 1 1 4 1 1 ...
R で学ぶクレジットリスク・モデリング

ロジスティック回帰とは?

  • 出力が0〜1の回帰モデル

$$P({\text{loan status}}=1|x_1,...,x_m) = \frac{1}{1+e^{-(\beta_0 + \beta_1 x_1 + ... + \beta_m x_m)}}$$

  • $x_1,...,x_m$:
loan_amnt  grade  age  annual_inc  home_ownership  emp_cat  ir_cat
  • $\beta_0,...\beta_m$: 推定すべきパラメータ

  • $\beta_0 + \beta_1 x_1 + ... + \beta_m x_m$: 線形予測子

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

Rでのロジスティックモデル当てはめ

log_model <- glm(loan_status ~ age , 
                 family= "binomial", data = training_set)
log_model
Call:  glm(formula = loan_status ~ age, 
           family = "binomial", data = training_set)
Coefficients:
(Intercept)          age  
  -1.793566    -0.009726  
Degrees of Freedom: 19393 Total (i.e. Null);  19392 Residual
Null Deviance:\t    13680 
Residual Deviance: 13670 \tAIC: 13670

$$P({\text{loan status}}=1|\text{age}) = \frac{1}{1+e^{-(\hat{\beta_0} + \hat{\beta_1} \text{age})}}$$

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

デフォルト確率

$$P({\text{loan status}}=1|x_1,...,x_m) = \frac{1}{1+e^{-(\beta_0 + \beta_1 x_1 + ... + \beta_m x_m)}} = \frac{e^{\beta_0 + \beta_1 x_1 + ... + \beta_m x_m}}{1 + e^{\beta_0 + \beta_1 x_1 + ... + \beta_m x_m}}$$

$$

$$P({\text{loan status}}=0|x_1,...,x_m) = 1- \frac{e^{\beta_0 + \beta_1 x_1 + ... + \beta_m x_m}}{1 + e^{\beta_0 + \beta_1 x_1 + ... + \beta_m x_m}} = \frac{1}{1+e^{\beta_0 + \beta_1 x_1 + ... + \beta_m x_m}}$$

$$

$$\frac{P({\text{loan status}}=1|x_1,...,x_m)}{P({loan \space status}=0|x_1,...,x_m)} = e^{\beta_0 + \beta_1 x_1 + ... + \beta_m x_m}$$

  • loan_status = 1 のオッズ
R で学ぶクレジットリスク・モデリング

係数の解釈

  • 変数 $x_j$ が1増えると
    • オッズは $e^{\beta j}$ 倍になる
  • $\beta_j < 0$ のとき
    • $e^{\beta j} < 1$
    • $x_j$ が増えるとオッズは下がる
  • $\beta_j > 0$ のとき
    • $e^{\beta j} > 1$
    • $x_j$ が増えるとオッズは上がる

本モデルへの適用:

  • 変数 age が1増えると
    • オッズは $e^{-0.009726}$ 倍
    • オッズは 0.991 倍
R で学ぶクレジットリスク・モデリング

練習しましょう!

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

Preparing Video For Download...