玄関雑学の部屋雑学コーナー統計学入門

7.3 変数の選択

(1) 変数選択法の種類

重回帰モデルの説明変数がやたらに多いと、重回帰式を科学的に解釈する時にも、それによって目的変数の値を予測する時にも何かと面倒であまり実用的ではありません。 そこで説明変数を選択するための手法が次のように色々と考えられています。

  1. 変数指定法:医学・薬学等の科学的理論や知識によって最適な説明変数を指定する。
  2. 総当たり法:全ての説明変数の組み合わせを計算し、最も良いと思われるものを選択する。
  3. 逐次選択法:一定の規則に従って説明変数を逐次選択していく。

もちろん1番の変数指定法ができるのなら、それが最善です。 しかし実際には重回帰分析結果から、逆に科学的にも影響の強そうな説明変数の見当をつけることが多いと思います。 重回帰分析に限らず多変量解析は探索的な性質の強い手法なので、事前に最適な変数が指定できる場合は少ないのです。

2番の総当たり法は、いわば力まかせの方法です。 この方法が実行できればそれに越したことはありません。 しかしいかんせんこの方法は計算量が膨大であり、おいそれと実行できる方法ではありません。 例えば説明変数がp=10個の時には、次のように1023種類もの重回帰式を計算する必要があります。

2p-1=210 - 1=1023個

コンピュータが発達した現代では、こんなものすごい計算も物理的には不可能ではありません。 しかしそれらの結果を1つ1つ吟味して、最適なものを選び出すための人間の頭脳労働がたまったものではありません。 金と力にものをいわせて腕ずくで物事を解決しようというのは、何事においてもあまり誉められたことではないでしょう。

ということは、結局、3番の逐次選択法が最も現実的な方法になります。 この方法は変数の選択規則によって次のように細分化されます。

  1. 変数増加法(前進的選択法、forward selection method)
    最初に全説明変数の中から目的変数に対する単寄与率が最大のものを重回帰式に取り込む。 そしてそれ以後は、すでに取り込まれた説明変数との共有部分を除いて、単独で目的変数と共有している情報が最大の説明変数を取り込んでいく。 これは、その変数を取り込んで重回帰式を計算した時、重寄与率の増加が最大になることを意味している。 その際、重寄与率の増加があらかじめ決めておいた値、すなわち取り込み基準未満になった時に変数の取り込みを終了する。
  2. 変数減少法(後退的選択法、backward selection method)
    最初に全説明変数を重回帰式に取り込み、以後は取り込まれた説明変数のうち単独で目的変数と共有している情報が最小のものを追い出していく。 これは、その変数を追い出して重回帰式を計算した時、重寄与率の減少が最小になることを意味している。 この際、重寄与率の減少があらかじめ決めておいた値、すなわち追い出し基準以上になった時に変数の追い出しを終了する。
  3. 変数増減法(stepwise forward selection method)
    増加法と減少法を組み合わせた手法。 まず変数増加法と同様に取り込み基準に従って変数を取り込む。 そして変数を1つ取り込むたびに、すでに取り込んだものの中から変数減少法と同様の追い出し基準を満足するものがあるか調べ、あればそれを追い出してから、さらに変数の取り込みを続ける。 この手法では取り込むべき変数も追い出すべき変数もなくなった時に変数の選択を終了する。
    この手法は目的変数に対する影響が強い説明変数を少数選択するという特徴を持ち、逐次変数選択法の中で最も多用されている。
  4. 変数減増法(stepwise backward selection method)
    増加法と減少法を組み合わせた手法。 変数増減法とは逆に、まず変数減少法に従って全ての変数を取り込み、追い出し基準を満足するものを追い出す。 そして変数を1つ追い出すたびに、すでに追い出したものの中から変数増加法と同様の取り込み基準を満足するものがあるか調べ、あればそれを取り込み、さらに変数の追い出しを続ける。 変数増減法と同様に、取り込むべき変数も追い出すべき変数もなくなった時に変数の選択を終了する。
    この手法は目的変数に対する影響が弱い説明変数を少数除外するという特徴を持ち、逐次変数選択法の中で効率的な変数の組み合わせが得られる可能性が最も高い。

