統計 22 · モデル選択と予測 — 過学習・交差検証・情報量規準

Chapter 22

モデル選択と予測 — 過学習・交差検証・情報量規準

この章がなぜ必要なのか——「よく当てはまる」と「よく予測できる」は違う.

手元のデータへの当てはまりは、変数を増やすほど良くなる。 極端には、\(n\) 個の点は \(n-1\) 次の多項式で完全に通せる(\(n-1\) 次多項式の係数は \(n\) 個あり、「\(n\) 個の点を通る」という \(n\) 本の式でちょうど決まる)。誤差ゼロである。

だがそのモデルで新しいデータを予測すると、悲惨な結果になる。 データのノイズまで覚え込んでしまったからだ。これが過学習である。

この章は「モデルの良さをどう測るか」に答える。 10 章の MSE 分解(バイアス² + 分散)が、ここで実務的な形をとって戻ってくる。この章では機械学習の慣用に合わせて分散をバリアンスとも呼ぶ。 そして統計学と機械学習が完全に合流する場所でもある。

この章で使う既出の用語(定義は各リンク先). 標本(01 章 2 節)、外れ値(03 章 1 節)、期待値 \(E[\cdot]\)・分散 \(V[\cdot]\)(06 章 3〜4 節)、独立(04 章 5 節)、相関(06 章 5 節)、尤度・最大対数尤度(10 章 3 節)、MSE 分解・一致性(10 章 2 節, 5 節)、多重比較(17 章 1 節)、ブートストラップ(16 章)、残差 \(e_i\)・\(SS_E\)・\(SS_T\)・\(R^2\)(18 章 3〜4 節)、正則化・Ridge・Lasso(20 章 7〜8 節)、てこ比 \(h_{ii}\)(20 章 3 節)、正解率・適合率・再現率(= 感度)・AUC(21 章 5 節)、キャリブレーション(21 章 8 節)

1. 過学習と汎化

用語意味
訓練誤差学習に使ったデータでの誤差
汎化誤差(テスト誤差)未知のデータでの誤差。本当に知りたいのはこちら
過学習 (overfitting)訓練誤差は小さいが汎化誤差が大きい状態
未学習 (underfitting)両方とも大きい状態

モデルの複雑さを上げていくと.

この U 字の底が最適な複雑さである。 訓練誤差を見ているかぎり、この底は絶対に見つからない。

2. バイアス-バリアンス分解

新しい点 \(x_0\) における予測誤差を分解する。真のモデルを \(y=f(x)+\varepsilon\)、ノイズは平均 0・分散 \(\sigma^2\)(\(E[\varepsilon]=0\)、\(V[\varepsilon]=\sigma^2\))とする。\(\hat f\) は訓練データから作った予測モデルで、訓練データが変わると変わる確率的なものなので、\(E[\hat f(x_0)]\) や \(V[\hat f(x_0)]\) は「訓練データの取り直し」についての期待値・分散である。

\[ \boxed{E\left[(y_0-\hat f(x_0))^2\right] = \underbrace{\left(E[\hat f(x_0)]-f(x_0)\right)^2}_{\text{バイアス}^2}+\underbrace{V[\hat f(x_0)]}_{\text{バリアンス}}+\underbrace{\sigma^2}_{\text{避けられない誤差}}} \]

導出: \(y_0 = f(x_0)+\varepsilon\) で \(\varepsilon\) は \(\hat f\) と独立。\(\bar f = E[\hat f(x_0)]\) と置く。

\[ E[(y_0-\hat f)^2]=E[(f+\varepsilon-\hat f)^2]=E[(f-\hat f)^2]+\underbrace{2E[\varepsilon]E[f-\hat f]}_{=0\ (E[\varepsilon]=0)}+\underbrace{E[\varepsilon^2]}_{=\sigma^2} \]

(真ん中の項は独立性より \(E[\varepsilon(f-\hat f)] = E[\varepsilon]E[f-\hat f]\) と分けられ、\(E[\varepsilon]=0\) で消える。最後は \(V[\varepsilon] = E[\varepsilon^2] - E[\varepsilon]^2 = E[\varepsilon^2]\)。)

\[ E[(f-\hat f)^2]=E[(f-\bar f+\bar f-\hat f)^2]=(f-\bar f)^2+\underbrace{2(f-\bar f)E[\bar f-\hat f]}_{=0}+E[(\bar f-\hat f)^2] \]
\[ =\text{バイアス}^2+\text{バリアンス} \]

∎(証明終わりの記号)

