3.7 モデルの評価
最後にモデルの評価について見ていこう.
3.7.1 逸脱度
既に紹介したように,ロジスティック回帰モデルではシンプルな線形回帰モデルの議論と同様に残差を扱うことはあまり意味がなさそうである.そこで,パラメーター\(\boldsymbol\beta\)やその推定値に対する対数尤度\(l(\boldsymbol\beta)\)や,これに基づいて得られる逸脱度という概念を導入する.
\(i\)番目のデータにおける真の確率を\(\pi_i\)と表し,その推定値を\(\hat \pi_i\)としよう.まず与えられたデータについては完全に予測ができるようなモデルに対する対数尤度を\(l_{full}\)とする. 例えば説明変数に目的変数自身を利用すればそのようなモデルは構築できる. さらに完全な予測ができるモデルと対となるモデルとして,パラメーターの推定値を\(\hat{\boldsymbol\beta} = ( \hat \beta_0, 0, \ldots, 0)^\top\)としたモデルの対数尤度\(l_{null}\)を考える.これは,与えられた説明変数と目的変数には何の関連性もないとしたモデルと言える.
整理すると,以下のような3つのロジスティック回帰モデルを考えていることになる.
- fullモデル:完全に予測可能なモデル:例えば説明変数に目的変数自身を採用するモデル
- 通常モデル:通常の分析の結果,\(p\)個の説明変数を採用するモデル
- nullモデル:目的変数には何ら関係がなく,切片項のみを採用するモデル
モデルの精度としては,fullモデルが最も高く,nullモデルが最も小さくなるはずである.すなわち通常モデルの対数尤度を\(l\)とすれば,これらのモデルの対数尤度は\(l_{null} \leq l \leq l_{full}\)となる.
ここで次のような量\(D_{\max}\)を考える.
\[ D_{\max} = -2 \left ( l_{null} - l_{full} \right ) \]
この\(D_{\max}\)を最大逸脱度(null deviance)と呼びます.これは考え得るモデルの中で(与えられたデータに対する推定の意味で)最も良いモデルと最も悪いモデルの対数尤度の差を取ったものとみなせる. また,通常モデルに対する対数尤度とフルモデルに対する対数尤度の差を\(-2\)倍したものを残差逸脱度(residual deviance)と呼び
\[ D = -2 (l - l_{full}) \]
とする.この定義からこの値が小さい方がより良いと評価することができる.一方で考え得る限り最も推定が悪いモデルからどのくらい改善が為されたのかという意味で最大逸脱度が導入される.
step
関数で得られたモデルについて逸脱度の値を確認してみよう.
実はsummary(result)
を実行して表示される情報に含まれている.
##
## Call:
## glm(formula = Diagnosis ~ Nconcave_mean + Texture_mean + Radius_mean +
## Smoothness_mean + Symmetry_mean + Compactness_mean, family = binomial,
## data = newdata)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.7164 0.2221 -3.225 0.00126 **
## Nconcave_mean 3.5613 0.8484 4.198 2.70e-05 ***
## Texture_mean 1.6062 0.2615 6.143 8.11e-10 ***
## Radius_mean 3.0269 0.6255 4.839 1.30e-06 ***
## Smoothness_mean 0.5888 0.3508 1.679 0.09320 .
## Symmetry_mean 0.5729 0.2873 1.994 0.04615 *
## Compactness_mean -0.6404 0.4475 -1.431 0.15236
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 751.44 on 568 degrees of freedom
## Residual deviance: 155.28 on 562 degrees of freedom
## AIC: 169.28
##
## Number of Fisher Scoring iterations: 8
次に,2変数だけを採用したモデルfit
の結果をみてみよう.
##
## Call:
## glm(formula = Diagnosis ~ Radius_mean + Smoothness_mean, family = binomial,
## data = scaled_df)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.7925 0.1679 -4.720 2.35e-06 ***
## Radius_mean 4.2771 0.4113 10.398 < 2e-16 ***
## Smoothness_mean 1.4395 0.1905 7.558 4.09e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 751.44 on 568 degrees of freedom
## Residual deviance: 250.90 on 566 degrees of freedom
## AIC: 256.9
##
## Number of Fisher Scoring iterations: 7
それぞれを比較すると,step
関数で得られたモデルは最初に構築したモデルに比べて残差逸脱度の意味で100弱改善していることがわかる.step
関数ではAICの意味で最適なモデルを探すことをしていることと,AIC自体は対数尤度が大きい方が良くなることを踏まえれば,残差逸脱度が改善するのは自然と言える.
Deviance | fit |
result |
---|---|---|
Null deviance | 751.44 | 751.44 |
Residual deviance | 250.90 | 155.28 |