正則化回帰
(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」などの欠損代替値が含まれる場合は、事前にフィルター機能で除外することを推奨します
アプリ
Reactive stat ロゴ について
ログインしていただければロゴは表示されなくなります
{{title}}
{{title}}
{{ item.full }}
{{title}}
{{group}}
{{title || 'カラム選択'}}
{{title || 'カラム選択'}}
{{ title }} カテゴリー変数を選択してください。複数選択すると組み合わされます
...(選択肢が多すぎます)
それぞれに設定する値を入力してください。異なる分類に同じ値を設定することもできます。順位の数値を入れれば、順序カテゴリカル変数として扱えるようになります。
| 分類内容 | 値 | |
| {{ item.tag }} |
データの取り扱い
- データインポート
- データの読み込みは、ブラウザ内で完結し、外部へのデータ送信は発生しません。
- データ保持
- 読み込んだデータはブラウザ内に保持されます。
- ブラウザのセッションが終了または全てのタブが閉じられると、保持していたデータは自動的に破棄されます。
- データの安全性
- ブラウザがクラッシュした場合でも、10分経過すれば次回の起動時にデータは安全に消去されます。
- 共用のPCでの使用も考慮し、データの外部漏洩のリスクを最小化しています。
クラウド R を利用する時のデータ送信
- 最小限のデータ送信
- 外部のRサーバーへ送信されるデータは、数値計算に必要な最小限のセットに制限されています。
- 送信データは解析に必要なサブセットのみに限られます。
- ユーザーコントロール下のデータ送信
- 送信前に、どのデータが外部サーバーへ送信されるのか内容を確認することが可能です。
- データの送信はユーザーの操作により行われ、自動的な送信は行いません。
- クラウド R 出力結果の保持
- クラウド R からの出力結果は、将来の自動翻訳や自動解説の機能実現のため、サーバーがデータベースに保持します。
- その際に、送信者の情報や、計算元となるデータなど、プライバシーに関わる情報は保持しません。
- 通信経路も全て暗号化していますので、たとえプライバシーに関わる情報が含まれていたとしても、通常は漏洩する恐れはありません。
AI による解説を利用する時のデータ送信
- 最小限のデータ送信
- 外部のAIサーバーへ送信されるデータは、クラウド R の出力結果と、用いた統計手法の徐放です。
- ただし、クラウド R の出力結果に連続した数値データが含まれる場合は、AI にデータ形式を認識させる目的で、連続データの最初の行のみを送信します。
- クラウド R 出力結果の保持
- AI による解説内容は、将来の品質向上などのため、サーバーがデータベースに保持します。
- その際に、送信者の情報や、計算元となるデータなど、プライバシーに関わる情報は保持しません。
新しい列 (カラム) 名:
ここで設定した値に完全一致するデータを欠損値として扱います。
新しい列 (カラム) 名:
Reactive stat において、統計データの変数は、通常の数値や文字列として扱われます。 したがって、日付や時間の概念は直接的にはサポートされていません。
統計計算を行う際には、日付や時間の差分を数値として事前に用意しておく必要があります。
計算結果プレビュー:
新しい列 (カラム) 名:
チェックされた行が削除対象となります
削除対象の行
データ入力
{{ errorMessage || dataStatus + 'です'}}
設定とオプション
AI による R コードの解説
R の出力結果
R出力図形
AI による R 出力結果の解説
変換設定:
(
変換元の単位:
変換先の単位:
)
変換結果プレビュー:
新しい列 (カラム) 名:
計算式の入力:
数式:
- データ: カラム名 (列名) をそのまま記述するか、"列名" のようにダブルクォートで挟んで指定
- 算術演算子: +, -, *, /, ()
- 基本関数: abs(), sqrt(), pow(), exp(), log(), log10()
- 三角関数: sin(), cos(), tan(), asin(), acos(), atan()
- 丸め関数: round(), floor(), ceil()
体重 / pow(身長, 2), "体重" / ("身長" * "身長")
利用可能なカラム:
{{ column }}
変換結果プレビュー:
{{ errorMessage }}
新しい列 (カラム) 名:
区切り文字の選択:
欠損値の処理:
プレビュー:
{{ preview }}
新しい列 (カラム) 名:
確認
変換結果プレビュー:
新しい列 (カラム) 名:
{{title}}
データがありません
{{title}}
...(選択肢が多すぎます)
{{filteringText}}
{{ title || '対象データ' }}
({{ matchedRowCount }}件 / 元データ{{ originalRowCount }}件)
除外レコードあり
ダウンロード(CSV)
{{group}}
データ
設定
目的変数の種類