統計 20 · 回帰診断と正則化 — 前提を確かめ、係数を抑える

Chapter 20

回帰診断と正則化 — 前提を確かめ、係数を抑える

この章がなぜ必要なのか——回帰は「当てはめて終わり」ではない.

統計ソフトは、どんなデータにも回帰直線を引いてくれる。 曲がった関係にも、外れ値だらけのデータにも、平然と係数と p 値を返す。 ソフトは前提が壊れていることを教えてくれない。

前半では残差を見る方法を扱う。残差にはモデルが取りこぼしたものが全部残っているので、 ここを見れば前提の破れがほぼすべて見つかる。

後半は正則化(Ridge・Lasso)。これは 10 章の 「バイアスを少し許して分散を大きく減らす」という取引の、最も実用的な実装である。

この章で使う既出の用語(定義は各リンク先). 母集団(01 章 2 節)、説明変数(01 章 4 節)、四分位・中央値(02 章)、相関係数(03 章)、尤度(05 章 2 節)、期待値・分散・共分散(06 章 3〜5 節)、正規分布(08 章 4 節)、χ² 分布(08 章 7 節)、MSE 分解(分散 + バイアス²)・一致性(10 章 2 節, 5 節)、ベイズ推定・MAP(10 章 7 節)、擬似反復(13 章 6 節)、p ハッキング(17 章 4 節)、ガウス・マルコフの仮定(線形性・等分散・無相関・正規性)(18 章 1 節)、\(n, p, X, \mathbf x_i\)・ハット行列 \(H\)・残差 \(\mathbf e\)(19 章 1〜2 節)、残差分散 \(\hat\sigma^2\)・自由度(19 章 3 節)、多重共線性(19 章 8 節)、交差検証(22 章 3 節)

1. 残差の種類

種類式使いどころ
生の残差\(e_i=y_i-\hat y_i\)基本
標準化残差\(e_i/\hat\sigma\)(\(\hat\sigma = \sqrt{SS_E/(n-p-1)}\) は残差標準偏差、19 章)大きさの比較
スチューデント化残差\(\dfrac{e_i}{\hat\sigma\sqrt{1-h_{ii}}}\)推奨。分散の不均一を補正
外部スチューデント化残差\(i\) を除いて推定した \(\hat\sigma_{(i)}\) を使う外れ値検出に最適

(この章では、添字 \((i)\) は「\(i\) 番目のデータを除いて計算したもの」を表す。) \(h_{ii}\) はハット行列(19 章)の対角成分で、てこ比 (leverage) と呼ぶ。

なぜ \(\sqrt{1-h_{ii}}\) で割るのか. \(\mathbf e=(I-H)\mathbf y\) で \(V[\mathbf y] = \sigma^2 I\) だから \(V[\mathbf e] = (I-H)\sigma^2 I(I-H)^\top = \sigma^2(I-H)(I-H) = \sigma^2(I-H)\)(\(H\) が対称・べき等なので \(I-H\) も対称・べき等)。 その対角成分を読むと \(V[e_i]=\sigma^2(1-h_{ii})\) である。 残差の分散は点ごとに違う——回帰直線に強く影響する点ほど残差が小さくなる。 だから生の残差を単純に比べると、影響力の強い点の異常を見逃す。

2. 残差プロット — 最初に必ず見る 4 枚

(1) 残差 vs 予測値

理想は「幅一定の帯が 0 の周りに広がる」形。

見えるパターン意味対処
ランダムな帯問題なし—
U 字・曲線線形性が崩れている二乗項、変換、非線形モデル
ラッパ型(右に広がる)不均一分散対数変換、加重最小二乗、頑健標準誤差
特定の位置で偏り欠けている変数がある変数を追加

(2) Q-Q プロット(残差の正規性)

横軸に正規分布の分位点(分布の下から \(q\) 割の位置の値。中央値は 50% 分位点)、縦軸に残差を小さい順に並べたときの同じ割合の位置の値をとる。直線に乗れば正規。

形意味
S 字裾が軽い/重い
両端が反り上がる裾が重い(外れ値が多い)
片端だけ外れる歪んでいる

(3) スケール・ロケーションプロット