項意味モデルを複雑にすると
バイアス²モデルの表現力不足による系統誤差減る
バリアンスデータが変わると予測が変わる度合い増える
\(\sigma^2\)ノイズそのもの変わらない(減らせない)

これが「複雑さ」のトレードオフの正体である. 単純すぎるモデルは的の中心を外す(高バイアス)。 複雑すぎるモデルは的の周りに散らばる(高バリアンス)。 総和を最小にする中間点が最適である。

ダーツで言えば、下手だが安定した人(高バイアス・低バリアンス)と、 中心を狙えるが手ブレする人(低バイアス・高バリアンス)—— どちらも点が取れない。両方の和が小さい人が強い。

20 章の正則化は、意図的にバイアスを増やしてバリアンスを減らす操作だった。 この分解を見れば、なぜそれが得になりうるかが分かる。

3. 交差検証 (cross-validation)

汎化誤差を推定する、最も汎用的で信頼できる方法。

ホールドアウト法

データを訓練用・テスト用に分割(例: 7:3)。

欠点: 分割の仕方で結果が変わる。データを無駄にする(テスト分は学習に使えない)。

\(k\)-分割交差検証

  1. データを \(k\) 個のグループに分割
  2. 1 つをテスト、残りを訓練にして誤差を計算
  3. テストにするグループを変えて \(k\) 回繰り返す
  4. \(k\) 個の誤差を平均
\[ \text{CV}_k = \frac{1}{k}\sum_{j=1}^k \text{MSE}_j \]

(\(\text{MSE}_j\) は \(j\) 番目のグループをテストにしたときの平均二乗誤差 \(\frac{1}{m}\sum(y_i-\hat y_i)^2\)、\(m\) はそのグループのデータ数。7 節 でまとめる指標の 1 つ。)

\(k=5\) または \(10\) が標準。

\(k\)バイアスバリアンス計算量
小(2〜3)大(各回の訓練データが全体の \((k-1)/k\) しかなく、最終モデルより不利な条件で測るので、汎化誤差を悲観的に見積もる)小小
中(5〜10)バランス良好中中
大(\(=n\)、LOOCV)小大大

LOOCV(1 個抜き交差検証)

\(k=n\) の場合。線形回帰では閉じた式で一発計算できる。

\[ \boxed{\text{CV}_{(n)}=\frac{1}{n}\sum_{i=1}^n\left(\frac{y_i-\hat y_i}{1-h_{ii}}\right)^2} \]

(\(\hat y_i\) は全データで学習した回帰の予測値、\(h_{ii}\) はてこ比。20 章。)

導出: 線形回帰の予測値はデータの線形結合 \(\hat y_i = \sum_j h_{ij} y_j\) で書け、その対角成分 \(h_{ii}\) がてこ比である(20 章)。 点 \(i\) を除いて学習したモデルの、点 \(i\) での予測値を \(\hat y_{(i)}\) とする。 ここで「\(y_i\) を \(\hat y_{(i)}\) に差し替えた \(n\) 個のデータ」を考えると、点 \(i\) を除いて求めた回帰直線はこの差し替え点の上をちょうど通る(残差 0)ので、差し替え後の全データに対する最小二乗解でもある。 線形性より、この差し替えデータでの点 \(i\) の予測値は

\[ \hat y_{(i)} = \sum_{j\neq i} h_{ij}y_j + h_{ii}\hat y_{(i)} = \hat y_i - h_{ii}y_i + h_{ii}\hat y_{(i)} \]

\(\hat y_{(i)}\) について解くと \(\hat y_{(i)}(1-h_{ii}) = \hat y_i - h_{ii}y_i\)。よって除外したときの予測誤差は

\[ y_i - \hat y_{(i)} = y_i - \frac{\hat y_i - h_{ii}y_i}{1-h_{ii}} = \frac{y_i(1-h_{ii}) - \hat y_i + h_{ii}y_i}{1-h_{ii}} = \frac{y_i-\hat y_i}{1-h_{ii}} \]

これを 2 乗して平均したものが上の式である。∎

\(n\) 回モデルを作り直す必要がないという驚くべき結果である。 1 回の回帰から得られる残差とてこ比だけで、LOOCV の値が完全に計算できる。 てこ比の高い点は、除いたときの影響が大きいので、分母で強く割り増しされる。

やってはいけない交差検証

「特徴量選択をしてから交差検証」は重大な誤り。 全データを使って「\(y\) と相関の高い変数を 100 個選ぶ」→ そのあと交差検証、 という手順は、テストデータの情報が変数選択に漏れている(データリーク)。 結果として汎化性能を大きく楽観視する。

