回帰分析をしていて悩ましい問題は、マルチコです。正確には、日本語では多重共線性、英語ではmulticollinearityと言います。略して、マルチコ。マルチコが一体何かというのを直感的に言いますと…

説明変数のいくつかが、実は同じようなことを計測している状態をいいます。ここに二つ変数あるけど、おなじことだから一つでいいじゃん、まとめちゃっていいんじゃない?といった感じの現象を指します。「おなじようなことを計測」というのは言い換えると、説明変数の間で比例関係(相関関係)がある、線形性(共線性)がある、ということになります。

例えば、以下のような状況を考えます。学力試験をしようとしているのですが、どのようにしたら生徒の総合力が測れるでしょうか?数学、物理、国語、英語、日本史、世界史…しかし時間が限られていて、3科目しか試験の実施時間が取れません。さて、どうしますか?普通は国語、英語、数学あたりを選びますよね。総合力を測るのに数学と物理を選んでしますと、語学力(国語)や外国語(英語)といったもののうちどれかが欠けてしまいます。数学も物理も、理系の勉強をしっかりやっていれば両方とも得点が高いはず。だから一つだけでいいのでは?といった考え方です。

この状況、言い方を変えると、数学と物理には相関関係(共線性)があり、国語や英語はそれぞれ別々のものを計測している(独立である)、となります。本当にそうなのかどうかは、データを分析してみないとわかりませんが、我々は暗黙のうちに変数間の相関関係や独立性を意識していたりするのです。

ここまでの話では、そんなに悪さをするように感じませんが、マルチコの本当の厄介さはモデリングの時に現れます。結論から言うと、マルチコが発生している変数間で係数の取り合い、引っ張り合いが生じてしまい、モデルが安定しないのです。突然大きな係数になったり、常識的にはプラスなのに係数がマイナスになったり…

例えば先ほどの試験を国立大学医学部の模擬試験だと思いましょう。そして、合否を予測するモデルを作ることを考えましょう。ま、国語とかは配点も低いので予測モデルの係数も小さい数字でしょうね。英語は中くらい。一番大きいのは物理と数学でしょう。では、数学と物理ではどちらが係数が大きいでしょうか?これが「なんとも言えない」のです。

例えば、数学が難問、物理は簡単な問題だったとします。そうしますと、点数で差がつく数学の方が係数が大きくなりそうな気がします。両方とも理系科目なので常識的には重要だと思いますが、予測精度を上げる立場なら難しい方の科目を予測用の変数とした方が当たるような気がします。こうやって係数が片方の変数に寄ってしまうのです。簡単な方の科目は係数が小さくなってしまいますが、難しい方の科目ができればもう片方もちゃんと得点しているでしょうから、難しい方の点数がわかれば充分、となるわけです。こうやって、ちょっとした得点分布の違いで推計する係数がぶれてしまうのです。

このようなモデルを不安定にしてしまうマルチコですが、対処方法はないのでしょうか?一番いいのはデータ数を増やす、ということなのですが、そもそも手元にあるデータがすべてという場合はそうはいきません。以下のような対処方法が一般的です。なお、マルチコ撃退のためにやってしまうあまりよくない手については、[1, 6章]にあります。

  • 【方針1】変数を減らす、ただし、意味のある方法で…

何も考えずに変数を減らすと、そもそもデータを使ってモデルを推計する意味もなくなってきます。基準を持ちながら変数を絞っていく必要があります。この基準になるのが、例えば赤池の情報量基準だったりします。(詳しくはまたどこかで…)これらの基準は変数をなるべく少なくしようという考え方がベースにあります。ゆえに相関の高い変数は「追加しても説明力をあまり高めないね」ということで除外されていきます。

  • 【方針2】推計される係数に縛りをかける

マルチコで困るのは、似た変数の間で係数を取り合うことにあります。極端に片方に係数を取られないように係数の大きさに何かしらの縛りをかけていくことで、モデルを安定させようという作戦です。通常の最小二乗法では、誤差の(2乗の)和を最小化しますが、リッジ回帰[2,など]という手法では、誤差の和に加えて係数の大きさもなるべく小さくするようにします。これにより変数間で推計された係数が突出するようなことがないようにします。変数間で係数を、まあまあええ塩梅で分け合おうや、という感じですね。

  • 【方針3】相関の強い変数を束ねた合成変数を作る、ただし、意味のある方法で…

先ほどの数学と物理の場合では、例えば「理系科目総合点」みたいな変数を作ります。数学・物理を1:1にするとか、2:1にするとか。ただ、これだけでは意味が希薄なので、通常は主成分分析や因子分析を行い、変数を再構成します。モデル化の前に、変数間の関係を分析して、合成変数に再編しておくわけです。この合成変数は、お互いに独立するように再編しますので、モデルが格段に安定します。

それぞれの方法を直感的に理解するのは少し大変かもしれませんが、いくつも教科書を読むのも大変でしょうから、まとめてみました。ちなみに、今回は回帰分析のお話をしていますが、【方針3】は実はニューラルネットワークのDeep Learningと呼ばれる手法にもかかわる考え方です。その話はまたどこかで。

[1] 浅野哲,  中村二朗. (2000). 計量経済学. 有斐閣.

[2] Amemiya, T. (1985). Advanced econometrics. Harvard university press.

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です