統計学 学習ノート

統計検定の4級から1級まで、出題範囲の順に記事と練習問題で学ぶ

準1級-36 応用統計の手法

モデル選択

  • 情報量規準
  • AIC
  • BIC
  • クロスバリデーション

はじめに

「説明変数は、増やせば増やすほどいいんじゃないの?」

過去問を丸暗記した受験生を思い浮かべてください。過去問なら満点をとれます。でも、本番で少し違う問題が出ると、途端に手が止まります。覚えたのは考え方ではなく、過去問の答えそのものだったからです。

モデルでも、同じことが起きます。回帰に変数を足していくと、手元のデータへの当てはまりは必ずよくなります。ところが、新しいデータを予測させると、かえって外れることがあるのです。

実は、データに合っていることと、よいモデルであることは別の話です。手元のデータの成績だけを見ていると、複雑なモデルほど得をしてしまいます。

そこで登場するのが、今回の主役 モデル選択 です。これは、候補のモデルの中から、複雑さに見合う当てはまりをもつモデルを選ぶ考え方です。

前回の記事では、欠測があるときの推定を学びました。今回の記事では、モデルの複雑さに罰を与える情報量規準(AICとBIC)と、データを分けて本番の成績を見積もるクロスバリデーションについて解説します。

過学習:手元の成績と本番の成績はズレる

はじめに、なぜ手元のデータの当てはまりだけでは選べないのかを解説します。

重回帰の記事で確かめたように、変数を足しても残差平方和は増えず、決定係数は下がりません。データの偶然の揺れまで、モデルが覚えてしまうからです。このように、手元のデータには合うのに、新しいデータの予測が悪くなる現象を 過学習(過適合、overfitting)と呼びます。

では、手元の成績と本番の成績は、どれくらいズレるのでしょうか? 線形回帰で計算してみましょう。

nn 個のデータに、パラメータ pp 個の正しい線形モデルを当てはめます。誤差の分散を σ2\sigma^2 とします。残差平方和の期待値は (n−p)σ2(n - p)\sigma^2 でした。一方、同じ説明変数の値で新しく観測した yi∗y^{*}_i を予測すると、予測値の分散の合計 pσ2p\sigma^2 が誤差に上乗せされます。1個あたりの二乗誤差の期待値は、次のようになります。

E[1n∑i(yi−y^i)2]=σ2(1−pn)⏟手元の成績,E[1n∑i(yi∗−y^i)2]=σ2(1+pn)⏟本番の成績\underbrace{E\left[\frac{1}{n}\sum_i (y_i - \hat{y}_i)^2\right] = \sigma^2\left(1 - \frac{p}{n}\right)}_{\text{手元の成績}}, \qquad \underbrace{E\left[\frac{1}{n}\sum_i (y^{*}_i - \hat{y}_i)^2\right] = \sigma^2\left(1 + \frac{p}{n}\right)}_{\text{本番の成績}}

言葉で言うと、手元の成績は実力より σ2p/n\sigma^2 p/n だけよく見え、本番の成績は実力より σ2p/n\sigma^2 p/n だけ悪くなります。差は 2σ2p/n2\sigma^2 p/n で、パラメータの数 pp に比例します。

例えば、σ2=4\sigma^2 = 4、n=50n = 50、p=5p = 5 なら、手元の成績は3.6、本番の成績は4.4です。真の誤差の分散4を、手元の成績は下回ってしまうのです。

一方で、変数が足りなくても困ります。予測の誤差は、次の3つに分解できます。

予測誤差=σ2+(バイアス)2+分散\text{予測誤差} = \sigma^2 + (\text{バイアス})^2 + \text{分散}

単純すぎるモデルは的の中心を外し、バイアスが大きくなります。複雑すぎるモデルはデータが変わるたびに予測が揺れ、分散が大きくなります。シーソーのように、一方を下げると他方が上がるのです。これをバイアスと分散のトレードオフと呼びます。

