正則化回帰

(Regularized Regression / Lasso / Ridge / Elastic Net)

正則化回帰は、回帰係数にペナルティ項を加えることで過学習を防ぎ、変数選択と予測精度向上を同時に実現する手法です。説明変数が多い場合(高次元データ)や多重共線性が懸念される場合に特に有用です。

解説

正則化回帰とは

正則化回帰は、通常の回帰分析に「ペナルティ項」を加えることで、係数の大きさを意図的に縮小する手法の総称です。説明変数の数がサンプル数に近い場合や、互いに相関の高い変数が多い場合でも安定した推定が可能です。

手法 正則化 特徴
Lasso L1ノルム (係数の絶対値の和) 不要な変数の係数を完全にゼロに縮小 → 自動的な変数選択
Ridge L2ノルム (係数の二乗の和) 係数をゼロに近づけるが完全にはゼロにしない → 多重共線性に強い
Elastic Net L1 + L2 の混合 α パラメータで Lasso と Ridge の割合を調整 (α=1: Lasso, α=0: Ridge)

正則化パラメータ λ の選択

正則化の強さを制御するパラメータ λ は、10-fold 交差検証 (CV) により自動選択されます。

選択方法 概要 推奨場面
lambda.min CV 誤差が最小となる λ 予測精度を最大化したい場合
lambda.1se lambda.min から1標準誤差以内で最も正則化が強い λ より簡潔なモデルが欲しい場合

本アプリでサポートする機能

  • Lasso / Ridge / Elastic Net の選択または一括比較
  • 連続変数・二値変数・カウントデータ・多値カテゴリ変数のアウトカムに対応
  • カテゴリ変数の自動ダミー展開 (model.matrix)
  • 交差検証による最適 λ の自動選択 (lambda.min / lambda.1se)
  • 係数の棒グラフ表示(非ゼロ変数のみ、絶対値順)
  • 全変数除外の自動検出と警告(係数がすべて0になった場合に対処法を提示)
  • 予測性能指標の自動出力(gaussian: RMSE・R²、binomial: AUC・正解率、poisson: RMSE・CV deviance、multinomial: 正解率)
  • CV 誤差プロット

データ要件と推奨事項

変数の要件

  • 目的変数: 連続変数・2値変数・カウントデータ・多値カテゴリ変数のいずれか1つ
  • 説明変数: 連続変数またはカテゴリ変数(混在可)、2つ以上

サンプルサイズの目安

説明変数の数 推奨サンプル数 備考
〜10個 100行以上 通常の回帰分析と同程度
10〜50個 500行以上 CV の安定性を確保するために必要
50個〜 1,000行以上 高次元データ。正則化の効果が最も発揮される領域
  • アプリ上の最低制限は 10 行ですが、上記を大きく下回る場合は CV が不安定になりやすいです
  • サンプル数が少ない場合は lambda.1se(より強い正則化)の使用を推奨します

結果の解釈

係数の棒グラフ

  • 横棒グラフで係数を絶対値の大きい順に表示します
  • 青 (正の係数): アウトカムを増加させる方向の変数
  • 赤 (負の係数): アウトカムを減少させる方向の変数
  • Lasso / Elastic Net では係数がゼロの変数はグラフに表示されません

係数がすべてゼロになった場合

  • アプリが「⚠️ 全説明変数が除外されました」と警告を表示します
  • lambda.min に変更する、または説明変数・サンプル数を見直してください

予測性能指標

目的変数 指標 解釈の目安
連続変数 (gaussian) RMSE, R² R² が高いほど予測精度が高い
2値変数 (binomial) AUC, 正解率 AUC > 0.7 で実用的な弁別能
カウントデータ (poisson) RMSE, CV deviance 値が小さいほど良い
多値カテゴリ (multinomial) 正解率 ランダム予測 (1/クラス数) を上回るか確認
注意: これらは訓練データ内での評価であり、独立したテストデータでの検証が推奨されます。

注意事項

  • 正則化回帰の係数は縮小推定であり、通常の回帰係数とは異なります。仮説検定や信頼区間は通常の方法では算出できません
  • 係数の大きさで変数の重要度を比較するには、事前に説明変数を標準化することを推奨します(glmnet は内部で自動標準化を行います)
  • カテゴリ変数はダミー変数に自動変換されます。基準カテゴリはアルファベット順の最初の水準です
  • 「unknown」などの欠損代替値が含まれる場合は、事前にフィルター機能で除外することを推奨します

アプリ

データ

設定

目的変数の種類