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

10.4 変数選択法

(1) 変数選択法の種類

重回帰分析や判別分析と同様に、ロジスティック回帰分析にも各種の変数選択法が考えられています。 ロジスティック回帰分析は目的変数がロジットになった重回帰分析に相当するため、変数の選択法も次のようにほとんど同じものがあります。 (→7.3 変数の選択)

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

これらの手法のうち最も多用されるのは3番の逐次選択法です。 この方法は変数の選択規則によって次のように細分化されます。 なお重回帰分析では重寄与率の増減分を反映するF値を変数選択の指標にしました。 しかしロジスティック回帰分析では重寄与率の増減分を反映する統計量を変数選択の指標にします。 そして変数選択用統計量として、通常は偏回帰係数の検定に使用するワルドのχ2を用います。

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

(2) 変数増減法の手順

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

1) 変数の取り込み

最初にワルドのχ2値が最大の変数つまり単独でロジットに最も寄与している変数を探し、それが取り込み基準を満足するならロジスティック回帰式に取り込みます。 仮にそれをx1とすると、この時の状態は図10.4.1のようになります。

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

取り込み基準は「重寄与率に対する寄与分が回帰誤差の2倍以上あること」すなわち「ワルドのχ2値が2以上」にするのが一般的です。 これは次のように表されます。

ワルドのχ2≧χin2=2の時、取り込み

χin2の値は2と決められているわけではないものの、一般に2〜2.5ぐらいが適当だと言われています。

2) 次の変数の取り込み

次に残りの変数から今取り込んだ変数と共有する情報を取り除き、その上でワルドのχ2値が最大の説明変数を探します。 そしてそれが取り込み基準を満足するならロジスティック回帰式に取り込みます。 その変数をxjとすると、この時の状態は図10.4.2のようになります。

図10.4.2 次の説明変数を取り込んだ時

3) 変数の追い出し

ここで今までに取り込んだ変数の中から単独でワルドのχ2値が最小のもの、つまりその変数を追い出した時に重寄与率の減少が最小になるものを探します。 そしてそれが追い出し基準を満足しているなら追い出し、満足していないのならそのままにします。 これは次のように表されます。

ワルドのχ2<χout2=2の時、追い出し

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

図10.4.3 説明変数の追い出し

4) 変数選択の終了

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

(3) 変数選択の例

表10.4.1のデータに変数増減法によるロジスティック回帰分析を適用すると次のようになります。 なお取り込み基準χ2inと追い出し基準χ2outはどちらも2にしました。 (注2)

表10.4.1 変数選択用テストデータ
No.反応
1:有 0:無
説明変数
x1x2x3
110121
210130
310137
410246
511124
611156
711158
811224
911238
1011258
1111326
1211341
1300123
1400143
1500147
1600120
1700144
1800235
1900241
2000245
2100253
2200235
2300237
2400340
2500341
2600355
2700351
2800336
2901122
3001139
3101152
3201134
3301223
3401228
3501232
3601243
3701242
3801251
3901324
4001327
4101342
4201321
4301335
4401336
変数選択後のロジスティック回帰式 … x2だけ選択
l=0.239 - 0.656x2
ワルドのχ2=2.069>χin2=2

ちなみに、全ての変数を取り込むと次のようになります。

ロジスティック回帰式:l=-0.428 + 0.883x1 - 0.742x2 + 0.008x3
x1のχ2値=1.422   x2のχ2値=2.442   x3のχ2値=0.070

逐次変数選択法によって得られたロジスティック回帰式は、できるだけ少ない変数で、できるだけ精度良く出現率を予測するための簡便で実用的な予測式です。 そのため例えば医学の臨床現場で、なるべく少ない項目で、なるべく正確に疾患の発症率を予測したい時などに用いると便利です。

しかし医学の研究現場では色々な項目が疾患の発症に単独でどの程度寄与しているか、つまり各項目のリスクファクターとしての重要度を調べたい時がしばしばあります。 そのような時は対象とする全項目を入れたロジスティック回帰分析を行うべきであり、逐次変数選択を行うべきではありません。 逐次変数選択を行った場合、選択されなかった変数は疾患の発症に寄与していないとは限りません。 すでに選択された変数にその変数の情報が含まれているため重ねて選択する必要がないだけで、実は疾患の発症に寄与しているということも十分あり得ます。