モデル選択の目標は、このシーソーの釣り合う点を見つけることです。そのためには、本番の成績を見積もる必要があります。方法は2つです。

【本番の成績の見積もり方】

  1. 手元の成績に、複雑さの分だけハンデを足す: 情報量規準
  2. データの一部を隠して、本番を再現する: クロスバリデーション

以上が、過学習についての解説です。

AIC:予測の良さを見積もる

次に、最もよく使われる情報量規準について説明します。

情報量規準 とは、モデルの当てはまりの悪さに、複雑さの罰則を足した指標です。値が小さいモデルほど、よいモデルと判断します。ゴルフのハンデのようなものです。スコアが同じなら、ハンデの大きい選手、つまりパラメータの多いモデルのほうが不利になります。

その代表が AIC(赤池情報量規準、Akaike Information Criterion)です。

AIC=−2log⁡L(θ^)+2k\text{AIC} = -2 \log L(\hat{\theta}) + 2k

L(θ^)L(\hat{\theta}) は最大尤度、kk は推定するパラメータの数です。第1項が当てはまりの悪さ、第2項が複雑さの罰則です。

導出の要点を見ておきましょう。真の分布を gg、モデルを f(y∣θ)f(y \mid \theta) とします。モデルのよさは、真の分布とのズレであるカルバック・ライブラー情報量で測ります。

D(g ∥ f)=Eg[log⁡g(Y)]−Eg[log⁡f(Y∣θ^)]D(g \,\|\, f) = E_g[\log g(Y)] - E_g[\log f(Y \mid \hat{\theta})]

第1項はモデルによらないので、新しいデータに対する対数尤度の期待値 Eg[log⁡f(Y∣θ^)]E_g[\log f(Y \mid \hat{\theta})] を大きくすることが目標です。これを手元の最大対数尤度 log⁡L(θ^)\log L(\hat{\theta}) で見積もると、同じデータで θ^\hat{\theta} を決めているぶん、平均して約 kk だけよく見えます。前の節の pp に比例するズレと同じ話です。そこで、kk を引いて補正し、−2-2 倍したものがAICです。要するに、AICは「本番の成績の見積もり」です。

正規線形回帰では、最大対数尤度が残差平方和 RSS で書けます。

−2log⁡L(θ^)=n{log⁡(2π)+log⁡RSSn+1}-2\log L(\hat{\theta}) = n\left\{\log(2\pi) + \log\frac{\text{RSS}}{n} + 1\right\}

パラメータの数 kk には、回帰係数だけでなく誤差の分散 σ2\sigma^2 も数えます。ただし、どのモデルにも1個ずつ入るので、比較の結果は変わりません。

例題:AICで回帰モデルを選ぶ

コンビニの100日分の売上を、説明変数の数を変えた4つのモデルで分析しました。kk は切片、回帰係数、σ2\sigma^2 の合計です。

モデルkkRSS−2log⁡L-2\log L
M132,000583.36
M241,650564.12
M351,590560.42
M461,570559.15

AICが最も小さいモデルを選びましょう。

【解き方】

  1. M1のAIC: 583.36+2×3=589.36583.36 + 2 \times 3 = 589.36
  2. M2のAIC: 564.12+8=572.12564.12 + 8 = 572.12
  3. M3のAIC: 560.42+10=570.42560.42 + 10 = 570.42
  4. M4のAIC: 559.15+12=571.15559.15 + 12 = 571.15

答えはM3です。M4は当てはまりが最もよいのですが、パラメータを1つ増やして −2log⁡L-2\log L が1.27しか減らず、罰則の増加分2を取り返せていません。