\(\sqrt{\lvert\text{標準化残差}\rvert}\) vs 予測値。不均一分散の検出に特化。水平なら良好。

(4) 残差 vs てこ比(クックの距離つき)

影響の大きい点を見つける。

3. 外れ値・てこ比・影響力 — 3 つは別物

概念意味指標
外れ値 (outlier)\(y\) が予測から大きく外れるスチューデント化残差
てこ比 (leverage)\(x\) が他から離れている\(h_{ii}\)
影響力 (influence)除くと結果が大きく変わるクックの距離、DFBETAS(その点を除いたときの各係数の変化を標準誤差で割ったもの)

この 3 つの区別が実務では決定的である.

てこ比が高いこと自体は悪ではない。外れ値と重なったときに危険になる。 03 章のアンスコムの四重奏の III と IV は、まさにこの状況を示していた。

てこ比

\[ h_{ii}=\mathbf x_i^\top(X^\top X)^{-1}\mathbf x_i, \qquad \sum_i h_{ii}=p+1, \qquad \bar h = \frac{p+1}{n} \]

(\(\sum_i h_{ii}\) は \(H\) の対角和(トレース)。トレースは積の順序を巡回させても変わらない、という行列の事実を使うと \(\text{tr}(X(X^\top X)^{-1}X^\top) = \text{tr}((X^\top X)^{-1}X^\top X) = \text{tr}(I_{p+1}) = p+1\)。)

目安: \(h_{ii}>2(p+1)/n\)(平均の 2 倍)なら高てこ比。慣例的な区切りで、理論的な根拠があるわけではない。

クックの距離

\[ D_i = \frac{\sum_j(\hat y_j - \hat y_{j(i)})^2}{(p+1)\hat\sigma^2}=\frac{e_i^2}{(p+1)\hat\sigma^2}\cdot\frac{h_{ii}}{(1-h_{ii})^2} \]

「点 \(i\) を除いたら、すべての予測値がどれだけ動くか」(\(\hat y_{j(i)}\) は点 \(i\) を除いて求めた回帰による点 \(j\) の予測値)。

2 つ目の等号の導出: 点 \(i\) を除いた推定量 \(\hat{\boldsymbol\beta}_{(i)}\) は、「\(y_i\) を \(\hat y_{i(i)}\) に差し替えたデータ」の最小二乗解でもある(差し替え点の残差が 0 なので、除いた場合と同じ直線が最適)。 差し替えは \(\mathbf y\) の第 \(i\) 成分を \(y_i - \hat y_{i(i)}\) だけ減らすことなので、\(\hat{\boldsymbol\beta} = (X^\top X)^{-1}X^\top\mathbf y\) の線形性より

\[ \hat{\boldsymbol\beta}-\hat{\boldsymbol\beta}_{(i)} = (X^\top X)^{-1}\mathbf x_i\,(y_i-\hat y_{i(i)}) = (X^\top X)^{-1}\mathbf x_i\,\frac{e_i}{1-h_{ii}} \]

(最後は \(y_i - \hat y_{i(i)} = e_i/(1-h_{ii})\)——22 章で導く 1 個抜きの公式。)予測値の変化は \(\hat{\mathbf y}-\hat{\mathbf y}_{(i)} = X(\hat{\boldsymbol\beta}-\hat{\boldsymbol\beta}_{(i)})\) なので、その二乗和は

\[ (\hat{\boldsymbol\beta}-\hat{\boldsymbol\beta}_{(i)})^\top X^\top X(\hat{\boldsymbol\beta}-\hat{\boldsymbol\beta}_{(i)}) = \frac{e_i^2}{(1-h_{ii})^2}\,\mathbf x_i^\top(X^\top X)^{-1}X^\top X(X^\top X)^{-1}\mathbf x_i = \frac{e_i^2\,h_{ii}}{(1-h_{ii})^2} \]

これを \((p+1)\hat\sigma^2\) で割ると右辺になる。∎

目安: \(D_i > 1\) なら要注意(推定値が信頼領域の中心から大きく動く、という理論的な目安)。より保守的に \(D_i > 4/n\) を使う流儀もあり、こちらは経験則。どちらを使うかを決めて明記する。

