logo

統計分析における変数選択手順 📂統計的分析

統計分析における変数選択手順

ビルドアップ

多重回帰分析 $Y \gets X_{1} , \cdots, X_{p}$ を行うとしよう。ここで、独立変数は $p$ 個で、回帰分析の様々な前提をよく満たしていて、多重共線性がなく、説明力が高いと良いだろう。

もちろん情報が多ければ多いほど良いが、あまりにも多くのデータから得られた回帰モデルは使用するのにも多くのデータを要求する。だからできれば、使用する独立変数を減らしてモデルを簡略化するのが良い。「コスト」を考えながらモデルを理解し、活用するには、「最大化」よりも「最適化」がより重要だ。このために必要な作業は、不必要な独立変数を除去することだ。

たとえば、変数 $p=7$ 個をすべて使用して分析した結果、説明力が $R_{p}^{2} = 89 %$ となった場合、それは一応良いことだ。しかし、$q=2$ 個の独立変数だけでも説明力が $R_{q}^{2} = 87 %$ 程度になるなら、ただ2つだけ使う方がずっと良いかもしれない。

この時、元の独立変数 $p$ 個で得られたモデルを**全モデル FM(Full Model)と言い、独立変数を $q$ 個だけ減らして得られたモデルを縮小モデル RM(Reduced Model)と言う。独立変数が一つもないモデルをゼロモデル NM(Null Model)**と言い、ゼロモデルと全モデルの間にある縮小モデルの中で最も適切なものを見つけることが課題だ。幸いにも、この過程を理解すること自体は、数学的な知識がなくても構わない。簡単に言うと、「可能なケースを全部検討」することだ。

独立変数の数が $p$ だと、ケースの数は $p^p$ になる。実際、今日ではコンピュータも良くなっているので、いわゆるビッグデータと呼ばれる程度でなければ、本当に文字通り全てのケースを調べても良いが、昔は、その計算を少しでも減らすために次の方法が考案された。

変数選択法 1

前進選択法forward Selection Procedure

ゼロモデル $Y \gets 1$ から変数を一つずつ追加しながらモデルを選択する。最小のt検定統計量が $1$ より小さければ変数追加を止める式で、単純ながらもかなり効果的だ。

後退除去法backward Elimination Procedure

全モデル $Y \gets X_{1} , \cdots, X_{p}$ から変数を一つずつ除去しながらモデルを選択する。最小のt検定統計量が $1$ より小さければ変数追加を止める式で、単純ながらもかなり効果的だ。

ステップワイズ法stepwise method

分析者が提案した最初の縮小モデル RM1から、既にある変数は除去し、既に除去された変数は追加しながら、その中で最も良いモデルを次のモデルとして選択する。前進選択法と後退除去法の長所を合わせたもので、細かく計算しながら、速度面での欠点もあると言えるかもしれない。計算負担が少なく、速度面での負担が問題にならないのであれば、最も良い方法として広く使われている。

マニュアル

上で紹介した変数選択手順は、多重共線性がなければかなり良い方法たちだ。ほとんどの回帰分析はこの過程で終わり、特に変わったり難しい分析でない限り、以下のマニュアルから大きく外れることはない。

  • ステップ1.
    データハンドリング直接データを見て、欠損値異常値変換が必要な部分を見つけ出す。
  • ステップ2.
    変数間の関係を理解する全変数を使って得られた全モデルのモデル診断VIF を見て、交互作用多重共線性を見つけ出す。
  • ステップ3.
    全モデル決定多重共線性問題が解決された回帰モデルに対してモデル診断を行い、新しい全モデルとして決定する。
  • ステップ4.
    変数選択ステップワイズ法を適用し、変数選択基準に従って最も良い縮小モデルを選択する。
  • ステップ5.
    最適モデル決定選択された縮小モデルがモデル診断を問題なく通過すれば、それを最適モデルとして決定する。

実習

多重共線性を見つける方法に続いて)

20181230\_164705.png 20181230\_164959.png

前の投稿で、white変数が多重共線性問題を引き起こしているように見えたので、それを除去してみると、回帰分析がうまくいくように見えた。実際にVIFを計算してみると、多重共線性はなくなり、残差グラフを見ても大きな問題は見えない。これで上のマニュアルのステップ3を終えたことになる。

次に、必要ない変数を除去するために、ステップワイズ法を使用してみよう。幸いにもRでは、このための関数step()がある。ここに入れるモデルはステップ3で言及された「新しい全モデル」に該当し、上の例ではout1に当たる。directionオプションは、選択法の種類を決定する。“forward"は前進選択法、“backward"は後退除去法、“both"はステップワイズ法を指す。

20181230\_165832.png

関数を実行すると、どの変数を入れて、どの変数を外した時に変数選択基準AICがどのように計算されたのかを全て見せてくれる。ステップワイズ法に基づくAICを使用した結果、必要な変数はblack, hhIncome, poverty の三つだけとわかる。これでステップ4が終わり、最後にステップ5を経て、最適モデルを決定する。

20181230\_165943.png 20181230\_165950.png

コード

以下は例示コードだ。

library(car)
 
DATA=MplsDemo; head(DATA)
 
out1<-lm(collegeGrad~.-neighborhood-white,data=DATA)
summary(out1); vif(out1)
 
win.graph(4,4); plot(scale(out1$residuals), main="잔차")
 
out2<-step(out1,direction="both")
summary(out2)
 
win.graph(4,4); plot(scale(out2$residuals), main="잔차")

  1. Hadi. (2006). Regression Analysis by Example(4th Edition): p289~291. ↩︎