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

7.3 変数の選択

(1) 変数選択法の種類

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

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

もちろん、1番の変数指定法ができればそれにこしたことはありません。 しかし実際には、むしろ重回帰分析結果から逆に実質科学的にも影響の強そうな説明変数の見当をつけることが多いようです。

2番の総当たり法はいわば力まかせの方法です。 どんな場合でもこの方法が実行できれば文句はないのですが、いかんせん計算量がそら恐ろしく膨大で、おいそれと実行できる方法ではありません。 例えば説明変数がp=10個の時には、

2p-1=210-1=1023個

と、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.7のようになります。

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

通常、取り込み基準は「説明変数が目的変数と共有している情報つまり図7.7の灰色部分の密度が、説明変数によって説明されない目的変数の情報つまり白ヌキ部分の密度、すなわち誤差または残差(residual)密度の2倍以上あること」というものにし、この基準を満足する時にその変数を取り込みます。 「情報密度」というのは情報量すなわち平方和を、その情報の担い手の数すなわち自由度で割ったもので、統計上は「分散」のことです。

共有情報密度と誤差密度の濃さを比べるには両者の比をとります。 これは分散比すなわちF値になりますから、取り込み基準は「Fin」と表され次のようになります。

共有情報密度
――――――
誤差密度
≧Fin=2の時取り込み

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

例えば説明変数の情報密度が同じでF値が同じでも、例数が少ない時はp値が大きくなって選択されず、例数が多い時はp値が小さくなって選択されるということが起こります。 そして例数が非常に多くなれば理論的には全ての説明変数が有意になり、全ての変数を取り込むことになってしまいます。 これでは変数選択の意味がありません。 また検定を用いるのなら、事前に作業仮説を立てて例数設計を行う必要があります。 しかし変数選択法を用いるのは選択すべき説明変数がわからないからであり、事前に選択結果を予測して作業仮説を立てることはできません。 したがって変数選択基準として有意確率p値を用いるのは、あまり合理的ではありません。

2) 次の変数の取り込み

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

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

この場合の取り込み基準は「xjが単独で目的変数と共有している情報つまり図7.8の薄い灰色部分の密度が、誤差つまり白ヌキ部分の密度の2倍以上ある時にその変数取り込む」というものになります。

単独共有情報密度
――――――――
誤差密度
≧Fin=2の時取り込み

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

3) 変数の追い出し

ここで、今までに取り込んだ説明変数のうち、単独で目的変数と共有している情報が最小のものを探します。 そしてそれが追い出し基準を満足しているのならその変数を追い出し、満足していないのならそのままにします。 通常、追い出し基準は取り込み基準に対応した内容のものにしますので、「説明変数が単独で目的変数と共有している情報の密度が誤差密度の2倍未満の時、その変数を追い出す」というものにします。 すなわち追い出し基準を「Fout」と表しますと、次のようになります。

単独共有情報密度
――――――――
誤差密度
<Fout=2の時追い出し

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

図7.9 変数の追い出し

4) 変数選択の終了

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

 

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

しかし医学の研究現場では、色々な検査項目が特定の値に単独でどの程度影響しているか、つまり各検査項目の重要度を調べたい時がしばしばあります。 そのような場合は対象とする全検査項目を説明変数に入れた重回帰分析を行うべきであり、逐次変数選択を行うべきではありません。

逐次変数選択を行った場合、選択されなかった変数は目的変数に影響を与えていないとは限りません。 その変数の情報が選択された変数に含まれているため、重ねて選択する必要がないだけで、実は目的変数に影響を与えているということも十分あり得ます。 そのため逐次変数選択の結果から、選択されなかった変数の影響力を知ることは不可能であり、しかも選択された変数が単独でどの程度の影響を与えているかということも不正確にしかわかりません。 したがって色々な項目が特定の値に単独でどの程度影響しているかを調べたい時、またはある項目が特定の値に影響していないことを証明したい時などには、逐次変数選択を行ってはいけません。

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


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

1) 重回帰モデル

この重回帰モデルについても含めたデータ行列、


          [n×(p+2)]

を用意して、その転置行列との積つまり単純積和行列を作り、その右側に単位行列を並べたものを0とします。


          [(p+2)×(p+2)]


          [(p+2)×2(p+2)]

後の計算のために、0の行と列の番号を1〜(p+2)ではなく0、1、…、p、yと呼ぶことにします。

2) 積和行列に変換

0a00=nを軸にして第1行〜第y行まで掃き出します。



この操作によって左側の第0行は各変数の平均値ベクトルになり、第1行−第1列以下は各変数の積和行列になります。 この行列において、

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

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


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

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

3) 取り込み変数の選択

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

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

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


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

もし、

Fj<Fin

ならば、これで変数の選択を終了します。

4) 変数の取り込み

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

5) 追い出し変数の選択

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

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


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

もし、

Fl≧Fout

ならばそのままにし、また3番に戻って変数の取り込みを続けます。

6) 変数の追い出し

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

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

7) 各種統計量の計算

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

















表7.2 分散分析表(ANOVA table)
要因平方和SS自由度φ平均平方和Ms(分散V)分散比F
回帰SβφβVβFβ=Vβ/VR
残差SRφRVR 
全体Syyφy 

・回帰の検定(重相関係数の検定)

帰無仮説H0:β1=…=βr=0 (R=0)

・偏回帰係数の検定

帰無仮説H0:βj=0 (j=1,…,r)

回帰の検定は今までと同様に実質的な意味はほとんどなく、偏回帰係数の検定はもっと意味がありませんが、一応、書いておきます。 これらの検定は回帰誤差εが近似的に正規分布することを必要とします。 よく誤解されていますが、重回帰式そのものを計算するには正規性は必要ではなく、検定を行う時だけ目的変数の回帰誤差の正規性を必要とします。 目的変数そのものの正規性は必要ではなく、説明変数の正規性は全く必要としません。 原理的に説明変数は任意に設定できますので、変数である必要さえありません。