「ゴチャゴチャしていてよくわからんが、とにかくやたらと込み入った方法らしいな…」

とお思いでしょう。 そのとおり、これらは非常に複雑な方法なのです。

(2) 変数増減法の手順

変数選択法の中で最も多用されるのは変数増減法です。 そこで、この方法の手順をもう少し詳しく説明することにしましょう。 (注1)

1) 最初の変数の取り込み

最初に目的変数に対する単寄与率が最大の説明変数つまり目的変数との共有情報が最大の説明変数を探し、それが取り込み基準を満足するなら重回帰式に取り込みます。 その変数をx1とすると、この時の状態は図7.3.1のようになります。

図7.3.1 1つの変数を取り込んだ時

通常、取り込み基準は次のようなものにします。

説明変数が目的変数と共有している情報——図7.3.1の灰色部分——の密度が、説明変数によって説明されない目的変数の情報つまり残差または誤差——図7.3.1の白抜き部分——の密度の2倍以上あること。

情報の密度とは情報量すなわち平方和を、その情報の担い手の数すなわち自由度で割ったものであり、数学的には分散のことです。 共有情報密度と残差密度を比べるには両者の比を計算します。 その比は分散比つまりF値になるので取り込みのための基準値をFinで表すと、前述の取り込み基準を次のように表すことができます。

F= 共有情報密度 残差密度 F in =2 の時、取り込み

Finの値は2と決められているわけではありませんが、一般に2〜2.5ぐらいが適当だと言われています。 F値はF検定で用いる検定統計量なので、この値を利用して説明変数を取り込むことによって共有情報密度が濃くなるかどうか、つまりF値が1よりも大きいかどうかという検定を行うことができます。 そしてその検定の有意確率p値を取り込み基準にする、という方法も考えられます。 しかし変数選択という手法は探索的な研究に用いられる記述統計学的手法のため、推測統計学的手法である検定とは馴染みません。

例えばある説明変数の情報密度が同じでF値が同じでも、例数が少ない時はp値が大きくなって選択されず、例数が多い時はp値が小さくなって選択されるということが起こります。 そして例数が非常に多くなれば原理的には全ての説明変数が有意になり、全ての変数を取り込むことになってしまいます。 これでは変数選択の意味がありません。

また検定を用いるなら事前に作業仮説を設定し、それに基づいて例数設計を行う必要があります。 しかし変数選択法を用いるのは選択すべき説明変数がわからないからであり、事前に選択結果を予測して作業仮説を立てることはできません。 したがって変数選択基準として有意確率p値を用いるのはあまり合理的ではありません

2) 次の変数の取り込み

次に残りの説明変数の中から今取り込んだ説明変数と共有する情報を取り除いた上で、目的変数と共有する情報が最大のものを探します。 そしてその変数が取り込み基準を満足するなら重回帰式に取り込みます。 その変数をxjとすると、この時の状態は図7.3.2のようになります。

図7.3.2 次の変数を取り込んだ時

この場合の取り込み基準は次のようになります。

説明変数が単独で目的変数と共有している情報つまり単独共有情報——図7.3.2の薄い灰色部分——の密度が、残差密度の2倍以上あること。 つまり
F= 単独共有情報密度 誤差密度 F in =2 の時、取り込み

この時の単独共有情報が偏回帰平方和Sbjであり、重寄与率の増加分に相当します。

3) 変数の追い出し

ここで、今までに取り込んだ説明変数の中から単独共有情報が最小のものを探します。 そしてその変数が追い出し基準を満足しているなら追い出し、満足していないならそのままにします。 通常、追い出し基準は取り込み基準と対応した内容にするため次のようになります。

説明変数の単独共有情報密度が残差密度の2倍未満であること。 つまり追い出し基準値をFoutで表すと
F= 単独共有情報密度 誤差密度 F out =2 の時、追い出し