式の形が語っていること. \(D_i\) は「残差の大きさ」×「てこ比」の積になっている。 どちらか一方だけでは影響力にならない。両方揃って初めて危険—— 先ほどの 3 分類が、そのまま式に現れている。

外れ値を見つけたら

絶対にやってはいけないこと: 見つけた外れ値を機械的に削除する。

正しい手順:

  1. 原因を調べる。 入力ミス、単位の取り違え、測定器の故障 → 修正または除外(理由を記録)
  2. 本物のデータなら → 除外しない。それは母集団の一部である
  3. 除外する場合は、除外前後の結果を両方報告する
  4. 外れ値に頑健な手法(ロバスト回帰、分位点回帰)を検討する

「有意になったから外れ値を消した」は 17 章の p ハッキングそのものである。

4. 不均一分散 (heteroscedasticity)

\(V[\varepsilon_i]\) が \(x\) によって変わる状態。

何が問題か

係数 \(\hat{\boldsymbol\beta}\) は不偏のままである。壊れるのは標準誤差。 だから t 値・p 値・信頼区間がすべて誤る。 典型的には標準誤差を過小評価し、偽の有意が量産される。

検出

検定内容
ブルーシュ・ペイガン検定残差の二乗 \(e_i^2\) を説明変数に回帰し、その決定係数が 0 と言えるかを検定する(\(nR^2\) が近似的に \(\chi^2_p\) に従う)。説明変数で残差の大きさが予測できるなら分散は一定でない
ホワイト検定同じ回帰に二乗項・交互作用も含めた一般形
残差プロット目視。しばしばこれが最も有用

対策

対策内容
頑健標準誤差 (HC/White)係数はそのまま、標準誤差だけ修正。最も手軽で標準的(HC = Heteroscedasticity-Consistent、不均一分散でも一致性を持つ、の意)
対数変換\(y\) が正で右に歪むとき有効なことが多い
加重最小二乗 (WLS)分散の逆数で重み付け。分散構造が既知なら最良
一般化最小二乗 (GLS)共分散構造を明示的にモデル化

頑健標準誤差の式(White の HC0。最も基本の版で、小標本向けに補正した HC1〜HC3 がある):

\[ \widehat{V}[\hat{\boldsymbol\beta}]=(X^\top X)^{-1}\left(\sum_i e_i^2\mathbf x_i\mathbf x_i^\top\right)(X^\top X)^{-1} \]

サンドイッチ推定量とも呼ばれる(パンにあたる \((X^\top X)^{-1}\) で具を挟んだ形)。 分散が不均一でも一致性を持つ。 現代の計量経済学では、とりあえず頑健標準誤差を使うのが既定になっている。

5. 自己相関

誤差項どうしが相関している状態。時系列データで頻発する。

ダービン・ワトソン統計量:

\[ DW = \frac{\sum_{i=2}^n (e_i-e_{i-1})^2}{\sum_i e_i^2} \approx 2(1-\hat\rho) \]

(\(\hat\rho\) は隣り合う残差 \(e_i, e_{i-1}\) の相関係数。分子を展開すると \(\sum e_i^2 + \sum e_{i-1}^2 - 2\sum e_ie_{i-1} \approx 2\sum e_i^2(1-\hat\rho)\) になることから。)

DW意味
≈ 2自己相関なし
< 2正の自己相関
> 2負の自己相関

対策: ラグ変数(1 期前の \(y_{i-1}\) など、過去の値を説明変数にしたもの)を入れる、時系列モデル(25 章)、Newey-West 標準誤差。

自己相関を放置すると標準誤差を大きく過小評価する。 「実質的な情報量」が \(n\) より少ないのに \(n\) の精度を主張することになるためである (13 章の擬似反復と同じ構造)。

6. 正則化 — なぜ係数を抑えるのか

問題意識

これらはすべて「係数の分散が大きすぎる」問題である。

10 章の分解を思い出す。

\[ \text{MSE}[\hat\beta_j]=V[\hat\beta_j]+\left(E[\hat\beta_j]-\beta_j\right)^2 \]

(推定量 \(\hat\beta_j\) の平均二乗誤差 = 分散 + バイアス²。)

