この問題では、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):
- 主成分抽出:相関の高い変数を線形結合で要約
- 次元削減:多重共線性のない主成分を使用
- 解釈性の課題:元の変数の意味が失われる