FoutはFin以下ならどんな値でもかまいませんが、普通はFinと同じ値にします。 もしFout>Finにすると同じ変数が出たり入ったりを繰り返してしまうので注意が必要です。 またFout=0にすると変数の追い出しをせず、変数増加法と同じものになります。 そしてFin=Fout=0にすると全ての変数を強制的に取り込みます。

図7.3.3 変数の追い出し

4) 変数選択の終了

変数を追い出した後、2番に戻ってさらに変数の取り込みを続けます。 そして取り込む変数も追い出す変数もなくなるまで2番と3番の手順を繰り返します。

(3) 変数選択の例

表6.1.1のデータに変数増減法を適用すると次のような結果になります。 なお取り込み基準Finと追い出し規準Foutはどちらも2にしました。

1) 最初の変数の取り込み

各説明変数の重症度に対する単寄与率を計算すると次のようになります。

TC:r2=0.567  TG:r2=0.149

この結果、最初の取り込み変数候補としてTCを選択します。 そしてTCのF値を計算すると次のようになり、取り込み基準を満足しています。 そこでまずTCを取り込みます。

F=17.318>Fin=2

2) 次の変数の取り込み

次にTCとの共有情報を取り除いた上で、TGのF値を計算すると次のようになり、取り込み基準を満足しています。 そこでTGを取り込みます。

F=4.870>Fin=2

2) 変数の追い出し

今取り込んだばかりのTGは除外するため、TCだけが追い出し変数候補になります。 そしてTCのF値を計算すると次のようになり、追い出し基準を満足していません。 そのためTCは追い出しません。

F=24.987>Fout=2

2) 変数選択の終了

以上で取り込む変数も追い出す変数もなくなりました。 そのためこれで変数選択を終了します。

この場合は全ての変数を取り込んだため、変数選択法の結果は第2節の全変数を取り込んだ普通の重回帰分析の結果と同じになります。

(4) 変数選択法の注意点

逐次変数選択法によって得られた重回帰式は、できるだけ少ない説明変数で、できるだけ効率的に目的変数の値を予測するためのものです。 そのため例えば医学の臨床現場で、なるべく少ない検査項目で、なるべく正確に特定の値を予測したい時などに用いると実用的で便利です。

しかし医学の研究現場では特定の値に対して色々な検査項目が単独でどの程度影響しているかを検討したい、つまり各検査項目の重要度を検討したい時がよくあります。 そのような時は検討対象となる全ての検査項目を説明変数に入れた重回帰分析を行うべきであり、逐次変数選択を行うべきではありません。 逐次変数選択を行った場合、選択されなかった説明変数が目的変数に影響を与えていないとは限りません。 すでに選択された説明変数にその説明変数の情報が含まれているため重ねて選択する必要がないだけで、実際には目的変数に影響を与えているということも十分あり得ます。

例えば収縮期血圧と拡張期血圧のようにお互いに相関の高い項目があった時、一方の値から他方の値を推測することがある程度はできます。 そのため例えば収縮期血圧だけが選択され、拡張期血圧は選択されないということがよく起こります。 ところが収縮期血圧が測定されておらず、拡張期血圧だけが測定されていたとすると、その場合は拡張期血圧が選択されるはずです。

このように、逐次変数選択の結果から選択されなかった説明変数の影響力を知ることは不可能です。 さらに選択されなかった説明変数の影響は補正されないため、選択された説明変数が単独でどの程度の影響を目的変数に与えているかということも不正確にしかわかりません。 したがって特定の値に対して色々な項目が単独でどの程度影響しているかを調べたい時、またはある項目が目的変数に対して影響していないことを確認したい時などは逐次変数選択を行うべきではありません。

逐次変数選択法によって得られた説明変数の組み合わせは科学的に最適なものというわけではなく、あくまでもその候補にすぎません。 それが最適かどうかは、得られた重回帰式の内容が科学的に十分納得できるものであるかどうかで決まります。 もし重回帰式の内容が科学的に解釈困難なら、特定の説明変数を強制的に取り込んだり追い出したりして色々な重回帰式を計算し、それらの内容をよく吟味して最終的な結果を選ぶべきです。 (注2)