せっかくなので、別の例も見てみましょう。分割表の対数線形モデルでは、飽和モデルとの比較から、AICの差を G2−2×(自由度)G^2 - 2 \times (\text{自由度}) で計算できます。前々回の表では、[AC][BC][AC][BC] が 3.83−4=−0.173.83 - 4 = -0.17、[AB][AC][BC][AB][AC][BC] が 3.75−2=1.753.75 - 2 = 1.75、[AB][C][AB][C] が 191.99−6=185.99191.99 - 6 = 185.99 です。互いに含まれない [AB][C][AB][C] と [AC][BC][AC][BC] も比べられ、[AC][BC][AC][BC] が選ばれます。

使うときの注意は3つあります。

【AICの注意点】

  • 比べられるのは、同じデータ、同じ目的変数のモデルどうしだけ。yy と log⁡y\log y のモデルは、そのままでは比べられない
  • 値そのものに意味はなく、モデル間の差だけに意味がある
  • 検定ではないので、「有意に良い」とは言えない

試験のポイント:パラメータを1つ増やす価値があるのは、−2log⁡L-2\log L が2より大きく減るときです。これは棄却の限界値を2とした尤度比検定と同じで、有意水準は約0.157にあたります。

以上が、AICについての説明です。

BIC:真のモデルを見つける

続いて、もう1つの情報量規準であるBICについて解説します。

BIC(ベイズ情報量規準、Bayesian Information Criterion)は、罰則の 22 を log⁡n\log n に置き換えたものです。

BIC=−2log⁡L(θ^)+klog⁡n\text{BIC} = -2 \log L(\hat{\theta}) + k \log n

nn はデータの個数です。log⁡n>2\log n > 2 となるのは n≥8n \ge 8 のときなので、ほとんどの場面で、BICの罰則のほうが重くなります。つまり、BICはAICより単純なモデルを選びやすいのです。AICが「本番で点を取れれば何でも採用する監督」なら、BICは「余計な選手を入れたくない厳しい監督」です。

なぜ log⁡n\log n が出てくるのでしょうか? BICの出発点は、次の記事で学ぶベイズ法です。モデルの事後確率は、事前分布で尤度を平均した周辺尤度に比例します。

m(y)=∫f(y∣θ) π(θ) dθm(y) = \int f(y \mid \theta)\, \pi(\theta)\, d\theta

nn が大きいと、被積分関数は θ^\hat{\theta} のまわりの幅 1/n1/\sqrt{n} 程度の山になります。パラメータが kk 個あるので、積分の値はおよそ山の高さ × 幅の kk 乗です。対数をとると、次のようになります。

log⁡m(y)≈log⁡L(θ^)−k2log⁡n\log m(y) \approx \log L(\hat{\theta}) - \frac{k}{2} \log n

これを −2-2 倍したものがBICです。要するに、BICは「周辺尤度の見積もり」であり、各モデルの事前確率が等しいとき、BICが小さいほど、そのモデルの事後確率が高いことを表します。

さきほどのコンビニの例で計算してみましょう。log⁡100≈4.605\log 100 \approx 4.605 です。

モデルkkAICBIC
M13589.36597.18
M24572.12582.54
M35570.42583.45
M46571.15586.78

AICはM3、BICはM2を選びました。同じデータでも、基準が違えば答えが変わります。では、どちらが正しいのでしょうか? 実は、2つは目的が違います。

AICBIC
目的予測の精度真のモデルの特定
罰則2k2kklog⁡nk \log n
選びやすいモデルやや複雑やや単純
n→∞n \to \infty の性質複雑なモデルを選ぶ確率が残る真のモデルが候補にあれば、それを選ぶ(一致性)

例えば、売上の予測に使いたいならAICが向いています。「本当に効いている要因はどれか」を知りたいならBICが向いています。候補に真のモデルがあるとは限らない現実の問題では、目的に合わせて選び、どちらも計算して比べることが多いです。

補足(ここは読み飛ばしてOK): パラメータを1つ増やす判断をBICで行うと、限界値は log⁡n\log n になります。n=100n = 100 なら4.61で有意水準は約0.032、n=1000n = 1000 なら6.91で約0.009です。データが増えるほど基準が厳しくなることが、一致性の理由です。