正しくは、変数選択も含めて交差検証のループの中に入れる。 標準化・欠測補完・特徴量エンジニアリングも同様である。 sklearn の Pipeline はこれを強制するための仕組みでもある。

特殊な状況

状況使う方法
クラス(分類問題の目的変数のカテゴリ)の不均衡層化 \(k\)-分割(各分割のクラス比を保つ)
時系列時系列分割(過去で学習、未来で検証)。ランダム分割は厳禁
グループ構造(同一患者の複数測定)グループ \(k\)-分割(同じ患者が訓練とテストに分かれないように)

時系列でランダム分割をすると、未来の情報で過去を予測することになる. 「完璧な予測モデルができた」ように見えるが、実運用では全く動かない。 実務で最もよく見る失敗の 1 つである。

4. 情報量規準

交差検証は計算コストが高い。理論的に汎化誤差を近似するのが情報量規準である。

AIC(赤池情報量規準)

\[ \boxed{\text{AIC}=-2\ell(\hat\theta)+2p} \]

(\(\ell\) = 最大対数尤度、\(p\) = モデルのパラメータ数。3 節 の分割数 \(k\) とは別物なので文字を変えてある。\(\log\) はこの章では自然対数。)小さいほど良い。

導出の考え方. 真の分布 \(g\) と推定した分布 \(f_{\hat\theta}\) のカルバック・ライブラー情報量 \(KL(g\|f_{\hat\theta})\) を最小にしたい。これは直接計算できないが、 その期待値を推定すると「最大対数尤度」にバイアス \(p\) が乗っていることが示せる。 それを補正したのが \(-2\ell+2p\) である。

\(2p\) は「パラメータを増やすと当てはまりが良くなるのは当たり前」という分の割引である。

正規線形モデルでは(\(SS_E\) は残差平方和 \(\sum(y_i-\hat y_i)^2\)、18 章)

\[ \text{AIC}=n\log\left(\frac{SS_E}{n}\right)+2p+\text{const} \]

小標本補正 (AICc):

\[ \text{AICc}=\text{AIC}+\frac{2p(p+1)}{n-p-1} \]

\(n/p < 40\) なら AICc を使う、というのが Burnham と Anderson が示した経験的な目安である(\(n\) が大きければ補正項は 0 に近づき、どちらでも同じになる)。

BIC(ベイズ情報量規準)

\[ \boxed{\text{BIC}=-2\ell(\hat\theta)+p\log n} \]

\(\log n > 2\)(自然対数なので \(n\ge 8\)、\(\ln 8 = 2.08\))なら BIC の方が罰則が重く、より単純なモデルを選ぶ。

AIC と BIC の違い

AICBIC
罰則\(2p\)\(p\log n\)
目的予測精度の最適化真のモデルの選択
理論的性質漸近有効(\(n\) が大きいとき、候補の中で予測誤差が最小のモデルを選ぶ)一致性(真のモデルを選ぶ確率→1)
前提真のモデルは候補にない(近似)真のモデルが候補に含まれる
傾向やや複雑なモデルを選ぶ単純なモデルを選ぶ

どちらが正しいのかではなく、目的が違う. 「予測を当てたい」なら AIC、「本当の構造を知りたい」なら BIC。 実務では両方計算して、選ばれるモデルが一致するかを見るとよい。 大きく食い違うなら、モデル選択自体が不安定であるという情報になる。

なお、AIC は LOOCV と漸近的に等価である(Stone が 1977 年に示した結果。証明は本シリーズの範囲を超えるので事実として引用する)。 情報量規準と交差検証は、別の道から同じ場所に着いている。

5. モデル選択の実務

手順

1. 目的を決める(予測か、解釈か、因果推論か)
    ↓
2. 候補モデルを立てる(理論・ドメイン知識に基づく)
    ↓
3. 交差検証 or 情報量規準で評価
    ↓
4. 最終モデルを全データで学習
    ↓
5. 完全に未使用のテストデータで最終評価(1 回だけ)

5 の「1 回だけ」が重要. テストデータを見て調整すると、 それはもうテストデータではなく訓練データである。 何度も使えば、テストデータへの過学習が起きる(17 章の多重比較と同じ構造)。

理想は訓練/検証/テストの 3 分割。検証データでモデルを選び、 テストデータは最後の 1 回だけ使う。

目的による使い分け

目的方針
予測交差検証で選ぶ。解釈不能でも精度が最優先。正則化・アンサンブルが有効
解釈単純なモデル。係数の意味が説明できること。BIC 寄り
因果推論モデル選択をデータに任せてはいけない。因果構造から変数を決める(24 章)