そのため選択された変数が単独でどの程度の寄与をしているかということは、逐次変数選択の結果からは不正確にしかわかりません。 また選択されなかった変数が疾患の発症にどの程度寄与しているか知るのは不可能です。 したがって色々な項目が疾患の発症に単独でどの程度寄与しているか調べたい時、またはある項目が疾患の発症に寄与していないことを検証したい時などは逐次変数選択を行ってはいけません。

またこのようにして選択された変数の組み合わせは単に数字の大きさだけで機械的に選択されたものであり、科学的に最適なものでも、因果関係を考慮したものでもありません。 そのため得られたロジスティック回帰式について科学的に十分吟味することが必要です。 もしロジスティック回帰式の内容が科学的に解釈困難なら、特定の変数を強制的に取り込んだり追い出したりして色々なロジスティック回帰式を計算し、それらをよく検討して最終的な結果を選ぶべきです。


(注1) 変数増減法によるロジスティック回帰分析は、重回帰分析の変数増減法と似た手順で行います。 ただしロジスティック回帰分析ではニュートン・ラプソン法による最尤解の近似解を求めるため、途中の計算過程が少し複雑になります。 そして近似解は初期値と収束条件によって値が変化するため、変数増減法によって選択された変数の組み合わせを変数指定法によって再計算すると、結果が同じになるとは限りません

1) 変数選択用統計量計算

最初は全ての変数について変数選択用統計量を計算します。 変数選択用統計量としてはワルドの検定に用いるχ2値を用います。 ただしこの場合のχ2値は、定数b0と全ての偏回帰係数の初期値を0としてニュートン・ラプソン法を1回計算した時の値を用います。 そして変数選択途中では未選択の変数についてだけ統計量を計算します。 その際、選択済みの変数の偏回帰係数と定数の初期値は最尤推定値を用い、未選択の変数の偏回帰係数の初期値は0として計算します。

初期値:   bj0:選択済みの変数については最尤推定値、未選択の変数については0
  
0=0   

変数選択用統計量:   [-0]jj-10-1の第j対角要素

2) 取り込み変数の選択

ここから変数の選択に入ります。 未選択の変数の中で変数選択用統計量が最大のものを選び、それがが取り込み基準を満足していれば取り込みます。 もし変数選択基準を満足していなければ、これで変数の選択を終了します。

χj2≧χin2 (=2〜2.5、取り込み基準)

3) 最尤解を求める

取り込まれたk個の変数と定数b0を用い、初期値を0としてニュートン・ラプソン法により最尤解を求めます。

4) 変数の追い出し

k個の変数の中で変数選択用統計量が最小の変数を選び、それが追い出し基準を満足していれば追い出します。

χj2<χout2 (=2〜2.5、追い出し基準)

この後、3番に戻って最尤解を求め、変数の追い出しを続けます。 そして追い出す変数がなくなったら、1番に戻って変数の取り込みを続けます。

5) 変数選択の終了

変数選択は、4番で最後に追い出した変数と1番に戻って取り込んだ変数が同じだった時、または取り込む変数がなかった時、または全ての変数を取り込んだ時に終了します。

変数取り込み基準と変数追い出し基準が同じなら、4番で最後に追い出した変数を1番に戻ってまた取り込むということは有り得ないと思うかもしれません。 ところが変数追い出し時のχ2値は最尤解計算後の値であり、変数取り込み時のχ2値は最尤解計算前の値です。 そのため両者が同じ値になるとは限りません。 その結果、変数追い出し時に追い出した変数を変数取り込み時にまた取り込んでしまうということが起こり得ます。 そこでそのような時は最尤解計算後のχ2値を信頼し、その変数を追い出して変数選択を終了します。

変数選択基準としてワルドのχ2値ではなく、ワルドの検定の有意確率p値を用いる方法もあります。

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

