変数の選択!強制投入法、総当たり法、ステップワイズ法を紹介!

こんにちは!
IT企業に勤めて、約2年間でデータサイエンティストになったごぼちゃん(@XB37q)です!

このコラムでは、説明変数を選択する方法を紹介します!
モデルの構築を行う前に、どのような変数を使用するかは、結果に大きな影響を与えるため、注意して説明変数を選択してください!

変数選択とは

重回帰分析や多重ロジスティック回帰分析などのAIモデルには、どのような説明変数を使用するかが結果に大きな影響を与えます。
なぜならば、手元にあるデータに対して、説明変数を多く入れてしまうと、過学習してしまう可能性があるため、説明変数を多く入れても精度が向上するとは限らないからです。
特に、データ件数が少ない場合、説明変数が多いと過学習が起きやすくなります。

回帰分析については、他コラム「回帰分析に密接な決定係数の求め方と目安!相関係数との関係も証明!」をご覧ください。

変数選択法

上記のような過学習を考慮して、結果に意味のある説明変数を選択する方法が、強制投入法、総当たり法、ステップワイズ法です。

強制投入法

強制投入法
強制投入法

強制投入法とは、すべての説明変数を使用する方法です。
説明変数の選択は、分析者が前もって選択しておく必要があります。
複雑なロジックは存在せず、分析者がどのように説明変数を選択したのか、人へ説明しやすいのが特徴です。

総当たり法

総当たり法
総当たり法

総当たり法とは、説明変数が1個、2個・・・のように、それぞれのパターンをすべて計算し、その中から最適なものを選ぶ方法です。
最良な結果が得られることが多いですが、計算に時間がかかるのが特徴です。

ステップワイズ法

ステップワイズ法は、変数を増加させたり、減少させたりして、最適なものを選ぶ方法です。
ステップワイズ法には、変数増加法、変数減少法、変数減増法の3つの方法があります。
ステップワイズ法を使ったと言われた場合、変数増減法を指すのが一般的です。

総当たり法では、最良な結果が得られることは多いですが、説明変数の候補がk個の場合、可能な変数の組み合わせは、その説明変数を選択するかどうかで$2^k$通りです。
そのため、kが大きい場合、総当たり法は大幅な時間がかかってしまうため、ステップワイズ法が使われることがあります。

前進ステップワイズ法(変数増加法)

前進ステップワイズ法(変数増加法)
前進ステップワイズ法(変数増加法)

前進ステップワイズ法(変数増加法)とは、説明変数を1個使用する場合から、説明変数を増やしたほうが良ければ増やし、良くなければ増やさない方法です。

後退ステップワイズ法(変数減少法)

後退ステップワイズ法(変数減少法)
後退ステップワイズ法(変数減少法)

後退ステップワイズ法(変数減少法)とは、全ての説明変数を使用する場合から、説明変数を減らしたほうが良ければ減らし、良くなければ減らさない方法です。

ステップワイズ法(変数増減法)
ステップワイズ法(変数増減法)

ステップワイズ法(変数増減法)とは、説明変数を減らしたり、減らした変数を増やしたりを検討しながら説明変数を選択する方法です。

選択に用いる良さの基準

上記で紹介した選択方法を実施する場合に、説明変数を増やしたほうがいいのか、減らしたほうがいいのか、良さの基準を設定する必要があります。
良さの基準には、下記の3パターンが考えられます。

  1. 情報量規準(AIC、BICなど)を用いて評価する方法
  2. 交差検証法を行い、予測度の精度を用いて評価する方法
  3. 説明変数を増やした(減らした)場合とそうでない場合のモデルに対して、検定を用いて評価する方法

情報量基準については、他コラム「絶対誤差(MSE)と相対誤差(MRE)?AIモデルの精度とその求め方」をご覧ください。

変数選択の注意点

評価したい説明変数は必ず使用する

結果に影響を及ぼすかどうかを確認するために重回帰分析などを行う場合、影響度を確認したい説明変数は必ず使用する必要があります。

変数増加法の落とし穴

学習に使用するデータ件数が少ない場合、変数増加法を用いて変数選択を行うと、結果の解釈が難しくなることがあります。
また、結果に有意な説明変数が使用される前に、変数選択が終了する場合があります。

総当たり法を使うのがベター

ステップワイズ法では、最適なモデルに到達するとは限りません。
最適なモデルを選択するためには、すべての説明変数の組み合わせを評価する総当たり法のみです。

説明変数の数が10個の場合、総当たり数は1,023個、20個の場合、1,048,575個になります。
総当たり数とコンピューターの性能から、10個程度であれば計算可能な数ですが、20個以上は計算不可能な数値となることが多いです。
そのため、事前に総当たりする説明変数を選択し、説明変数を少なくしたうえで、総当たり法を使用することがベターです。
事前に説明変数を選択する方法は、説明変数ごとに回帰係数やp値、業務知識などを確認する方法があります。

まとめ

  • 変数選択
    • 説明変数を多く入れてしまうと、過学習してしまう可能性があるため、説明変数を多く入れても精度が向上するとは限らない
    • 過学習を考慮して、結果に意味のある説明変数を選択する方法が、強制投入法、総当たり法、ステップワイズ法
  • 強制投入法
    • すべての説明変数を使用する方法
    • 説明変数の選択は、分析者が前もって選択しておく必要があ
    • 複雑なロジックは存在せず、分析者がどのように説明変数を選択したのか、人へ説明しやすいのが特徴
  • 総当たり法
    • 説明変数が1個、2個・・・のように、それぞれのパターンをすべて計算し、その中から最適なものを選ぶ方法
    • 最良な結果が得られることが多いですが、計算に時間がかかるのが特徴
  • ステップワイズ法
    • 変数を増加させたり、減少させたりして、最適なものを選ぶ方法
    • 変数増加法、変数減少法、変数減増法の3つの方法があり、変数増減法が一般的
  • 前進ステップワイズ法(変数増加法)
    • 説明変数を1個使用する場合から、説明変数を増やしたほうが良ければ増やし、良くなければ増やさない方法
  • 後退ステップワイズ法(変数減少法)
    • 全ての説明変数を使用する場合から、説明変数を減らしたほうが良ければ減らし、良くなければ減らさない方法
  • ステップワイズ法(変数増減法)
    • 説明変数を減らしたり、減らした変数を増やしたりを検討しながら説明変数を選択する方法
  • 良さの基準
    • 情報量規準(AIC、BICなど)を用いて評価する方法
    • 交差検証法を行い、予測度の精度を用いて評価する方法
    • 説明変数を増やした(減らした)場合とそうでない場合のモデルに対して、検定を用いて評価する方法
  • 変数選択の注意点
    • 評価したい説明変数は必ず使用する
    • 変数増加法の落とし穴
    • 総当たり法を使うのがベター