回帰分析

【完全版】変数選択の方法|ステップワイズ法・AIC・増加法・減少法

😣 こんな悩みはありませんか?
  • 説明変数の候補がたくさんあるけど、どれを使えばいいの?
  • 全部入れたらダメ?少なすぎてもダメ?
  • ステップワイズ法とかAICとか、聞いたことはあるけどよくわからない…
✅ この記事でわかること
  • なぜ「変数選択」が必要なのか
  • 増加法・減少法・ステップワイズ法の違いと手順
  • AIC(赤池情報量基準)の考え方と使い方

「売上を予測したい。使えそうな変数は10個ある。全部入れればいいの?」

…実は、それはよくない選択です。

変数を入れすぎると、モデルが複雑になりすぎて「過学習」を起こします。逆に、変数が少なすぎると、大事な情報を見逃してしまいます。

じゃあ、どうやって「ちょうどいい変数の数」を決めればいいのでしょうか?

そこで登場するのが「変数選択」の手法です。

この記事では、変数選択の代表的な方法である「増加法」「減少法」「ステップワイズ法」、そしてモデルの良さを測る「AIC」について、図解でわかりやすく解説します。

なぜ「変数選択」が必要なのか?

変数が多すぎる問題|「過学習」のワナ

「変数は多い方が予測精度が上がるんじゃないの?」

直感的にはそう思いますよね。でも、実際は逆です。

変数を増やしすぎると、「過学習(オーバーフィッティング)」という問題が起きます。

💡 過学習を「テスト勉強」で例えると…
過去問を丸暗記した学生がいます。
過去問では100点。でも、本番のテストでは30点…。

これが「過学習」です。

手元のデータ(過去問)には完璧にフィットするけど、
新しいデータ(本番)には全く対応できない状態。

変数を増やすと、手元のデータへの当てはまり(決定係数R²)は必ず上がります。でも、それは「過去問を丸暗記」しているだけかもしれません。

本当に欲しいのは、新しいデータでも予測できるモデルですよね。

変数が少なすぎる問題|「過少適合」のワナ

逆に、変数が少なすぎても問題です。

本当は売上に影響している「広告費」を入れ忘れたら、予測精度はガタ落ちですよね。

これを「過少適合(アンダーフィッティング)」と言います。

状態変数の数問題点
過少適合少なすぎる重要な情報を見逃す → 予測精度が低い
ちょうどいい適切必要な情報だけを使う → 予測精度が高い
過学習多すぎるノイズまで学習 → 新しいデータで使えない
📐 変数選択の目的
「過少適合」と「過学習」のちょうど真ん中を見つけること。
必要な変数だけを残し、不要な変数を取り除く。

変数選択の3つの方法

変数選択には、大きく分けて3つの方法があります。

方法イメージ特徴
増加法
(Forward)
0個から始めて
1つずつ追加
シンプル、計算が速い
減少法
(Backward)
全部入れてから
1つずつ削除
変数間の関係を考慮できる
ステップワイズ法
(Stepwise)
追加と削除
繰り返す
最もよく使われる

それぞれ詳しく見ていきましょう。

方法①:増加法(Forward Selection)

増加法は、変数0個の状態から始めて、1つずつ追加していく方法です。

💡 増加法を「買い物」で例えると…
空のカゴを持ってスーパーに行きます。

「これは本当に必要?」と確認しながら、
必要なものだけを1つずつカゴに入れていくイメージです。

増加法の手順

Step 1:変数なしのモデル(定数項のみ)から開始

Step 2:各変数を1つずつ追加したモデルを作り、どれが最も改善するか調べる

Step 3:最も改善する変数が「有意」なら追加。有意でなければ終了

Step 4:Step 2〜3を繰り返す

増加法の具体例

候補変数が x₁, x₂, x₃ の3つあるとします。

ステップ試すモデル結果
1y ~ x₁ / y ~ x₂ / y ~ x₃x₁が最も改善 → x₁を追加
2y ~ x₁ + x₂ / y ~ x₁ + x₃x₃が有意に改善 → x₃を追加
3y ~ x₁ + x₃ + x₂x₂は有意でない → 終了