しかし有意確率は変数の影響の強さをそのまま反映するわけではなく、例数が少ない時は大きな値になり、例数が多い時は小さな値になります。 そのため例数が少ない時はいくら影響の強い変数があっても選択されず、例数が多い時は影響の弱い変数まで選択されてしまうので合理的な基準とはいえません。 そして重回帰分析における偏回帰係数の検定と同様に、ワルドの検定に実質的な意味はほとんどないため、あまりお勧めの方法ではありません。

(注2) 表10.4.1の例題について実際に計算してみましょう。

1) 全ての変数の変数選択用統計量計算

初期値:


















     

2) 取り込み変数の選択

変数選択用統計量が最大のものはx2であり、しかも変数取り込み基準を満足しています。 そこでx2を取り込みます。

χ22=2.03989>χin2=2

3) 最尤解を求める

定数とx2を用い、初期値をどちらも0としてニュートン・ラプソン法により最尤解を求めます。

初期値:
     

この更新された1を用いて同様の計算を繰り返します。 そして5回目で45の違いが10-5以下になるため、計算を終了して4を最尤推定値の近似値にします。

  
  

4) 変数の追い出し

最尤解計算後のx2のワルドのχ2値は、変数取り込み時のχ2値と少し異なります。 しかしこの値は追い出し基準を満足していないため、追い出し変数はありません。

>χout2=2

5) 未選択の変数の変数選択用統計量計算

x1とx3について変数選択用統計量を計算します。 その際、定数b0とb2の初期値は最尤推定値を用い、b1とb3の初期値は0として計算します。

初期値:
  


  

6) 取り込み変数の選択

変数選択用統計量が最大のものはx1ですが、これは変数取り込み基準を満足していません。 そのためこれで変数の取り込みを終了します。

χ12=1.46628<χin2=2
ロジスティック回帰式:l=0.239457 - 0.655928x2
χ22=2.06907(p=0.150314)<χ2(1,0.05)=3.841 … 有意水準5%で有意ではない

x2は選択されましたが、偏回帰係数に関するワルドの検定結果は有意水準5%で有意ではありません。 しかし例数が増えれば検定結果は必ず有意になるので、ワルドの検定結果を重要視する必要はありません。

ちなみにχin2out2=0にすれば、全変数を強制的に取り込んだ結果を計算することができます。 しかし全変数を取り込みたい時は、初期値として判別分析の結果を利用して計算する方が収束が速くて便利です。

判別関数:z=0.374749 + 0.866943x1 - 0.714913x2 + 0.011963x3
定数初期値:
初期値:
  

同様の計算を繰り返すと、3回目で繰り返し計算が収束します。


ロジスティック回帰式:l=-0.427873 + 0.882826x1 - 0.741696x2 + 0.008313x3

<χ2(1,0.05)=3.841 … 有意水準5%で有意ではない
<χ2(1,0.05)=3.841 … 有意水準5%で有意ではない
<χ2(1,0.05)=3.841 … 有意水準5%で有意ではない

ワルドのχ2値は各変数が独立にロジットに寄与している大きさを反映します。 そのため検定結果を重要視する必要はありませんが、各変数の寄与の大きさの指標として利用することはできます。 このデータではx2が最も強く寄与していることがわかります。 そこで反応の有無の内容と各変数の内容を考慮して、この結果が合理的に解釈できるのならリスクファクターとしてx2が最も重要であると考えられます。

多変量予測モデルの予測能力の増加を評価する指標としてNRI(Net Reclassification Improvement)IDI(Integrated Discrimination Improvement)という値が提唱されていて、これらの指標をロジスティック回帰分析や生存時間解析で用いる時があります。 しかしこれらは判別分析のような後ろ向き研究用の指標のため、前向き研究用の手法であるロジスティック回帰分析や生存時間解析で用いるのは非合理です。 さらにこれらの指標はオーソドックスな指標――例えば疑似寄与率や偏回帰係数――と比べるとあまり良い指標ではありませんが、一応、紹介しておきます。 (→9.5 変数の選択 (注2))