試験のポイント:AICの罰則は 2k2k、BICの罰則は klog⁡nk \log n です。n≥8n \ge 8 なら、BICのほうが単純なモデルを選びます(同じモデルを選ぶこともあります)。

以上が、BICについての解説です。

クロスバリデーション:本番を手元で再現する

最後に、データを分けて予測の成績を測る方法を見ていきましょう。

クロスバリデーション(交差検証、cross-validation)は、データを分割し、一部で学習して、残りで予測の誤差を測る方法です。過去問の一部を隠して勉強し、隠しておいた問題で模擬試験をするようなものです。隠した問題は覚えようがないので、本番に近い成績が分かります。

最も一般的な KK 分割クロスバリデーションの手順は、次のとおりです。

【K分割クロスバリデーションの手順】

  1. データを KK 個のグループに無作為に分ける
  2. 1つのグループをテスト用にし、残りの K−1K - 1 個でモデルを当てはめる
  3. テスト用のグループで予測の誤差を計算する
  4. テスト用を順に入れ替えて KK 回行い、誤差を平均する

KK は5や10がよく使われます。例えば、100個のデータで K=5K = 5 なら、80個で学習して20個で試すことを5回繰り返します。尤度が計算できない手法にも使えることが、大きな利点です。

K=nK = n のとき、1個だけを抜いて残り全部で学習することになります。これを 1個抜き交差検証(leave-one-out、LOO)と呼びます。nn 回の当てはめが必要に見えますが、線形回帰では、1回の当てはめの結果から計算できます。

yi−y^(−i)=ei1−hiiy_i - \hat{y}_{(-i)} = \frac{e_i}{1 - h_{ii}}

y^(−i)\hat{y}_{(-i)} は ii 番目を除いて当てはめたときの予測値、eie_i はふつうの残差、hiih_{ii} は回帰診断の記事で学んだハット行列の対角成分(てこ比)です。てこ比が大きい点は、自分を除くと予測が大きく外れます。これらの二乗の合計を PRESS と呼びます。

例題:1個抜きで2つのモデルを比べる

5個のデータ (x,y)=(1,2),(2,3),(3,5),(4,4),(5,7)(x, y) = (1, 2), (2, 3), (3, 5), (4, 4), (5, 7) で、平均だけのモデルと直線のモデルをPRESSで比べましょう。

【解き方】

  1. 平均だけのモデル: yˉ=4.2\bar{y} = 4.2、hii=1/5h_{ii} = 1/5。残差は −2.2,−1.2,0.8,−0.2,2.8-2.2, -1.2, 0.8, -0.2, 2.8 で、これらを 0.80.8 で割って二乗して足すと、PRESSは 14.8÷0.64=23.12514.8 \div 0.64 = 23.125
  2. 直線のモデル: y^=0.9+1.1x\hat{y} = 0.9 + 1.1x で、残差は 0,−0.1,0.8,−1.3,0.60, -0.1, 0.8, -1.3, 0.6
  3. てこ比は 0.6,0.3,0.2,0.3,0.60.6, 0.3, 0.2, 0.3, 0.6 なので、ei/(1−hii)e_i/(1 - h_{ii}) は 0,−0.14,1.00,−1.86,1.500, -0.14, 1.00, -1.86, 1.50
  4. 直線のPRESS: 二乗して足すと約6.72

答えは、PRESSが小さい直線のモデルです。残差平方和は直線で2.7でしたが、PRESSは約6.72に増えています。手元の成績が甘く見えていた分が、ここで現れました。

使うときの注意も押さえておきましょう。

【クロスバリデーションの注意点】

  • 時系列データでは、無作為に分けると未来の情報で過去を予測してしまう。過去で学習し、未来で試す形に分ける
  • 標準化や変数の選択も、学習用のデータだけで行う。全体で行うと、テスト用の情報が漏れる
  • クロスバリデーションでモデルを選ぶと、その誤差は少し楽観的になる。最終評価には、別に取っておいたテストデータを使う