3 番目が特に重要である. 因果効果を推定したいとき、 「AIC が最小だから」という理由で交絡因子を落としてはいけない。 逆に、中間変数(処置の結果として変わる変数)を入れると効果が消える。

統計的な当てはまりの良さと、因果的な正しさは無関係である。

6. アンサンブル

複数のモデルを組み合わせて精度を上げる。バイアス-バリアンス分解で説明できる。

手法仕組み主に減らすもの
バギングブートストラップ標本で複数モデルを作り平均バリアンス
ランダムフォレストバギング + 変数もランダム選択バリアンス
ブースティング前のモデルの誤りを順に修正バイアス
スタッキング複数モデルの予測を入力に、さらにモデルを学習両方

なぜバギングでバリアンスが減るのか: 独立な \(B\) 個の予測の平均の分散は \(\sigma^2/B\)(06 章)。 実際には完全独立ではない。各予測の分散が \(\sigma^2\)、どの 2 つの予測の相関も \(\rho\) とすると、和の分散は \(B\) 個の分散と \(B(B-1)\) 組の共分散 \(\rho\sigma^2\) の和(06 章)なので、平均の分散は

\[ \frac{1}{B^2}\left[B\sigma^2 + B(B-1)\rho\sigma^2\right] = \rho\sigma^2 + \frac{1-\rho}{B}\sigma^2 \]

\(B\) を増やしても第 1 項 \(\rho\sigma^2\) は残る。 ランダムフォレストが変数もランダムに選ぶのは、\(\rho\)(木どうしの相関)を下げるためである。

7. 予測性能の指標

回帰

指標式特徴
MSE\(\frac{1}{n}\sum(y_i-\hat y_i)^2\)大きな誤差を重く見る
RMSE\(\sqrt{\text{MSE}}\)元の単位。最も使われる
MAE\(\frac{1}{n}\sum\lvert y_i-\hat y_i\rvert\)外れ値に頑健
MAPE\(\frac{100}{n}\sum\lvert\frac{y_i-\hat y_i}{y_i}\rvert\)相対誤差。\(y\approx 0\) で破綻
\(R^2\)\(1-SS_E/SS_T\)テストデータでは負になりうる

分類

21 章の指標(正解率、感度、特異度、AUC)に加えて:

指標式
F1 スコア\(\dfrac{2\times\text{適合率}\times\text{再現率}}{\text{適合率}+\text{再現率}}\)(再現率 = 感度。21 章)
対数損失\(-\frac{1}{n}\sum_{i=1}^n[y_i\log\hat p_i+(1-y_i)\log(1-\hat p_i)]\)(\(\hat p_i\) は \(y_i=1\) の予測確率)
Brier スコア\(\frac{1}{n}\sum(y_i-\hat p_i)^2\)

確率を出力するなら、対数損失や Brier スコアを見るべきである. 正解率や AUC は「順位が合っているか」しか見ないので、 確率の較正が崩れていても高い値が出る(21 章のキャリブレーション)。

8. 「モデルはすべて間違っている」

ジョージ・ボックスの言葉: 「すべてのモデルは間違っている。しかし、いくつかは役に立つ。」

統計モデルは現実の単純化であり、真実そのものではない。 問うべきは「このモデルは正しいか」ではなく、 「このモデルは、この目的にとって十分に役立つか」である。

だから AIC の理論も「真のモデルが候補にある」とは仮定していない(あくまで近似の良さを測る)。 実務でモデルを選ぶときも、完璧さではなく目的への適合で判断する。

オッカムの剃刀

同じ説明力なら、より単純なモデルを選ぶ。

理由内容
過学習しにくいパラメータが少ないほどバリアンスが小さい
解釈しやすい説明できることの価値
頑健データが変わっても結果が安定
実装・保守が楽実務では無視できない

情報量規準の罰則項(\(2p\) や \(p\log n\))は、この原則を数式にしたものである。

9. まとめ

概念内容
過学習訓練誤差 ↓、汎化誤差 ↑
バイアス-バリアンス\(\text{誤差}=\text{バイアス}^2+\text{バリアンス}+\sigma^2\)
交差検証\(k=5\) or \(10\)。汎化誤差の最も信頼できる推定
LOOCV線形回帰なら \(\sum\left(\frac{e_i}{1-h_{ii}}\right)^2/n\)(\(e_i = y_i-\hat y_i\))で一発
AIC\(-2\ell+2p\)。予測重視
BIC\(-2\ell+p\log n\)。真のモデル探索