多変量解析では面倒な計算はコンピュータ任せでもかまいませんが、結果の判断は人間が責任を持って行わなければなりません。 これは何も統計学に限ったことではなく、コンピュータを利用した仕事は常にそうあるべきでしょう。


(注1) 変数増減法による重回帰分析は、掃き出し法を利用して次のような手順で行います。

1) 重回帰モデル

重回帰モデルについて、も含めたデータ行列を用意します。

重回帰モデル:

とその転置行列との積つまり単純積和行列を作り、その右側に単位行列を並べたものを0とします。 そして後の計算のために、0の行と列の番号を1〜(p+2)ではなく0、1、…、p、yと呼ぶことにします。


2) 積和行列に変換

0a00=nを軸にして第1行〜第y行まで掃き出します。 この操作によって左側の第0行は各変数の平均値ベクトルになり、第1行−第1列以下は各変数の積和行列になります。

この1において次のような計算をすることによって、各変数間の単相関係数を求めることができます。 したがってこの行例を利用して各変数の平均値、標準偏差、単相関係数を一度に求めることができます。

(j≠k、j,k=1,…,p,y)

この掃き出しでは次のようなモデルを当てはめたことになります。


b0=1a0y=my   平方和:Syy=1ayy   自由度:φy=n - 1

yの本来の全情報量はΣyi2であり、その担い手の数は次元数nです。 しかし通常は平均値の情報をさっぴいた時の平方和Syyを全情報量、自由度(n-1)を担い手の数として変数の取り込み・追い出しや重回帰式の分散分析に用います。

3) 取り込み変数の選択

ここから変数の選択に入ります。 今、第k番目(k=1,…,p、前述の状態はk=1)まで変数の取り込みが終了しているとします。

今までに取り込まれた変数は除いて、各説明変数と目的変数の単独共有情報量すなわち回帰平方和の増加分は次のようになります。

(j=1,…,p、すでに取り込まれた変数は除く)

この値が最大のものを選び、次のような基準を満足すればその変数を取り込みます。


SR(k):第k番目の残差(誤差)平方和   SR(k+1):第(k+1)番目の残差(誤差)平方和   Fin=2〜2.5:取り込み基準

上記の基準を満足せず、次のようになれば変数の選択を終了します。

Fj<Fin → 変数選択終了

4) 変数の取り込み

kajjを軸にして掃き出し、第j番の変数を取り込みます。

5) 追い出し変数の選択

今までに取り込まれた変数のうち、yとの単独共有情報量すなわち回帰平方和の減少分は次のようになります。

(l=1,…,p、すでに取り込まれた変数のみ)

この値は第2節で偏回帰平方和Sblと呼んだものです。 この値が最小のものを選び、次のような基準を満足すればその変数を追い出します。

<Fout
Fout=2〜2.5:追い出し基準。 Fout≦Finの必要があり、Fout=Finが一般的

上記の基準を満足せず次のようになれば、また3番に戻って変数の取り込みを続けます。

Fl≧Fout → 3)へ

6) 変数の追い出し

第l番の変数を追い出すには右側の逆行列のk+1all(-1)を軸にして掃き出し、kに戻します。

この後でまた3番に戻り、取り込む変数がなくなるまで同様の手順を繰り返します。

7) 各種統計量の計算

最終的に第r番目の変数を取り込んで変数の選択が終了したとすると、次のようにして各種の統計量を計算します。