また、KK の選び方にもトレードオフがあります。KK が大きいと学習データが全体に近いのでバイアスは小さくなりますが、計算が増えて、見積もりの分散は大きくなりやすいです。なお、1個抜き交差検証とAICは、nn が大きいと漸近的に同等であることが知られています。どちらも予測の良さを見ているので、これは自然な結果です。

以上が、クロスバリデーションについての解説です。

細かい式を忘れてしまっても問題ありません。ここでは、「手元の成績は甘い」「AICは予測、BICは真のモデル」「クロスバリデーションは隠した問題で試す」という点だけ押さえておきましょう。

今回のまとめ

それでは、今回の内容を振り返ります。

今回は、複雑さに見合うモデルを選ぶ方法について紹介しました。手元のデータの成績は、モデルが複雑なほど甘くなります。情報量規準はその甘さを計算で引き、クロスバリデーションはデータを隠して実際に測ります。どちらも、「本番の成績を見積もる」という同じ目標に向かっています。

今回のポイントを振り返りましょう。

振り返り

  • 変数を足すと手元の当てはまりは必ずよくなるが、本番の成績はよくなるとは限らない。過去問の丸暗記が過学習。
  • 情報量規準は、当てはまりの悪さに複雑さの罰則を足した値で、小さいほどよい。
  • AICは −2log⁡L+2k-2\log L + 2k で予測の良さを、BICは −2log⁡L+klog⁡n-2\log L + k\log n で真のモデルらしさを見る。
  • n≥8n \ge 8 ならBICの罰則のほうが重く、より単純なモデルを選びやすい。
  • クロスバリデーションは隠したデータで予測誤差を測る模擬試験。線形回帰の1個抜きは ei/(1−hii)e_i/(1 - h_{ii}) で計算できる。

キーワードのおさらい

  • 過学習: 手元のデータに合いすぎて、新しいデータの予測が悪くなること
  • 情報量規準: 当てはまりと複雑さの釣り合いを1つの値で測る指標
  • AIC: −2log⁡L(θ^)+2k-2\log L(\hat{\theta}) + 2k。予測の良さを見積もる情報量規準
  • BIC: −2log⁡L(θ^)+klog⁡n-2\log L(\hat{\theta}) + k\log n。周辺尤度を見積もる情報量規準
  • クロスバリデーション: データを分割し、学習に使わなかったデータで予測誤差を測る方法

さて、今回BICの導出で、「事前分布で平均する」というベイズの考え方が少しだけ顔を出しました。母数を決まった値ではなく、確率で語るとはどういうことでしょうか?

次回は、事前分布から事後分布を求め、MCMCで計算する「ベイズ法」について紹介します。

それでは、次の記事へ進んでいきましょう。

練習問題5問開いて挑戦する
問1. 最小二乗法の重回帰モデルに説明変数を1つ追加したときの説明として、正しいものはどれか。
問2. 同じデータに当てはめた3つのモデルの最大対数尤度とパラメータ数が、A(−120.0-120.0、3個)、B(−117.5-117.5、4個)、C(−116.0-116.0、6個)だった。AICで選ばれるモデルとして正しいものはどれか。
問3. n=1000n = 1000、−2log⁡L(θ^)=500-2\log L(\hat{\theta}) = 500、パラメータ数 k=4k = 4 のモデルのBICに最も近いものはどれか。ただし log⁡1000≈6.91\log 1000 \approx 6.91 とする。
問4. AICとBICの説明として、最も適切なものはどれか。
問5. 線形回帰で、ii 番目の残差が ei=1.2e_i = 1.2、てこ比が hii=0.4h_{ii} = 0.4 のとき、ii 番目を除いて当てはめたモデルによる予測誤差 yi−y^(−i)y_i - \hat{y}_{(-i)} として正しいものはどれか。