前口上 | 目次 | 第1章 | 第2章 | 第3章 | 第4章 | 第5章 | 第6章 | 第7章 | 第8章 | 第9章 | 第10章 |
第11章 | 第12章 | 第13章 | 第14章 | 第15章 | 第16章 | 第17章 | 第18章 | 第19章 | 第20章 | 付録 |
1 | 2 | 3 | 4 |
重回帰モデルの説明変数がやたらに多いと、重回帰式を科学的に解釈する時にも、それによって目的変数の値を予測する時にも何かと面倒であまり実用的ではありません。 そこで説明変数を選択するための手法が次のように色々と考えられています。
もし1番の変数指定法ができるのなら、それが最善です。 しかし実際には重回帰分析結果から、逆に科学的にも影響の強そうな説明変数の見当をつけることが多いと思います。 重回帰分析に限らず多変量解析は探索的な性質の強い手法なので、事前に最適な変数が指定できる場合は少ないのです。
2番の総当たり法は、いわば力まかせの方法です。 この方法が実行できればそれに越したことはありません。 しかしいかんせんこの方法は計算量が膨大であり、おいそれと実行できる方法ではありません。 例えば説明変数がp=10個の時には、次のように1023種類もの重回帰式を計算する必要があります。
コンピュータが発達した現代では、こんなものすごい計算も物理的には不可能ではありません。 しかしそれらの結果を1つ1つ吟味して、最適なものを選び出すための人間の頭脳労働がたまったものではありません。 金と力にものをいわせて腕ずくで物事を解決しようというのは、何事においてもあまり誉められたことではないでしょう。
ということは、結局、3番の逐次選択法が最も現実的な方法になります。 この方法は変数の選択規則によって次のように細分化できます。
「ゴチャゴチャしていてよくわからんが、とにかくやたらと込み入った方法らしいな……」
変数選択法の中で最も多用されるのは変数増減法です。 そこで、この方法の手順をもう少し詳しく説明することにしましょう。 (注1)
最初に目的変数に対する単寄与率が最大の説明変数つまり目的変数との共有情報が最大の説明変数を探し、それが取り込み基準を満足するなら重回帰式に取り込みます。 その変数をx1とすると、この時の状態は図7.3.1のようになります。
通常、取り込み基準は次のようなものにします。
情報の密度とは情報量すなわち平方和を、その情報の担い手の数すなわち自由度で割ったものであり、数学的には分散のことです。 共有情報密度と残差密度を比べるには両者の比を計算します。 その比は分散比つまりF値になるので取り込みのための基準値をFinで表すと、前述の取り込み基準を次のように表すことができます。
Finの値は2と決められているわけではありませんが、一般に2〜2.5ぐらいが適当だといわれています。 F値はF検定で用いる検定統計量なので、この値を利用して説明変数を取り込むことによって共有情報密度が濃くなるかどうか、つまりF値が1よりも大きいかどうかという検定を行うことができます。 そしてその検定の有意確率p値を取り込み基準にする、という方法も考えられます。 しかし変数選択という手法は探索的な研究に用いられる記述統計学的手法なので、推測統計学的手法である検定とは馴染みません。
例えばある説明変数の情報密度が同じでF値が同じでも、例数が少ない時はp値が大きくなって選択されず、例数が多い時はp値が小さくなって選択されるということが起こります。 そして例数が非常に多くなれば原理的には全ての説明変数が有意になり、全ての変数を取り込むことになってしまいます。 これでは変数選択の意味がありません。
また検定を用いるなら事前に作業仮説を設定し、それに基づいて例数設計を行う必要があります。 しかし変数選択法を用いるのは選択すべき説明変数がわからないからであり、事前に選択結果を予測して作業仮説を立てることはできません。 したがって変数選択基準として有意確率p値を用いるのはあまり合理的ではありません。
次に残りの説明変数の中から今取り込んだ説明変数と共有する情報を取り除いた上で、目的変数と共有する情報が最大のものを探します。 そしてその変数が取り込み基準を満足するなら重回帰式に取り込みます。 その変数をxjとすると、この時の状態は図7.3.2のようになります。
この場合の取り込み基準は次のようになります。
この時の単独共有情報が偏回帰平方和Sbjであり、重寄与率の増加分に相当します。
ここで、今までに取り込んだ説明変数の中から単独共有情報が最小のものを探します。 そしてその変数が追い出し基準を満足しているなら追い出し、満足していないならそのままにします。 通常、追い出し基準は取り込み基準と対応した内容にするので次のようになります。
FoutはFin以下ならどんな値でもかまいませんが、普通はFinと同じ値にします。 もしFout > Finにすると同じ変数が出たり入ったりを繰り返してしまうので注意が必要です。 またFout = 0にすると変数の追い出しをせず、変数増加法と同じものになります。 そしてFin = Fout = 0にすると全ての変数を強制的に取り込みます。
変数を追い出した後、2番に戻ってさらに変数の取り込みを続けます。 そして取り込む変数も追い出す変数もなくなるまで2番と3番の手順を繰り返します。
表6.1.1のデータに変数増減法を適用すると次のような結果になります。 なお取り込み基準Finと追い出し規準Foutはどちらも2にしました。
各説明変数の重症度に対する単寄与率を計算すると次のようになります。
この結果、最初の取り込み変数候補としてTCを選択します。 そしてTCのF値を計算すると次のようになり、取り込み基準を満足しています。 そこでまずTCを取り込みます。
次にTCとの共有情報を取り除いた上でTGのF値を計算すると次のようになり、取り込み基準を満足しています。 そこでTGを取り込みます。
今取り込んだばかりのTGは除外するので、TCだけが追い出し変数候補になります。 そしてTCのF値を計算すると次のようになり、追い出し基準を満足していません。 そのためTCは追い出しません。
以上で取り込む変数も追い出す変数もなくなりました。 そのためこれで変数選択を終了します。
この場合は全ての変数を取り込んだので、変数選択法の結果は第2節の全変数を取り込んだ普通の重回帰分析の結果と同じになります。
逐次変数選択法によって得られた重回帰式は、できるだけ少ない説明変数で、できるだけ効率的に目的変数の値を予測するためのものです。 そのため例えば医学の臨床現場で、なるべく少ない検査項目で、なるべく正確に特定の値を予測したい時などに用いると実用的で便利です。
しかし医学の研究現場では特定の値に対して色々な検査項目が単独でどの程度影響しているかを検討したい、つまり各検査項目の重要度を検討したい時がよくあります。 そのような時は検討対象となる全ての検査項目を説明変数に入れた重回帰分析を行うべきであり、逐次変数選択を行うべきではありません。 逐次変数選択を行った場合、選択されなかった説明変数が目的変数に影響を与えていないとは限りません。 すでに選択された説明変数にその説明変数の情報が含まれているので重ねて選択する必要がないだけで、実際には目的変数に影響を与えているということも十分あり得ます。
例えば収縮期血圧と拡張期血圧のようにお互いに関連性の強い項目があった時、一方の値から他方の値を推測することがある程度はできます。 そのため例えば収縮期血圧だけが選択され、拡張期血圧は選択されないということがよく起こります。 ところが収縮期血圧が測定されておらず、拡張期血圧だけが測定されていたとすると、その場合は拡張期血圧が選択されるはずです。
このように、逐次変数選択の結果から選択されなかった説明変数の影響力を知ることは不可能です。 さらに選択されなかった説明変数の影響は補正されないので、選択された説明変数が単独でどの程度の影響を目的変数に与えているかということも不正確にしかわかりません。 したがって特定の値に対して色々な項目が単独でどの程度影響しているかを調べたい時、またはある項目が目的変数に対して影響していないことを確認したい時などは逐次変数選択を行うべきではありません。
逐次変数選択法によって得られた説明変数の組み合わせは科学的に最適なものというわけではなく、あくまでもその候補にすぎません。 それが最適かどうかは、得られた重回帰式の内容が科学的に十分納得できるものであるかどうかで決まります。 もし重回帰式の内容が科学的に解釈困難なら特定の説明変数を強制的に取り込んだり追い出したりして色々な重回帰式を計算し、それらの内容をよく吟味して最終的な結果を選ぶべきです。 (注2)
多変量解析では面倒な計算はコンピュータ任せでもかまいませんが、結果の判断は人間が責任を持って行わなければなりません。 これは何も統計学に限ったことではなく、コンピュータを利用した仕事は常にそうあるべきでしょう。
重回帰モデルについて、yも含めたデータ行列Dを用意します。
Dとその転置行列との積つまり単純積和行列Aを作り、その右側に単位行列を並べたものをA0とします。 そして後の計算のためにA0の行と列の番号を1〜(p+2)ではなく0、1、…、p、yと呼ぶことにします。
0a00 = nを軸にして第1行〜第y行まで掃き出します。 この操作によって左側の第0行は各変数の平均値ベクトルになり、第1行−第1列以下は各変数の積和行列になります。
このA1において次のような計算をすることによって、各変数間の単相関係数を求めることができます。 したがってこの行例を利用して各変数の平均値、標準偏差、単相関係数を一度に求めることができます。
この掃き出しでは次のようなモデルを当てはめたことになります。
yの本来の全情報量はΣyi2であり、その担い手の数は次元数nです。 しかし通常は平均値の情報をさっぴいた時の平方和Syyを全情報量、自由度(n - 1)を担い手の数として変数の取り込み・追い出しや重回帰式の分散分析に用います。
ここから変数の選択に入ります。 今、第k番目(k = 1,…,p、前述の状態はk = 1)まで変数の取り込みが終了しているとします。
今までに取り込まれた変数は除いて、各説明変数と目的変数の単独共有情報量すなわち回帰平方和の増加分は次のようになります。
この値が最大のものを選び、次のような基準を満足すればその変数を取り込みます。
上記の基準を満足せず、次のようになれば変数の選択を終了します。
kajjを軸にして掃き出し、第j番の変数を取り込みます。
今までに取り込まれた変数におけるyとの単独共有情報量すなわち回帰平方和の減少分は次のようになります。
この値は第2節で偏回帰平方和Sblと呼んだものです。 この値が最小のものを選び、次のような基準を満足すればその変数を追い出します。
上記の基準を満足せず次のようになれば、また3番に戻って変数の取り込みを続けます。
第l番の変数を追い出すには右側の逆行列のk+1all(-1)を軸にして掃き出し、Akに戻します。
この後でまた3番に戻り、取り込む変数がなくなるまで同様の手順を繰り返します。
最終的に第r番目の変数を取り込んで変数の選択が終了したとすると、次のようにして各種の統計量を計算します。
要因 | 平方和SS | 自由度φ | 平均平方和Ms(分散V) | 分散比F |
---|---|---|---|---|
回帰 | Sβ | φβ | Vβ | Fβ=Vβ/VR |
残差 | SR | φR | VR | |
全体 | Syy | φy |
単回帰分析と同様に、重回帰分析における回帰の検定と偏回帰係数の検定にも有意性検定と統計的仮説検定があります。 しかし実際の研究現場で重寄与率や偏回帰係数の検出差を指定するのは困難なので、ほとんどの場合は有意性検定を行います。 したがって重寄与率や偏回帰係数が完全に0でない限り、例数さえ増やせば必ず有意になります。 そして例数が少なければ有意にならず、有意ではない時は結論を保留します。
そのため多変量解析における検定には実質的な意味はほとんどないといって良いと思います。 そもそも多変量解析は記述統計学的手法であり、推測統計学的手法である検定は馴染みにくいのです。
また単回帰分析と同様に、重回帰分析における検定と推定は回帰誤差εが近似的に正規分布するという前提で行います。 よく誤解されていますが、重回帰式そのものを計算するには正規性は必要ではなく、検定と推定を行う時だけ目的変数の回帰誤差の正規性が必要になります。 そして回帰誤差が正規分布すれば目的変数そのものは正規分布しないので、目的変数そのものの正規性は必要ではありません。 また説明変数は原則として研究者が任意の値を指定します。 そのため説明変数は確率変数ではなく、正規性という概念そのものが当てはまりません。 これもよく誤解されていることです。
変数選択基準としてF値ではなく偏回帰係数の検定の有意確率p値を利用して、次のような基準を用いることもあります。
しかしp値は説明変数の影響の強さをそのまま反映するわけではなく、例数が少ない時は大きな値になり、例数が多い時は小さな値になります。 そのため例数が少ない時はいくら影響の強い説明変数があっても選択されず、例数が多い時は影響の弱い説明変数まで選択されてしまいます。 これでは変数選択の意味がなく、合理的な基準とはいえません。 そのため変数選択基準はやはりF値を用いる方が良いでしょう。
表6.1.1の例題について実際に計算してみましょう。
したがって、まずx1を選択します。
選択基準を満足しているのでx1を取り込みます。
取り込んだ変数が今取り込んだx1だけなので、変数追い出しステップは飛ばします。
選択基準を満足しているのでx2を取り込みます。
今取り込んだばかりのx2は候補からはずします。
このためx1は追い出さず、これで変数の選択を終了します。
変数の選択を終了し、各種統計量を計算します。
要因 | 平方和SS | 自由度φ | 平均平方和Ms(分散V) | 分散比F |
---|---|---|---|---|
回帰 | 13.7516 | 2 | 6.8758 | 15.286 |
残差 | 3.1484 | 7 | 0.4498 | |
全体 | 16.9 | 9 |
平方和の代わりに自由度で調整した平均平方和つまり分散を用いて定義した寄与率であり、自由度調整済み決定係数とも呼ばれています。 この値が大きいほど当てはまりの良いモデルと評価します。
R'2が大きくなるということは残差分散VRが小さくなるということです。 そして(注1)から、変数取り込み基準Finと追い出し基準Foutは変数の回帰分散と残差分散の分散比であることがわかると思います。 そのため分散比が1以上の変数を取り込むか1未満の変数を追い出せば残差分散が小さくなります。 したがってFinとFoutを1にした時の変数選択基準はR'2を最大にするという変数選択基準に相当することになります。
表6.1.1の例題についてx1だけを取り込んだ時と、x1とx2を取り込んだ時のR'2を実際に計算すると次のようなります。
この結果から2つの変数を取り込んだモデルの方がR'2が大きく、より当てはまりの良いモデルと考えられることがわかります。 なおR'2は寄与率の一種ですが、あくまでもモデルの妥当性を表す指標であり、目的変数の全変動の中で説明変数によって説明される変動の割合と解釈することはできないので注意してください。
本来は最尤法におけるモデルの当てはまりの良し悪しを評価する指標であり、最小2乗法を用いる重回帰分析では対数残差平方和を用いた簡略な式を用います。 この値が小さいほど当てはまりの良いモデルと評価します。 (→9.3 1変量の場合 (注1))
AICが小さくなるということは残差平方和SRが小さく、かつ説明変数の個数も少なくなるということです。 したがって残差分散が小さいほど良いということとほぼ同じ意味になり、例数が十分に大きい時は漸近的にFin=Fout=2にした時の変数選択基準に相当します。
表6.1.1の例題についてx1だけを取り込んだ時と、x1とx2を取り込んだ時のAICを実際に計算すると次のようなります。
この結果から2つの変数を取り込んだモデルの方がAICが小さく、より当てはまりの良いモデルと考えられることがわかります。
目的変数の推定値に関して偏りとばらつきの両方を考慮した指標として、マローズによって提唱された値です。 この値が小さいほど当てはまりの良いモデルと評価します。
AICと同様にCpも残差平方和が小さく、かつ説明変数の個数が少なくなるほど小さくなります。 そのため例数が十分に大きい時、Cpの最小化とAICの最小化は漸近的に同等になります。
表6.1.1の例題についてx1だけを取り込んだ時と、x1とx2を取り込んだ時のCpを実際に計算すると次のようなります。
この結果から2つの変数を取り込んだモデルの方がCpが小さく、より当てはまりの良いモデルと考えられることがわかります。
これらの値はモデルの科学的な妥当性を評価するものではなく、数学的な当てはまりの良し悪しを評価する指標です。 したがってこれらの指標を用いて最良と評価されたモデルは、あくまでも科学的に最良なモデルの候補にすぎません。 モデルが本当に科学的に最良かどうかは、やはりモデルの内容を科学的に吟味してから決定しなければなりません。
これらの指標の性質を理解するためにシミレーションをしてみましょう。 まず次のような説明変数xと目的変数yを作成します。
次にn = 10、n = 100、n = 1000のxとyについて、重回帰分析によって1次回帰式〜9次回帰式を求めます。 さらに9個の説明変数x1〜x9を用いて、Fin=Fout=2にした変数選択法による重回帰分析を行って重回帰式とAICを求めます。 そしてこれら10種類の重回帰式について1個抜き交差検証(LOOCV:leave-one-out cross-validation)を行い、目的変数の的中率を求めます。 それらの結果をグラ化したものが図7.3.4〜図7.3.9です。 (→1.9 科学的研究の種類 (注2))
図7.3.4と図7.3.5はn = 10の時のグラフであり、その下に記載してあるのは5次の重回帰分析と変数選択法による重回帰分析の結果です。 図7.3.4の●は10個のデータで、黒い曲線がyfitを作成した5次関数です。 この5次関数の上下にプロットがランダムにバラついているのがわかると思います。
赤い曲線は5個の説明変数x1〜x5を用いた5次の重回帰式であり、その上下に描いた赤い点線は重回帰式の50%予測限界です。 交差検証では50%予測限界内にyが入っていれば「的中」と判定しました。 この場合は10個のプロットのうち8個が50%予測限界内に入っていて、全例を用いた時の的中率は80%とかなり高い値です。
青い曲線は変数選択法による重回帰式であり、その上下に描いた青い点線は重回帰式の50%予測限界です。 この場合は10個のプロットのうち5個が50%予測限界内に入っていて、全例を用いた時の的中率は50%と理論通りです。
5次の重回帰式はyfitを作成した真の5次関数とはかなり異なっています。 そして図7.3.4を見ると、5次の重回帰式を表す赤い曲線は真の5次関数を表す黒い曲線よりも上下の変動が大きく、yの誤差にひきずられて過剰適合(overfitting)していることがわかります。 そのため交差検証による検証群の的中率は20%しかなく、目的変数の予測能力が低いと考えられます。
それに対して変数選択による重回帰式を表す青い曲線は、赤い曲線よりも黒い曲線と重なっている部分が多くなっています。 この重回帰式はx2とx5だけを用いたものですが、このデータの範囲内では真の5次関数とよく似ています。 ただし交差検証による検証群の的中率は5次の重回帰式と同じく20%しかなく、やはり予測能力が低いと考えられます。
図7.3.5はn = 10の時のAICと交差検証法による的中率のグラフです。 赤い折れ線は1次回帰式〜8次回帰式のAICをプロットしたもので、横軸の値が10のところにプロットした赤い+は変数選択法による重回帰式のAICです。 AICの値は左側の縦軸の赤いラベルを見てください。
AICは3次回帰式までは急激に低下し、それから7次回帰式まではほとんど変化せず、8次回帰式が最低値になります。 しかし8次回帰式は明らかに過剰適合のせいでAICが小さくなっているのであり、実質的には3次回帰式〜7次回帰式まではほぼ同じと考えられます。 そして変数選択法による重回帰式のAICが最も小さく、Fin=Fout=2にした変数選択法はAICを最も小さくするモデルが選択されやすいことがわかります。 なおn = 10では9次回帰式が完全に適合してしまい、AICが無意味になります。 そのため9次回帰式は計算してありません。
青い折れ線は1次回帰式〜8次回帰式の的中率をプロットしたもので、横軸の値が10のところにプロットした青い+は検証群における変数選択法による重回帰式の的中率です。 そして青い点線は1次回帰式〜8次回帰式の全体の的中率をプロットしたもので、横軸の値が10のところにプロットした水色の+は全体における変数選択法による重回帰式の的中率です。 的中率の値は右側の縦軸の青いラベルを見てください。
全体の的中率は回帰式の次数が増えるにつれて高くなっています。 それに対して検証群の的中率は1次〜4次回帰式までは同じで、5次回帰式以後は6次回帰式を除いてかなり低い的中率です。 そして変数選択法による重回帰式は全体の的中率も検証群の的中率もかなり低くなっています。 なおn = 10では作成用データが8個以下になるので9次回帰式を計算できず、交差検証を行えません。 そのため9次回帰式は計算してありません。
理論上、AICは交差検証法と漸近的に同等になります。 しかしAICと検証群の的中率を比較すると、n = 10ではAICと交差検証の結果が食い違っています。 そして変数選択法による重回帰式は、AICは低いものの、全体の的中率も検証群の的中率も低いので目的変数の予測能力は低いと考えられます。 このことからn = 10ではそもそも重回帰分析を適用するのは無理があり、AICも交差検証法もあまり意味がないと考えた方が良いと思います。 (→9.3 1変量の場合 (注1))
n = 100とn = 1000の結果は似ていて、図7.3.6でも図7.3.8でも赤い5次回帰式の曲線と青い変数選択法による重回帰式の曲線は、黒い真の5次関数の曲線とかなり重なっています。 そして図7.3.7と図7.3.9のAICの曲線は5次回帰式までは低下し、それ以後はほとんど変化せず、変数選択法による重回帰式のAICも同じくらいの値です。
交差検証法の全体と検証群の的中率はn = 100では5次回帰式が最も高く、n = 1000では6次回帰式が最も高くなっています。 そして変数選択法による重回帰式の的中率はまずまずの高さです。
これらのことから例数が多いとAICと交差検証の結果は似たものになり、どちらも目的変数の予測能力が高いモデルを選ぶための指標になりうると考えられます。 そして「AICが最低のモデル」とか「検証群の的中率が最高のモデル」という単純な基準で最適モデル候補を決めるのではなく、説明変数をひとつずつ増やしていった時の変化の様子を検討して最適モデル候補を決めるのが良いと思います。
ただし5次回帰式の偏回帰係数と真の5次関数の係数はあまり近似していません。 このことから、AICも交差検証法も標本集団のデータを母集団のデータと考えた時に目的変数の予測能力が最も高いモデルを選ぶための指標であり、正しいモデルまたは科学的に最良のモデルを選ぶための指標ではないことがわかると思います。 また変数選択法は予測能力がある程度高く、かつできるだけ単純なモデルを選択するのに向いていることもわかると思います。