残差平方和:SR=rayy   残差自由度:φR=n - r   残差分散:
回帰平方和:Sβ=Syy-SR=Syy-rayy   回帰自由度:φβ=r - 1   回帰分散:
偏回帰平方和:   偏回帰自由度:φbj=1
重寄与率:  重相関係数:R
定数:b0=ra0y   定数の標準偏差(標準誤差):
偏回帰係数:bj=rajy (j=1,…,p、取り込まれた変数のみ)   偏回帰係数の標準偏差(標準誤差):
標準偏回帰係数:   偏相関係数:
表7.3.1 分散分析表(ANOVA table)
要因平方和SS自由度φ平均平方和Ms(分散V)分散比F
回帰SβφβVβFβ=Vβ/VR
残差SRφRVR 
全体Syyφy 
○回帰の検定(重寄与率の検定)
帰無仮説 H0:β1=…=βr=0 (R2=0)
Fβ>F(φβR,α)の時、有意水準100α%で有意
○偏回帰係数の検定
帰無仮説 H0:βj=0 (j=1,…,r)
>F(1,φR,α)=t(φR,α)2の時、有意水準100α%で有意
○偏回帰係数の推定
100(1-α)%信頼区間=bj ± t(φR,α)SEbj → 下限:βjL=bj - t(φR,α)SEbj  上限:βjU=bj - t(φR,α)SEbj

単回帰分析と同様に、重回帰分析における回帰の検定と偏回帰係数の検定にも有意性検定と統計的仮説検定があります。 しかし実際の研究現場で重寄与率や偏回帰係数の検出差を指定するのは困難なので、ほとんどの場合は有意性検定を行います。 したがって重寄与率や偏回帰係数が完全に0でない限り、例数さえ増やせば必ず有意になります。 そして例数が少なければ有意にならず、有意ではない時は結論を保留します。

そのため多変量解析における検定には実質的な意味はほとんどないと言って良いと思います。 そもそも多変量解析は記述統計学的手法であり、推測統計学的手法である検定は馴染みにくいのです。

また単回帰分析と同様に、重回帰分析における検定と推定は回帰誤差εが近似的に正規分布するという前提で行います。 よく誤解されていますが、重回帰式そのものを計算するには正規性は必要ではなく、検定と推定を行う時だけ目的変数の回帰誤差の正規性が必要になります。 そして回帰誤差が正規分布すれば目的変数そのものは正規分布しないため、目的変数そのものの正規性は必要ではありません。 また説明変数は原則として研究者が任意の値を指定します。 そのため説明変数は確率変数ではなく、正規性という概念そのものが当てはまりません。 これもよく誤解されていることです。

変数選択基準としてF値ではなく偏回帰係数の検定の有意確率p値を利用して、次のような基準を用いることもあります。

取り込み基準:p≦Pin=0.05  追い出し基準:p>Pout=0.05

しかしp値は説明変数の影響の強さをそのまま反映するわけではなく、例数が少ない時は大きな値になり、例数が多い時は小さな値になります。 そのため例数が少ない時はいくら影響の強い説明変数があっても選択されず、例数が多い時は影響の弱い説明変数まで選択されてしまいます。 これでは変数選択の意味がなく、合理的な基準とは言えません。 そのためやはりF値を用いる方が良いでしょう。

表6.1.1の例題について実際に計算してみましょう。

1) 積和行列の計算と0の用意

2) 0a00=10で掃き出し

3) 取り込み変数の選択

  

したがって、まずx1を選択します。

選択基準を満足しているのでx1を取り込みます。

4) 1a11=3090で掃き出し

5) 追い出し変数の選択

取り込んだ変数が今取り込んだx1だけのため、変数追い出しステップは飛ばします。

6) 取り込み変数の選択

  

よって、x2を取り込みます。

7) 2a22=16676.375で掃き出し

8) 追い出し変数の選択

今取り込んだばかりのx2は候補からはずします。

  

このためx1は追い出さず、これで変数の選択を終了します。

9) 各種統計量の計算

変数の選択を終了し、各種統計量を計算します。

SR=3.1484  φR=7      Sβ=16.9-3.1484=13.7516  φβ=2   
Sb11=11.239   Sb22=2.191  b0=-18.5014   
b1=0.0916  
… 有意水準5%で有意
95%信頼区間=0.0916 ± 0.0433 → 下限:β1L=0.0483 上限:β1L=0.1350
b2=-0.0115  
… 有意水準5%で有意ではない
95%信頼区間=-0.0115 ± 0.0123 → 下限:β2L=-0.0237 上限:β2L=0.0008
  
  
  