そもそも多変量解析は記述統計学的手法であり、推測統計学的手法である検定とはなじみが悪いのです。 例えば、多変量解析では合理的な対立仮説を設定することが難しいため、βエラーが計算できず、必要例数の計算もできません。 このため検定はどうしても有意性検定になり、偏回帰係数が完全に0でない限り、例数さえ増やせば必ず有意になります。 このため、検定に実質的な意味がほとんどなくなってしまうのです。

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

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

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

 

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

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

2) 0a00=10で掃き出し。

3) 取り込み変数の選択。


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

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

4) 1a11=3090で掃き出し。

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

6) 取り込み変数の選択。


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

7) 2a22=16676.375で掃き出し。

8) 追い出し変数の選択。

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


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

9) 以上より、各種統計量は次のようになります。
























表7.3 例題の分散分析表
要因平方和SS自由度φ平均平方和Ms(分散V)分散比F
回帰13.751626.875815.286
残差3.148470.4498 
全体16.99 

水準数つまり群の数がp個の一元配置モデル、

y=μ+αj+ε (j=1,…,p)
μ:総平均  αj:第j水準の効果  ε:誤差

は、(p-1)個のダミー変数を説明変数にした重回帰モデルとして次のように表現することができます。


xj:群j(第j水準)に属す時のみ「1」で、他は「0」のダミー変数
群1:x2=…=xp=0
群j:x2=…=xj-1=0, xj=1, xj+1=…=xp=0 (j=2,…,p)
β0=μ+α11 (群1の母平均)
βjj1=(μj-μ)-(μ1-μ)=μj1 (j=2,…,p)

この場合、行列は一元配置のデザインを決めるものになるので「デザイン行列」と呼ばれます。 ダミー変数が群の数より1つ少ないのは(p-1)個でp個の群を過不足なく表現できるからで、これは要因Aの自由度が(p-1)になることと関連しています。 ダミー変数が全て0で表される群1は便宜的に基準になる群ですので、普通はコントロール群を割り当てます。

このモデルについて正規方程式を解くと次のようになります。


rj:群jの例数


'の逆行列は余因子行列を用いて次のように計算します。




定数:b0=my1 (群1の平均)
偏回帰係数:bj=myj-my1 (群jの平均-群1の平均)
重寄与率:R2=要因Aの寄与率=η2

この時、回帰についての分散分析表がそのまま一元配置分散分析表になり、重回帰は一元配置分散分析と一致し、重寄与率が相関比ηの平方になります。 そして偏回帰係数bjの検定は、群1の平均値と群jの平均値のフィッシャー型多重比較になります。 したがって多重比較の考え方を重回帰分析にも適用するなら、偏回帰係数の検定はフィッシャー型ではなく、例えばボンフェローニ型などにすべきだと考えたくなります。

しかし重回帰分析の場合は説明変数間に相関があり、それらが有機的に組み合わさって目的変数に影響を与えていると考えます。 このため個々の説明変数を独立に検定することにはあまり意味がなく、特定の説明変数の組み合わせが目的変数にどの程度影響しているかを評価する、つまりどのような説明変数を組み合わせたモデルが最適かを評価することに重点があります。 そして個々の説明変数の偏回帰係数を検定するのは、あくまでも個々の説明変数の寄与分を独立に評価するためであり、多重比較のように、それらの検定結果を総合してファミリーとしての結論を導くということはありません。 このため普通は、偏回帰係数の検定にボンフェローニ型などの多重比較を適用する必要はありません。 (→4.1 多標本の計量値)

また説明変数が計量値ではなく、一元配置分散分析のような名義尺度(分類データ)ばかりの時もダミー変数を利用して重回帰分析を行うことができます。 例えば説明変数として性と診断名があり、次のように分類されていたとします。

性:男・女
診断名:高脂血症・高血圧症・心疾患・その他

この場合、次のように4つのダミー変数を用いた重回帰モデルで表現することができます。


・性
 男:x1=0  女:x1=1
・診断名
 高脂血症:x2=1, x3=0, x4=0
 高血圧症:x2=0, x3=1, x4=0
 心疾患 :x2=0, x3=0, x4=1
 その他 :x2=0, x3=0, x4=0

このモデルについて重回帰分析を行うと、その偏回帰係数は次のようになります。

b0:定数(性:男かつ診断名:その他の群の平均)
b1:性差 (女−男)
b2:疾患差 (高脂血症−その他)
b3:疾患差 (高血圧症−その他)
b4:疾患差 (心疾患−その他)

これらは性差または疾患差であると同時に、名義尺度に数量を与えて数量化(quantification)または尺度化(scaling)したものと解釈することができます。 このように名義尺度に何らかの規準に従って数量を与える手法を「数量化理論(quantification theory)」といい、我が国の林博士によって発展されたため日本では有名です。 数量化理論のうち、ダミー変数による重回帰分析と等価の手法を「数量化I類」といいます。

また説明変数の中に計量尺度のものと名義尺度のものとが混在している場合には、「共分散分析(ANCOVA、analysis of covariance)」と呼ばれる手法になり、目的変数が名義尺度の場合には「判別分析(discriminant analysis)」と呼ばれる手法になります。 これらの手法については第8章と第9章で説明します。 (→第8章 共分散分析第9章 判別分析)

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

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

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



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

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

表6.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の例題について、x1だけを取り込んだ時と、x1とx2を取り込んだ時のAICを実際に計算すると次のようなります。

・x1だけ取り込んだモデル

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

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

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

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


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

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

・x1だけ取り込んだモデル

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

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

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