最小二乗推定量はバイアス 0 だが、分散が大きい場合がある. ならば少しバイアスを入れる代わりに分散を大きく減らせば、総合誤差は下がる。 これが正則化の全アイデアである。

7. Ridge 回帰(L2 正則化)

\[ \boxed{\hat{\boldsymbol\beta}^{\text{ridge}}=\arg\min_{\boldsymbol\beta}\left\{\sum_i(y_i-\mathbf x_i^\top\boldsymbol\beta)^2 + \lambda\sum_{j=1}^p\beta_j^2\right\}} \]

(切片 \(\beta_0\) は罰則に含めない。)

解析解

\[ \hat{\boldsymbol\beta}^{\text{ridge}}=(X^\top X+\lambda I)^{-1}X^\top\mathbf y \]

導出: 目的関数を \(\boldsymbol\beta\) で微分すると

\[ -2X^\top(\mathbf y-X\boldsymbol\beta)+2\lambda\boldsymbol\beta=\mathbf 0 \quad\Longrightarrow\quad (X^\top X+\lambda I)\boldsymbol\beta = X^\top\mathbf y \]

∎

対角に \(\lambda\) を足すだけで、行列が必ず正則になる. \(X^\top X\) が特異(多重共線性が完全)でも、\(X^\top X+\lambda I\) は正定値(どんな \(\mathbf v \neq \mathbf 0\) に対しても \(\mathbf v^\top A\mathbf v > 0\)。実際 \(\mathbf v^\top(X^\top X+\lambda I)\mathbf v = \|X\mathbf v\|^2 + \lambda\|\mathbf v\|^2 > 0\))になり、正定値行列は必ず逆行列を持つ。 \(p > n\) のときは \(X\) の列(\(p+1\) 本)が \(n\) 次元の中に収まりきらず必ず互いに従属になるので \(X^\top X\) は特異になるが、同じ理由で \(p > n\) でも解ける——これが Ridge の最大の実用的利点である。

数値計算の分野では、この操作は昔からチホノフ正則化として知られていた。 統計と数値解析が同じ答えにたどり着いている。

性質

性質内容
バイアスあり(\(\lambda>0\) で縮小される)
分散大きく減る
係数0 に近づくが厳密には 0 にならない
相関する変数係数を均等に分け合う
スケール標準化が必須

標準化が必須な理由. 罰則 \(\sum\beta_j^2\) は単位に依存する。 「面積(m²)」と「面積(cm²)」で係数のスケールが 10000 倍違うので、 罰則の効き方がまったく変わってしまう。 正則化を使うときは、必ず説明変数を標準化する。

8. Lasso(L1 正則化)

\[ \boxed{\hat{\boldsymbol\beta}^{\text{lasso}}=\arg\min\left\{\sum_i(y_i-\mathbf x_i^\top\boldsymbol\beta)^2+\lambda\sum_j\lvert\beta_j\rvert\right\}} \]

特徴: 係数が厳密に 0 になる

なぜ 0 になるのか(幾何学的な説明):

制約付き最適化として書くと、Ridge は \(\sum\beta_j^2\le t\)(円)、 Lasso は \(\sum\lvert\beta_j\rvert\le t\)(菱形)の中で残差平方和を最小化する問題になる。

残差平方和 \(S(\boldsymbol\beta)\) は \(\boldsymbol\beta\) の 2 次式 \(\boldsymbol\beta^\top X^\top X\boldsymbol\beta - 2\boldsymbol\beta^\top X^\top\mathbf y + \text{const}\) で、\(X^\top X\) が正定値なので \(S = \) 一定 の等高線は楕円である(2 変数なら \(ax^2 + bxy + cy^2 = \) 定数)。制約なしの最小点(最小二乗解)を中心に楕円が広がっていき、制約領域に最初に触れる点が解になる。

「菱形の角」が変数選択を生む. これが Lasso の本質である。 高次元では菱形は「頂点・稜線・面」を持つ多面体になり、頂点や稜線の上の点はいくつかの座標が 0 である。次元が上がるほどそうした「座標が 0 の場所」が増えるので、楕円がそこに触れる機会も増え、スパース性はさらに強まる。

性質