Fβ=15.286(p=0.0028)>F(2,7,0.05)=4.737 … 有意水準5%で有意
表7.3.2 例題の分散分析表
要因平方和SS自由度φ平均平方和Ms(分散V)分散比F
回帰13.751626.875815.286
残差3.148470.4498 
全体16.99 

(注2) 重回帰モデルの当てはまりの良し悪しを評価する指標として色々な値が提唱されています。 その中から代表的なものを紹介しましょう。

1) 自由度調整済み重寄与率R'2

平方和の代わりに自由度で調整した平均平方和つまり分散を用いて定義した寄与率であり、自由度調整済み決定係数とも呼ばれています。 この値が大きいほど当てはまりの良いモデルと評価します。

  
n:例数  k:説明変数の個数  R2:重寄与率  R':自由度調整済み重相関係数

R'2が大きくなるということは残差分散VRが小さくなるということです。 そして(注1)から、変数取り込み基準Finと追い出し基準Foutは変数の回帰分散と残差分散の分散比であることがわかると思います。 そのため分散比が1以上の変数を取り込むか1未満の変数を追い出せば、残差分散が小さくなります。 したがってFinとFoutを1にした時の変数選択基準はR'2を最大にするという変数選択基準に相当することになります。

表6.1.1の例題についてx1だけを取り込んだ時と、x1とx2を取り込んだ時のR'2を実際に計算すると次のようなります。

x1だけ取り込んだモデル:
x1とx2を取り込んだモデル:

この結果から2つの変数を取り込んだモデルの方がR'2が大きく、より当てはまりの良いモデルと考えられることがわかります。 なおR'2は寄与率の一種ですが、あくまでもモデルの妥当性を表す指標であり、目的変数の全変動の中で説明変数によって説明される変動の割合と解釈することはできないので注意してください。

2) 赤池の情報量基準AIC(Akaike's Information Criterion)

本来は最尤法におけるモデルの当てはまりの良し悪しを評価する指標であり、最小2乗法を用いる重回帰分析では対数残差平方和を用いた簡略な式を用います。 この値が小さいほど当てはまりの良いモデルと評価します。 (→9.3 1変量の場合 (注1))

AICが小さくなるということは残差平方和SRが小さく、かつ説明変数の個数も少なくなるということです。 したがって残差分散が小さいほど良いということとほぼ同じ意味になり、例数が十分に大きい時は漸近的にFin=Fout=2にした時の変数選択基準に相当します。

表6.1.1の例題についてx1だけを取り込んだ時と、x1とx2を取り込んだ時のAICを実際に計算すると次のようなります。

x1だけ取り込んだモデル:
x1とx2を取り込んだモデル:

この結果から2つの変数を取り込んだモデルの方がAICが小さく、より当てはまりの良いモデルと考えられることがわかります。

3) マローズ(C. L. Mallows)の当てはめ係数Cp

目的変数の推定値に関して偏りとばらつきの両方を考慮した指標として、マローズによって提唱された値です。 この値が小さいほど当てはまりの良いモデルと評価します。

  E(Cp)=k+1
=誤差分散推定値   V0:全ての説明変数を取り込んだ時の残差分散

AICと同様にCpも残差平方和が小さく、かつ説明変数の個数が少なくなるほど小さくなります。 そのため例数が十分に大きい時、Cpの最小化とAICの最小化は漸近的に同等になります。

表6.1.1の例題についてx1だけを取り込んだ時と、x1とx2を取り込んだ時のCpを実際に計算すると次のようなります。

x1だけ取り込んだモデル:
x1とx2を取り込んだモデル:

この結果から2つの変数を取り込んだモデルの方がCpが小さく、より当てはまりの良いモデルと考えられることがわかります。

これらの指標はモデルの科学的な妥当性を評価するものではなく、数学的な当てはまりの良し悪しを評価する値です。 したがってこれらの指標を用いて最良と評価されたモデルは、あくまでも科学的に最良なモデルの候補にすぎません。 モデルが本当に科学的に最良かどうかは、やはりモデルの内容を科学的に吟味してから決定しなければなりません。