結果:y = b₀ + b₁x₁ + b₃x₃ が最終モデル

方法②:減少法(Backward Elimination)

減少法は、全変数を入れた状態から始めて、1つずつ削除していく方法です。

💡 減少法を「断捨離」で例えると…
クローゼットの服を全部出します。

「これは本当に必要?」と確認しながら、
不要なものを1つずつ捨てていくイメージです。

減少法の手順

Step 1:全変数を入れたモデルから開始

Step 2:各変数を1つずつ削除したモデルを作り、どれが最も不要か調べる

Step 3:最も不要な変数(t検定で有意でない変数)を削除。すべて有意なら終了

Step 4:Step 2〜3を繰り返す

減少法の具体例

ステップ現在のモデル結果
1y ~ x₁ + x₂ + x₃x₂が最も有意でない → x₂を削除
2y ~ x₁ + x₃x₁, x₃ ともに有意 → 終了

結果:y = b₀ + b₁x₁ + b₃x₃ が最終モデル(増加法と同じ結果)

⚠️ 増加法と減少法の結果は違うことがある
今回はたまたま同じ結果になりましたが、必ずしも一致するとは限りません
変数間の相関関係によっては、異なる結果になることがあります。

方法③:ステップワイズ法(Stepwise Selection)

ステップワイズ法は、追加と削除を両方行う方法です。増加法と減少法の「いいとこ取り」ですね。

最もよく使われる変数選択法で、多くの統計ソフトのデフォルト設定になっています。

💡 ステップワイズ法を「チーム編成」で例えると…
サッカーチームを作っています。

・新しい選手をスカウト(追加)しつつ
・活躍していない選手を放出(削除)する

追加と削除を繰り返して、最強のチームを目指します。

ステップワイズ法の手順

Step 1:変数なし、または全変数から開始(設定による)

Step 2:追加候補の中で最も改善する変数を探す

Step 3:追加したら、既存の変数で不要になったものがないか確認

Step 4:不要な変数があれば削除

Step 5:追加も削除もできなくなったら終了

なぜ「追加後に削除」が必要?

「追加した変数をまた削除するの?無駄じゃない?」と思うかもしれません。

実は、新しい変数を追加すると、既存の変数が不要になることがあるんです。

📐 具体例
最初:x₁だけのモデル → x₁は有意
次に:x₃を追加 → x₁とx₃が似ているため、x₁が有意でなくなる
結果:x₁を削除して、x₃だけのモデルになる

このような「入れ替わり」が起こりうるので、追加後の削除チェックが重要なのです。

3つの方法の比較

方法メリットデメリットおすすめ度
増加法計算が速い一度入れた変数は削除されない★★☆
減少法変数間の関係を考慮変数が多いと計算が重い★★☆
ステップワイズ法柔軟性が高い最適解とは限らない★★★
💡 実務でのおすすめ
迷ったらステップワイズ法を選びましょう。
最も柔軟で、多くの場面で良い結果を出してくれます。

AIC(赤池情報量基準)とは?

「当てはまり」と「シンプルさ」のバランスを測る指標

ここまでの方法は、「有意かどうか」でp値を基準に判断していました。

でも、もっと便利な指標があります。それがAIC(Akaike Information Criterion:赤池情報量基準)です。

AICは、日本の統計学者・赤池弘次さんが1970年代に提唱した指標で、世界中で使われています。

📐 AICの考え方
AIC = 当てはまりの悪さ + 複雑さへのペナルティ

AICが小さいモデルほど「良いモデル」

AICは2つの要素のバランスを取っています。

要素意味変数を増やすと…
当てはまりの悪さデータへのフィット度合い
(残差の大きさ)
↓ 減る(良くなる)
複雑さへのペナルティ変数の数に対する罰則
(2 × 変数の数)
↑ 増える(悪くなる)

変数を増やすと「当てはまり」は良くなりますが、「ペナルティ」も増えます。このトレードオフのバランスが最も良いモデルを選ぶのがAICの考え方です。

