この問題では、VIF(分散拡大因子)の計算を通じて多重共線性を定量化し、過学習リスクとの関係について理解を深めます。VIFは実際の回帰分析において、モデルの安定性と予測性能を評価する指標です。[[memory:1942104]]
VIF(分散拡大因子)の基礎理論
Step 1: VIFの定義と意味
VIFの数学的定義:
$$\text{VIF}_j = \frac{1}{1 - R_j^2}$$
ここで、$R_j^2$は変数$X_j$を他の全ての説明変数で回帰したときの決定係数です。
VIFの直感的解釈:
- VIF = 1:完全に独立(多重共線性なし)
- VIF = 5:標準誤差が独立時の$\sqrt{5} \approx 2.24$倍
- VIF = 10:標準誤差が独立時の$\sqrt{10} \approx 3.16$倍
- VIF → ∞:完全な多重共線性
判定基準:
| VIFの値 | 多重共線性の程度 | 過学習リスク | 対応策 |
|---|
| 1.0 - 2.5 | 低い | 低い | 問題なし |
| 2.5 - 5.0 | 中程度 | 中程度 | 注意深く監視 |
| 5.0 - 10.0 | 高い | 高い | 対策を検討 |
| 10.0以上 | 非常に高い | 非常に高い | 緊急対策必要 |
Step 2: 多重共線性と過学習の関係
多重共線性が過学習を引き起こすメカニズム:
- パラメータの不安定化:小さなデータの変動で係数が大きく変化
- 分散の増大:推定量の分散が過度に大きくなる
- 数値的不安定性:計算誤差の蓄積
- 汎化性能の低下:訓練データに過度に適合
標準誤差の増大:
$$\text{SE}(\hat{\beta}_j) = \sqrt{\text{VIF}_j} \times \text{SE}_{\text{independent}}(\hat{\beta}_j)$$
VIFが大きいほど、回帰係数の標準誤差が増大し、推定の不確実性が高まります。
X₁のVIF計算の詳細手順
Step 3: 相関係数行列の構築
与えられた相関係数:
- $r(X_1, X_2) = 0.8$
- $r(X_1, X_3) = 0.6$
- $r(X_2, X_3) = 0.7$
相関係数行列:
$$\mathbf{R} = \begin{pmatrix} 1 & 0.8 & 0.6 \\ 0.8 & 1 & 0.7 \\ 0.6 & 0.7 & 1 \end{pmatrix}$$
この行列は説明変数間の相関構造を表しています。
Step 4: X₁の決定係数R₁²の計算
重回帰の設定:
$$X_1 = \beta_0 + \beta_2 X_2 + \beta_3 X_3 + \epsilon$$
$X_1$を$X_2$と$X_3$で回帰したときの決定係数$R_1^2$を求めます。
決定係数の公式:
3変数の場合の決定係数は以下で計算できます:
$$R_1^2 = \frac{r_{12}^2 + r_{13}^2 - 2r_{12}r_{13}r_{23}}{1 - r_{23}^2}$$
数値の代入:
- $r_{12} = 0.8$
- $r_{13} = 0.6$
- $r_{23} = 0.7$
$$R_1^2 = \frac{(0.8)^2 + (0.6)^2 - 2(0.8)(0.6)(0.7)}{1 - (0.7)^2}$$
Step 5: 段階的な計算
分子の計算:
$$\text{分子} = (0.8)^2 + (0.6)^2 - 2(0.8)(0.6)(0.7)$$
$$= 0.64 + 0.36 - 2 \times 0.8 \times 0.6 \times 0.7$$
$$= 0.64 + 0.36 - 2 \times 0.336$$
$$= 1.00 - 0.672 = 0.328$$
分母の計算:
$$\text{分母} = 1 - (0.7)^2 = 1 - 0.49 = 0.51$$
R₁²の計算:
$$R_1^2 = \frac{0.328}{0.51} = 0.6431$$
VIF₁の計算:
$$\text{VIF}_1 = \frac{1}{1 - R_1^2} = \frac{1}{1 - 0.6431} = \frac{1}{0.3569} = 2.80$$
計算結果の確認:
$\text{VIF}_1 \approx 2.80$ となり、選択肢の中では 2.78 に最も近い値です。
他の変数のVIF計算と全体評価
Step 6: X₂とX₃のVIF計算
X₂のVIF計算:
$$R_2^2 = \frac{r_{21}^2 + r_{23}^2 - 2r_{21}r_{23}r_{13}}{1 - r_{13}^2}$$
$$= \frac{(0.8)^2 + (0.7)^2 - 2(0.8)(0.7)(0.6)}{1 - (0.6)^2}$$
$$= \frac{0.64 + 0.49 - 0.672}{1 - 0.36} = \frac{0.458}{0.64} = 0.7156$$
$$\text{VIF}_2 = \frac{1}{1 - 0.7156} = \frac{1}{0.2844} = 3.52$$
X₃のVIF計算:
$$R_3^2 = \frac{r_{31}^2 + r_{32}^2 - 2r_{31}r_{32}r_{12}}{1 - r_{12}^2}$$
$$= \frac{(0.6)^2 + (0.7)^2 - 2(0.6)(0.7)(0.8)}{1 - (0.8)^2}$$
$$= \frac{0.36 + 0.49 - 0.672}{1 - 0.64} = \frac{0.178}{0.36} = 0.4944$$
$$\text{VIF}_3 = \frac{1}{1 - 0.4944} = \frac{1}{0.5056} = 1.98$$
全変数のVIF要約:
| 変数 | VIF | 多重共線性 | 過学習リスク |
|---|
| X₁ | 2.80 | 中程度 | 低-中程度 |
| X₂ | 3.52 | 中程度 | 中程度 |
| X₃ | 1.98 | 低い | 低い |
過学習リスクの詳細評価
Step 7: 過学習リスクの定量的評価
標準誤差の増大係数:
- $X_1$:$\sqrt{2.80} = 1.67$倍
- $X_2$:$\sqrt{3.52} = 1.88$倍
- $X_3$:$\sqrt{1.98} = 1.41$倍
信頼区間の拡大:
95%信頼区間の幅は標準誤差の増大に比例して拡大します:
$$\text{CI幅} = 2 \times 1.96 \times \text{SE} \times \sqrt{\text{VIF}}$$
予測精度への影響:
- バイアス:多重共線性自体は不偏性を保持
- 分散:VIFに比例して分散が増大
- MSE:$\text{MSE} = \text{Bias}^2 + \text{Variance}$
Step 8: 過学習の具体的影響
1. 係数の不安定性:
データの小さな変動に対する係数の感度:
$$\text{Sensitivity} \propto \text{VIF}$$
2. 予測性能の劣化:
交差検証での性能低下の期待値:
$$E[\text{CV Error}] = \sigma^2 \left(1 + \frac{\text{tr}(\mathbf{H})}{n}\right)$$
ここで、$\text{tr}(\mathbf{H})$はハット行列のトレースで、VIFが大きいほど大きくなります。
3. 汎化誤差の増大:
真の汎化誤差は以下のように分解できます:
$$\text{Generalization Error} = \text{Bias}^2 + \text{Variance} + \text{Noise}$$
多重共線性は主に分散項を増大させます。
対策
Step 9: 多重共線性対策の実装
1. 変数選択による対策:
- 前進選択法:VIFが閾値を超えた時点で停止
- 後退選択法:最大VIFの変数から順次除去
- 相関に基づく事前選択:高相関変数の一方を除去
2. 正則化手法:
Ridge回帰:
$$\hat{\beta}_{\text{ridge}} = (\mathbf{X}^T\mathbf{X} + \lambda\mathbf{I})^{-1}\mathbf{X}^T\mathbf{y}$$
Ridge回帰は多重共線性に対して頑健です。
Lasso回帰:
$$\min_{\beta} \|\mathbf{y} - \mathbf{X}\beta\|_2^2 + \lambda\|\beta\|_1$$
Lassoは自動的に変数選択を行い、多重共線性を軽減します。
3. 主成分分析(PCA):
- 主成分抽出:相関の高い変数を線形結合で要約
- 次元削減:多重共線性のない主成分を使用
- 解釈性の課題:元の変数の意味が失われる