性質内容
変数選択自動的に行う(係数が 0 になる)
解析解なし(座標降下法などで数値的に解く)
相関する変数どれか 1 つだけを選び、他を 0 にする(不安定)
\(p>n\)選べるのは最大 \(n\) 個まで

9. Elastic Net

両方を混ぜる。

\[ \lambda\left[\alpha\sum\lvert\beta_j\rvert+(1-\alpha)\sum\beta_j^2\right] \]

(\(\alpha\) は L1 と L2 の混合比率。scikit-learn ではこの混合比率を l1_ratio、罰則の強さ \(\lambda\) を alpha と呼ぶので、下のコードの alphas は本文の \(\lambda\) の候補である。)

Lasso のスパース性と Ridge の安定性を両立する。 相関する変数群をまとめて選ぶ(grouping effect)ので、遺伝子データなど相関の強い高次元データで有効。

10. 3 手法の比較

最小二乗RidgeLasso
罰則なし\(\lambda\sum\beta_j^2\)\(\lambda\sum\lvert\beta_j\rvert\)
バイアスなしありあり
分散大小小
変数選択しないしないする
\(p>n\)解けない解ける解ける
多重共線性弱い強いやや弱い
解析解ありありなし

\(\lambda\) の選び方

交差検証で決める(22 章)。\(\lambda\) を変えながら検証誤差を計算し、最小の \(\lambda\) を選ぶ。

実務では「1 標準誤差ルール」もよく使う—— 最小誤差から 1 SE(交差検証の各分割で得た誤差の標準誤差)以内で最も大きい \(\lambda\) を選ぶ。よりシンプルなモデルが得られる。

from sklearn.linear_model import RidgeCV, LassoCV
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
import numpy as np

model = make_pipeline(
    StandardScaler(),                          # 標準化は必須
    LassoCV(alphas=np.logspace(-3, 1, 50), cv=5)
)
model.fit(X, y)

11. ベイズとの関係

正則化は、ベイズ推定の事後最頻値 (MAP) として解釈できる(23 章)。

手法対応する事前分布
Ridge\(\beta_j\sim N(0,\tau^2)\)(正規分布)
Lasso\(\beta_j\sim \text{Laplace}(0,b)\)(ラプラス分布)

導出のあらすじ: 事後 \(\propto\) 尤度 × 事前。誤差が正規分布 \(N(0,\sigma^2)\) なら尤度は \(\prod_i\exp\{-(y_i-\mathbf x_i^\top\boldsymbol\beta)^2/2\sigma^2\}\) に比例し、事前分布 \(N(0,\tau^2)\) の密度は \(\prod_j\exp\{-\beta_j^2/2\tau^2\}\) に比例する。対数を取ると

\[ \log(\text{事後}) = \underbrace{-\frac{1}{2\sigma^2}\sum(y_i-\mathbf x_i^\top\boldsymbol\beta)^2}_{\text{尤度}}\underbrace{-\frac{1}{2\tau^2}\sum\beta_j^2}_{\text{正規事前}}+\text{const} \]

両辺に \(-2\sigma^2\) を掛けると \(\sum(y_i-\mathbf x_i^\top\boldsymbol\beta)^2 + (\sigma^2/\tau^2)\sum\beta_j^2\) になるので、対数事後の最大化は、\(\lambda=\sigma^2/\tau^2\) とした Ridge の目的関数の最小化と同じである。∎ Lasso も同様で、ラプラス分布の密度は \(\exp\{-|\beta_j|/b\}\) に比例するため、対数事前が \(-\sum|\beta_j|/b\) となり、\(\lambda = 2\sigma^2/b\) の L1 罰則になる。

正則化とは「係数は 0 の近くにあるはずだ」という事前信念を式に入れることだった. ラプラス分布は 0 で尖っているので「多くの係数はちょうど 0」という信念になり、 それがスパース性を生む。Lasso が変数選択をする理由がベイズ側からも説明できる。

12. まとめ

診断(必ず行う)

前提の破れと対処

破れ影響対処
非線形係数がバイアス変換、非線形項
不均一分散標準誤差が誤る頑健標準誤差
自己相関標準誤差が誤る時系列モデル、Newey-West
外れ値係数が歪む原因調査、ロバスト回帰

正則化