AICを「食べ放題」で例えると…

💡 AICのイメージ
食べ放題に来ました。

料理の満足度(当てはまりの良さ)を上げたい
・でも食べすぎると胃もたれ(複雑さのペナルティ)

「満足度が高く、胃もたれしない」ちょうどいい量を見つけるのがAICです。

たくさん食べれば満足度は上がるけど、胃もたれもする。
トータルで最も快適な量を選ぶイメージ。

AICの計算式

📐 AICの公式
AIC = −2 × (最大対数尤度) + 2 × (パラメータ数)

最大対数尤度:モデルがデータをどれだけうまく説明できるか
パラメータ数:偏回帰係数の数 + 1(切片)

計算式は複雑に見えますが、実際には統計ソフトが自動で計算してくれます。

大切なのは、AICが小さいモデルを選ぶということだけ覚えておけばOKです。

AICによる変数選択の例

いくつかのモデルを比較してみましょう。

モデル変数AIC判定
モデルAx₁のみ152.3
モデルBx₁ + x₃138.7最小 ✓
モデルCx₁ + x₂ + x₃140.2

モデルB(x₁ + x₃)のAICが最も小さいので、これが最適なモデルと判断できます。

モデルCは変数を1つ追加していますが、AICは増えています。これは「x₂を追加しても、ペナルティ分ほどは当てはまりが改善しなかった」ということです。

p値とAIC、どちらを使うべき?

目的によって使い分ける

「p値(有意性検定)とAIC、どっちを使えばいいの?」という疑問があるかもしれません。

答えは、「目的によって使い分ける」です。

目的おすすめの基準理由
因果関係を調べたいp値「この変数は本当に効いているか」を統計的に証明できる
予測精度を上げたいAIC新しいデータでの予測性能を重視できる
どちらも大事両方使うAICで候補を絞り、p値で最終確認
💡 実務でのおすすめ
まずはAICでモデルを選び、その後p値で各変数の有意性を確認する、という流れがおすすめです。

AICで選んだモデルの変数がすべて有意なら、そのモデルを採用。
有意でない変数があれば、削除を検討します。

変数選択の注意点

注意①:理論的な重要性も考慮する

統計的な基準だけで変数を選ぶのは危険です。

たとえば、「年齢」は売上に影響していると理論的にわかっているのに、たまたま今回のデータでは有意にならなかった、ということがあります。

そんなとき、「有意じゃないから削除」と機械的に判断してはいけません。理論的に重要な変数は、有意でなくても残すことがあります。

注意②:多重共線性をチェックする

変数選択の前に、多重共線性(VIF)をチェックしましょう。

相関の高い変数が両方入っていると、変数選択の結果が不安定になります。VIFが高い変数は、事前に1つに絞っておくのがベターです。

注意③:最適解とは限らない

ステップワイズ法などの逐次的な方法は、「局所最適解」に陥ることがあります。

つまり、「今いる場所からは一番いいけど、もっと遠くにさらに良い場所がある」という状況です。

可能であれば、全通りの組み合わせを試す「総当たり法」が最も確実です。ただし、変数が多いと計算量が爆発するので、現実的には難しいこともあります。

⚠️ 変数選択の限界
変数選択は「正解」を見つける方法ではありません。
「より良いモデル」を見つける手段です。

最終的には、理論的な妥当性統計的な基準の両方を考慮して判断しましょう。

まとめ

この記事では、変数選択の方法について解説しました。

📝 この記事のポイント
  • 変数が多すぎると過学習少なすぎると過少適合
  • 増加法:0個から追加していく
  • 減少法:全部から削除していく
  • ステップワイズ法:追加と削除を繰り返す(最もよく使われる)
  • AIC:当てはまりとシンプルさのバランス。小さいほど良いモデル
  • 統計的基準だけでなく、理論的な重要性も考慮する

変数選択をマスターしたら、次は相関分析の統計的検定について学びましょう。

タグ

-回帰分析
-