はじめに
こちらの記事では「ステップワイズ法」について考えていきます。
「どうやって説明変数を選択すればいいの?」
「どうしてステップワイズ法は有効なの?」
といった疑問に答えていきたいと思います!

線形回帰分析の課題
ステップワイズ法とは学習する説明変数の数を絞り込むための分析手法です
ここでまずは「説明変数の数」について例を見ておきたいと思います。
Day7でもとりあげた以下のマンションの駅徒歩・面積(問題データ)と、マンション価格(答えデータ)のデータを見てみましょう。
説明変数 | 駅徒歩3分 | 駅徒歩6分 | 駅徒歩9分 |
---|---|---|---|
説明変数 | 面積80㎡ | 面積70㎡ | 面積65㎡ |
目的変数 | 8,000万円 | 7,700万円 | 7,200万円 |
上記で言うと説明変数は「駅徒歩」と「面積」の2つになります。
機械学習においては説明変数と目的変数のセットを学習するわけですが、上記のように説明変数は何も1つとは限りません。
むしろ上記のように2つ(駅徒歩と面積)以上の説明変数データがあることがほとんどです。
説明変数の数がたくさんあったとき、そのなかには恐らく学習する価値の高い説明変数もあれば、学習する価値がそんなに高くない説明変数もあるかと思われます。
上記のマンションデータの例でも、駅徒歩や面積といった説明変数は目的変数であるマンション価格と何らかの関係性がありそう(学習する価値がありそう)に思える一方、
例えばここに「近くの畳屋さんとの距離」という説明変数が加わったとしても、そのデータはマンション価格と関係性はほとんどなさそう(学習する価値がなさそう)に思えます。
つまり、学習する価値の高い説明変数と低い説明変数を見極め、目的変数との関係性がより高そうな説明変数に集中して学習してあげることが重要になります。
とくに線形回帰分析では学習した説明変数すべてに対して目的変数との関係性を見出そうとします。
したがって学習する価値の低い説明変数が多くなってくると、学習によって見出した関係性のルールが精度の低いものとなってしまう恐れがあります。
総当りで選択
そこでなるべく学習する価値の低い説明変数を除外して説明変数と目的変数のセットを学習したいと考えます。
つまり、学習する説明変数の数を絞り込む、というわけですね!
これがステップワイズ法でもあるのですが、ステップワイズ法の話に入る前に別の手法について考えたいと思います。
それは最良部分集合選択という学習する説明変数の組み合わせを総当たりで試す手法です。
いま私たちは学習する価値の低い説明変数を除外したいと考えています。
例えば先ほどのマンションデータに説明変数として畳屋との距離を追加したものを見てみましょう。
説明変数 | 駅徒歩3分 | 駅徒歩6分 | 駅徒歩9分 |
---|---|---|---|
説明変数 | 面積80㎡ | 面積70㎡ | 面積65㎡ |
説明変数 | 畳屋5km | 畳屋2km | 畳屋10km |
目的変数 | 8,000万円 | 7,700万円 | 7,200万円 |
上記のデータには説明変数が、駅徒歩、面積、畳屋距離と3つあります。
この3つの説明変数をどういう組み合わせで学習すると学習結果の精度がよくなるでしょうか。
これについて総当たり法では、すべての説明変数の組み合わせについて学習して精度を確かめ、そのなかで最良となる説明変数の組み合わせを選択します。
上記の例では、説明変数の組み合わせは以下のように洗い出せます。
- [駅徒歩] のみ
- [面積] のみ
- [畳屋距離] のみ
- [駅徒歩] × [面積]
- [駅徒歩] × [畳屋距離]
- [面積] × [畳屋距離]
- [駅徒歩] × [面積] × [畳屋距離]
説明変数の組み合わせには上記の通り7通りあることがわかります。
この7通りすべての組み合わせについて各々学習して、その結果の精度を確かめる方法が総当たり法になります。
総当たり法はすべての組み合わせのなかから最良の組み合わせを選択できるというメリットがあります。
一方で大きな問題点もあります。
それは計算量が膨大になるという問題です。
上記の例では説明変数が3つだけでしたので、説明変数の選び方の組み合わせは7通りで済みましたが、実際には説明変数の数は数十、あるいは100個以上となることも多々あります。
そのとき、どの説明変数を選ぶかの組み合わせが膨大になってしまい、この総当たり法によるモデル選択は実は現実的ではありません。
ステップワイズ法
そこで登場するのがステップワイズ法です。
総当たり法の計算量が膨大になるという課題をクリアするために、ステップワイズ法ではすべての組み合わせを試すのではなく説明変数を段階的に選んでいきます。
もう一度先ほどと同じデータを見てみましょう。
説明変数 | 駅徒歩3分 | 駅徒歩6分 | 駅徒歩9分 |
---|---|---|---|
説明変数 | 面積80㎡ | 面積70㎡ | 面積65㎡ |
説明変数 | 畳屋5km | 畳屋2km | 畳屋10km |
目的変数 | 8,000万円 | 7,700万円 | 7,200万円 |
ステップワイズ法ではまず3つの説明変数のなかから1つだけ学習する場合、どの説明変数を選ぶと最も精度が高くなるかを確かめます。
具体的には、
- [駅徒歩] のみ
- [面積] のみ
- [畳屋距離] のみ
の3パターンを学習してみてそのなかで最も精度が高くなるパターンを確かめます。
例えばここでは[駅徒歩のみ]のときが最も精度が高くなったとします。
そのうえで次に[駅徒歩]に加えてもう1つ説明変数を増やした場合の以下の組み合わせ(赤字箇所)を考えます。
- [駅徒歩] のみ
- [面積] のみ
- [畳屋距離] のみ
- [駅徒歩] × [面積] ←追加
- [駅徒歩] × [畳屋距離] ←追加
上記の2パターンを追加で学習してみて精度がより高くなるパターンを確かめます。
ここでは[面積]を追加したときの方が”畳屋距離”を追加したときよりも精度が高くなったとします。
そうしたら最後にさらにもう1つ問題を増やした(赤字箇所)場合の以下の組み合わせを考えます。
- [駅徒歩]のみ
- [面積]のみ
- [畳屋距離]のみ
- [駅徒歩] × [面積]
- [駅徒歩] × [畳屋距離]
- [駅徒歩] × [面積] × [畳屋距離] ←追加
このパターンを学習してみた結果と、その前に確かめていた[駅徒歩] × [面積]を学習した結果を比較し、より精度の高い組み合わせを最終的に選択します。
このように説明変数を段階的に選んでいく方法がステップワイズ法(※)です。
上記の流れを見てもわかるように、総当たり法では7通りの試行が必要であったのに対し、ステップワイズ法では6通りの試行で済んでいます。
説明変数が3つだけのときはその差はわずかですが、説明変数の数が増えていくとともにその差は大きく開いていきます。
(※)上記はステップワイズ法のなかでも変数増加法と呼ばれるものです。逆に最初にすべての問題を選択する状態から変数を1つずつ減らしていく手法もあり、それを変数減少法と呼びます。
実務においては説明変数の数が2つとか3つということは稀で
数十、あるいは、100以上の説明変数を学習する場面の方が多いです(説明変数が2つ、3つのときは機械学習というよりもクロス集計などの方が有効でしょう)。
したがって、学習する価値の高い説明変数に絞り込んで学習しようとするときには主にこのステップワイズ法が用いられることになりますので、ぜひここで理解しておきましょう。
まとめ
最後に今回の記事のポイントを整理しておきます。
- 線形回帰分析ではどの説明変数を学習するかがポイント
- 学習する価値の低い説明変数は学習対象から除外してあげたい
- 総当たり法による説明変数の選択は計算量が膨大になる
- ステップワイズ法は説明変数を段階的に選択する手法
- 説明変数の数が多い場合は主にステップワイズ法により学習する説明変数を選択する
線形回帰分析において学習する説明変数を絞り込むことはとても重要です。
というのも説明変数の数が多すぎると今回見てきたように学習する価値の低い説明変数まで混ざってしまうということに加え、見せかけの精度の高さにつながってしまうという問題もあるからです(見せかけの精度の高さについては別の記事にて考えていきます)。
ぜひ説明変数の絞り込みという発想や、そのためのステップワイズ法について、ここで理解しておきましょう。
今回は以上になります。
最後まで読んでいただきありがとうございました!


〈 おしらせ 〉
統計検定®2級合格を独学で目指す方のためのサイト『統計BASE』を公開しました!
統計検定®2級の過去問を丁寧に解説する過去問ブログと、計算力を高める数学ブログを更新しています。統計検定®2級の合格を目指す方は以下よりぜひのぞいてみてください!
『統計BASE』:htts://toukeibase.jp

統計学の基礎を効率的に学べるベーシック講座です。統計学の入り口となる「確率分布・推定・検定」について豊富な図を用いて説明していきます。
2021年3月リリース後すでに20,000人以上の方に受講いただき大人気ベストセラーコースとなっています!ぜひこの機会に統計学や確率思考という一生モノのスキルを一緒に身につけましょう!
※上記リンクからですと時期によってはクーポンが自動適用されます。
※Udemyは世界最大級のオンライン学習プラットフォームです。以下記事にてUdemyをご紹介しておりますのでよろしければこちらもご覧ください。
