2020年08月08日

多重共線性(Multicollinearity)は何が問題なのか――日本の選挙研究の実例から


 今回は多重共線性(Multicollinearity、マルチコ)について実例を元に解説したいと思います。

 マルチコは、よく問題になるなる言われるわりに、実際に問題になっているのを見たことがないという方も多いでしょう。院生同士の研究会でマウントの取り合いに使われるくらいの存在かもしれません。

 たまたまツイッターを見ていたら、神戸大学の藤村直史先生がよい材料を提供してくださっていたので、感謝しつつこれを使います。

Fujimura, N. (2020). Effect of Malapportionment on Voter Turnout: Evidence from Japan's Upper House Elections. Election Law Journal: Rules, Politics, and Policy: Published Online:7 Jul 2020. (pdf)

htmlの別ソース

 選挙がテーマですが、広くデータ分析を行っているみなさん、データ・サイエンティスト等を目指すみなさんに参考となると思います。こういう生の実例が手に入ることは珍しいですし。

 ただ、先に述べておきますが、自分は方法を開発するような立場の人間ではないので、以下の記述に間違いや誤解を生む内容が含まれているかもしれません。わかりやすい言い回しに努めていますので、厳密でない単純な言い方になっているところもあります。あと、うまく言語化できず珍妙な表現になっている場合もあります。

 それでよろしければ、長いですがお読みいただければと思います。



多重共線性についての誤解
 多重共線性について調べると、独立変数を複数設定する回帰分析(=重回帰分析)において、独立変数同士が相関することにより生じるさまざまな問題であると解説されていることが多いと思います。この説明は間違いではないですが、部分的か誤解を呼ぶものと思います。

 日本語で探してもあまりよい表現が見つからないので英語のwikipediaの冒頭部分を確認しておきますと、ある独立変数が他の独立変数によって高い精度で予測されてしまうことにより生じる一連の問題であるといったことが書かれています。イメージとしては、主役であるホスト(従属変数)を差し置いて招待客全員で盛り上がってる感じでしょうか?

 冗談は置いておいて、この説明がよく言われる独立変数同士の相関という説明と異なるのは、独立変数X1とX2同士が強く相関していなくても、他の独立変数X3も合わせれば多重共線性となりうる点です。

 したがって、多重共線性の程度を評価するためには2変数の相関関係ではなくモデルに含まれる全独立変数を考慮する必要があるのです。そのため、ときにこれに気付くのが難しくなり、問題が引き起こされる、というわけです。2つの独立変数の相関関係だけ気にしていては、マルチコは避けられません、というくらい強く言っておいたほうがよいでしょうか。


多重共線性はほどほどには気にしたほうが良い
 もっとも、後にも見るように、多重共線性が問題となるのはかなり限定的な範囲です。他の独立変数による、ある独立変数の予測精度がR2乗で0.9を超えて初めて問題と認識される感じです。この許容の程度もときと場合によったりしますが、通常はこれほどのことはなかなか発生しません。よく、多重共線性や独立変数間の相関は気にしすぎるなということを言いますが、実際上、招待客同士で超三密パーティになるようなことはあまりないのです。

 説明としては前後しますが、多重共線性が引き起こす問題というのは、独立変数の係数等が安定しないということです。少し計算の範囲を変えただけで係数が変わるので、目的を持った悪い人ならそのどれか都合のよい結果を利用して論文を書くことも出来てしまうのです。

 先のwikipediaの記事にも書いてあるように、この際に特に問題となるのは、個々の独立変数の係数です。逆に、モデル全体に関して大した影響は及びません。言い換えると、個々の独立変数の係数を気にしないなら、多重共線性上等で独立変数を大量にぶち込んでも構わないのです。ビッグデータを用いて何らかの予測精度を上げたいときなんかはそうでしょうね。この場合、マルチコよりも、結果より前の予測時点で入手できるデータかどうかが重要でしょう。

 ただ多くの社会科学の分析は、特定の独立変数が効いているかどうか、どのくらい効いているかをめぐって行われています。この場合にマルチコは、やはり念のためくらいには気にすべきでしょう。


論文の急所
 さて具体例に話を移しましょう。表1は、冒頭に紹介した藤村直史さんの重回帰分析の結果です。この表のみがこの文献の急所です。文章は読まなくても大丈夫です。

t1.png

 この重回帰分析では、何年か分の参院選の都道府県別投票率(Voter Turnout)を従属変数として、各回選挙の各選挙区の議員一人当たり人口(Population per Seat)、選出議員数(District Magnitude)、そして選挙年と選挙区をそれぞれ示す固定効果を独立変数として分析を行っています。固定効果を独立変数とするという言いまわし自体は妙な気がしますが、気にせず進んでください。

 そして、議員一人当たり人口の係数が正の値であることから「1票の価値が低い(i.e., 過小代表されている)選挙区ほど投票率が高い」と発見したことが、この文献の重要な貢献とされています。なお、後に述べるように固定効果を用いているのでこの解釈は誤りですが、今は忘れてください。

 いずれにしても、議員一人当たり人口がここでの最重要独立変数です。論文タイトルにあるMalapportionment(議員定数不均衡)はこの議員一人当たり人口という変数で表現されているのです。


主要独立変数間の相関
 さて、一般的な意味での多重共線性を念頭に置いている勘の鋭い方は、ここではこの議員一人当たり人口と選出議員数の相関関係が問題になるのではと考えるはずです。x2の逆数がx1に含まれている形になりますから、両者は負の相関関係となるはず、と。しかし、これは違います。

 まず理論的に考えた場合、各選挙区定数は人口に比例して配分されるため、議員一人当たり人口は一定数の周囲にランダムに散らばります。定数や定数に正負対称の誤差を加えたような変数に対しては、どのような変数も相関係数は0付近の値を取るはずで、明確な負の相関関係にはなりえません。

 さらに現実的には、日本の都道府県別選挙区に対する定数割り当ては、議席1のシェア(1/74=1.35%、2019年の値)をはるかに下回る人口割合の県(最低は福井県の0.62%、2019年の値)に配分しなければならないために、選出議員数1の多くの県の議員一人当たり人口は小さくなります。

 そのうえで、議員一人当たり人口の最大値から最小値を割った値、いわゆる「一票の格差」をなるべく小さくするために、議員一人当たり人口の多い都道府県の定数増をぎりぎりまで我慢する(議員一人当たり人口が上に貼りつく)形で定数是正が行われます。

 これらの結果、参議院選挙区の選出議員数と議員一人当たり人口の関係は、負ではなくゆるやかな正の相関関係となります(図1)。

多重共線性(Multicollinearity)図1


固定効果の役割
 2変数の相関関係で多重共線性を評価した場合、相関係数で言えば0.5を切っているので多重共線性は気にしなくてもよい、ということになるかもしれません。しかし、先ほど述べたように多重共線性は独立変数全体で評価する必要があります。

 ここで暗躍するのが固定効果(fixed effect)です。後の展開も踏まえてこれを説明すれば、各選挙区を示すダミー変数のセット(北海道だったら1、そうでなければ0、青森だったら1、そうでなければ0・・・)と、各選挙年を示すダミー変数のセット(2001年だったら1、そうでなければ0・・・)を投入することと同じことです。

 以下、表現が下手で怪しいですが、これによりどのような効果が生じるか述べてみたいと思います。わかりにくければ飛ばしても大丈夫です。

 年別の固定効果を入れた場合、年ごとの全体の投票率を予測すると同時に、日本全体の人口増減の効果を吸収する形で、これを入れなかった場合に各都道府県の議員一人当たり人口が持っていた(と計算された)はずの効果の一部を加減すると考えられます。

 都道府県別の固定効果を入れた場合には、各都道府県で規定される何らかの特徴による従属変数への効果を吸収します。当然、各都道府県の議員一人当たり人口による効果もこれに含まれます。同様に、都道府県別の固定効果は、選出議員数による効果も吸収します。

 このように、個別選挙区(都道府県)の固定効果を置くことにより各都道府県の平均的な人口と選出議員数の効果は2つの主要独立変数の効果からは除去されます。選挙年の固定効果により、平均的な各年の人口増減率のような都道府県をまたがるという意味で一般的な時変的な効果も除去されます。

 結果、2つの固定効果を置くことで、2つの主要独立変数には都道府県ごとの独自の時変的な成分が残ります。影響というより、そもそもそれが固定効果導入の目的なのだと思いますが。ともかく、固定効果の影響により、2つの主要独立変数は、回帰式の中においてそれぞれの独自の成分ばかりが従属変数の分散の説明に寄与することになります。

 この、独自の時変的な成分は何かと言うと、ほとんどの部分が定数の変化(定数是正)のはずです。これは議員一人当たり人口では分母に登場するため、議員一人当たり人口と選出議員数のそれぞれ残った成分はほぼ逆数の関係になるでしょう。この考察は、前節で見た負となるべき2変数の相関関係を正としていた要因(主に都道府県別人口)を固定効果が除去してくれるおかげで、x1、x2が1/x2、x2になる、と言い換えられます。

 このように固定効果を入れた場合、議員一人当たり人口と選出議員数のそれぞれの独自成分は、ちょうど反対の方向に数値が伸びたような関係になります(負の相関関係)。また、言い換えると、議員一人当たり人口は選出議員数と固定効果により高い精度で予測されると予想されます。

 以上、一応、あくまで予想です。


表1の再現
 この議論が当たっていそうか、実際に再分析を行って確認してみましょう。幸い、論文には使用するデータが全て付属していますので、今回はこれを用います。まず、再現を狙います。

 なお、今回はSTATAを用いて計算しました。バージョンが13と古いので現バージョンとは異なるところもあるかもしれませんが、その場合はご容赦ください。

 STATAで固定効果を含める場合、xtreg(パネルデータ分析を行うコマンド)を使うことが(自分は)多いのですが、今回の場合は使用に注意が必要です。年が通常の形で固定効果に入るため、xtregを用いる場合は下記のTwo levels of fixed effectsで書かれているように各年をダミー変数にして通常の独立変数の位置に入れることになります(他に何かやり方はあるかもしれませんが)。

McCaffrey, D. F., Lockwood, J. R., Mihaly, K., & Sass, T. R. (2012). A review of Stata commands for fixed-effects estimation in normal linear models. The Stata Journal, 12(3), 406-432.

 ただ、そうだとすれば、わざわざxtregを使わなくとも通常のregに都道府県ダミーともどもゴリゴリ入れてやればよいですし、後ほど見るようにそのほうが都合がよいです。

多重共線性(Multicollinearity)表2

 さて、固定効果をダミー変数で投入して先のTable1を再現した結果が表2です。見ての通り、係数(Coefficient)の値はほとんど一致しており、再現は成功したと言えます。

 なお、R2乗の値が先のTable 1とは異なりますが、Table 1のR2乗の値は少し前に説明したxtregを用いた場合のwithinの値に一致しました。また標準誤差の値もこちらに一致しました。全体の当てはまりを見たいので通常のR2乗をここでは示しておきます。


「暴れ」の観察
 データ等が少し変わっただけで結果が安定しなくなるのが多重共線性の引き起こす問題でした。そこで表3では少し計算範囲を変えてみました。

多重共線性(Multicollinearity)表3

 結果4は結果3から2013年を除いたものですが、両係数が小さくなりました。統計的にも有意でなくなりました。
 結果5ではさらに2010年を除きましたが、ますます元気がなくなりました。
 結果6では結果3の範囲から01、04を除いたのですが、「急にどした?」という感じで踊りだしている感じです。

 総じてなかなかの暴れっぷりです。いうまでもなく、これらは多重共線性の問題そのものです。


分散拡大係数VIF
 こんな感じで確認しなくても、多重共線性を評価する方法があります。代表的なのが分散拡大係数(Variance Inflation Factor、VIF)を見るという方法です。

 VIFとか言われると一見凄そうですが、やっているのは各独立変数について他の独立変数を独立変数とした(重)回帰分析です。やっぱり従属変数をさしおいて計算するわけですね。それで、出てきたR2乗を1から引いて逆数にしたのがVIFです。詳しく知りたければ検索してください。

 このVIF、10を超えたら激ヤバだから外せ、が最もよく言われる基準でしょうか。10の逆数をとって1から引いてR2乗に戻してやると0.9になります。単回帰だった場合は2変数の相関係数が±0.95というあたりです。10でなく5を基準としても相関係数は±0.9くらいです。多重共線性が問題になることがあまりないなということは、この相関係数の値から感じることができると思います。

 STATAでは、regの後にvifと打ち込んでやるだけで計算してくれます。xtregではできません。STATAあるあるですね。SPSSだと回帰分析の際に共線性の診断オプションで一緒に計算してくれます。

 先ほどの結果1の後にvifしてみます。2つの主要独立変数のVIFはどれくらいになったと思いますか?

 答えは、選出議員数が100.2、議員一人当たり人口が54.7でした。

 しょっちゅうVIFは計算しますが、たぶん100という値は初めて見ました。喩えて言うなら、個人的には震度8くらいの衝撃です。そんな値、存在するんだっ、ていう。お遊びでは出せるかもしれませんが、真面目に分析していたら事前にマルチコ臭のする変数を排除するのが普通ですからね。

 とにかく、この分析の選出議員数は、他の変数によって99%再現可能だということがわかりました。定義どおりのマルチコです。


独立変数を抜いてみる
 多重共線性確定というわけで、次に独立変数を絞ってみます。VIFが大きな独立変数の存在は、変数が重複するようなものです。一つの変数を他の変数でほぼ予測できてしまうわけですから。なのでVIFが大きい独立変数を抜いてやれば結果は安定するということになります。これは、下記スレッドの回答者がperfect multicollinearityの場合を使って示している説明がわかりやすいかもしれません。他方が一方を完全に予測するとき両者の効果(係数)を分別することは不可能なので、他方だけにするのです。

Why are time-invariant variables perfectly collinear with fixed effects?

多重共線性(Multicollinearity)表4

 表4に独立変数を一部落とした各結果を示しました。ここで気になっていた変数は議員一人当たり人口なので、結果7を見てみます。先ほどまでとは異なり、マイナスの値となっています。

 通常の感覚ですと、議員一人当たり人口が多い場合には投票率が低くなる云々と解釈しそうですが、ここでは2つの固定効果が含まれていますので、そのような解釈はできません。

 係数の意味としては、各都道府県の時間軸の中での(年の固定効果により各時点で規定される部分を除いた)議員一人当たり人口の変化の効果、ということになると思います。固定効果が敷き詰められた状態で分子に置かれた人口の変動は小さいですから、基本的にこれは分母の効果と考えられます。つまり選出議員数の変化です。解釈すれば、定数是正で選出議員数が増えれば投票率が上がる、となるでしょうか。統計的に有意ではありませんが。

 これらと、回帰分析の係数は他の独立変数が一定であればという条件のついた効果であることを踏まえると、対象論文の図2は随分とミス・リーディングなグラフなのですが、脇道なので論じません。

 さて、先ほどのVIF100の衝撃の時、固定効果ではVIFが上がりやすいのではと感じた方もいるかもしれません。これは場合によるとしか言えませんが、固定効果の中身は0か1かのダミー変数の羅列なので、細かく設定しないと固定効果による他の独立変数の予測精度は上がりません。

 結果7で議員一人当たり人口のVIFは5.93と、先ほどの54.7からはだいぶ下がりました。許せない人は許せないかもしれませんが、この変数の係数への興味関心が高いなら残すでしょう。まあ、統計的に有意ではありませんが。

 結果8で選出議員数のVIFは10.86でした。100よりはだいぶマシですが、通常なら許容できるレベルではないでしょう。固定効果のみで予測した結果9ではVIFの最大値は1.96でした。

 このように、多重共線性により生じる問題を回避した場合、対象論文の主張は全く成立しなくなると結論付けられます。言い換えると、対象論文は多重共線性により歪んだ分析結果を元に主張を行っていた、ということです。


マルチコに気付くために
 マルチコは分析者が気を付けるべきものであって、読み手側で気が付かなければならないものではないです。でも気が付けるようになったほうがよいでしょう。

 今回の場合、固定効果を含む独立変数のセットを見てすぐに怪しいと思いました。それが絶対に怪しいと思えたのは、表1の3で主要2変数の係数が仲良く9に上がっているのを見たからです。表3を作らなくても「暴れ」が論文中に示されていたのです。

 半ば感覚的なものなので説明するのも変なのですが、説明してみます。

 まず、選出議員数の係数が3も上がったら説明幅が15ポイント(選出議員数の幅は6-1=5、これに3をかける)にもなります。固定効果でがんじがらめにしているのに30ポイントも動き回っていたものが“さらに”15ポイントも動くことになっていると。そんなに動けるのは、これをきれいに打ち消すような独立変数が別に存在するからです。それが議員一人当たり人口で、打ち消すために係数も同じように動いているのです。

 感覚のほうを説明すれば、2つの独立変数がランバダか何かを踊っているような感じを受けたのです。随分と仲がよくて、よく動くなと。

 表A2では分析のロバストネス(頑健さ)をチェックするとしていろいろしていますが、2つの独立変数は対数を交えつつも常に頑なに同時投入ですから、議論や分析というより両変数の仲睦まじさが頑健であるといいたいのかなと思ったり。

 このように、分析で示された情報をよく読むことが、マルチコに気が付けるかどうかのカギです。


査読で弾けるか
 一部もしくは特定の方はこの話を期待しているのかもしれませんので簡単にしておきます。査読の話です。

 この論文に限れば多少のヒントにデータまでつけてくれて親切なのですが、通常はこうは行きません。なのでやはり分析や査読の段階で抑えて欲しいところです。

 それで、査読プロセスでこれに気付けるかどうかで言えば、難しいと思います。

 たとえば一部のアミノ酸を研究した論文を同じアミノ酸を研究している複数の人がチェックするような業界であれば、捏造のようなものでないケアレス・ミスに気付くようなことは多そうです。全くの想像ですが。

 でも、日本の都道府県のデータ構造と参議院選挙に詳しく、データ分析手法にも明るい人を捕まえて、英文の査読を受けてもらうのはかなり難易度高いと思います。日本の政治は、アミノ酸ほど世界中で研究している一般的な研究対象ではないのです。

 全くの印象論ですが、日本にはデータ分析手法に詳しい方は多くいます。それこそここで私なんぞが下手な解説しなくてもいいくらいに。一方、選挙に限らず実データに強い人、政治や選挙の実際に詳しくデータ分析もできる人は希少です。マルチコは変数間の因果構造や実際のデータの特徴に依存する問題なので、分析ができるだけでは見抜けないことが多いでしょう。これは他の種類の分析の失敗でもだいたい同じような感じだと思います。

 ちなみに今回、自分は表1しか見ずに(間抜けなことにデータが載ってると知らずに)自前のデータでチェックして、投票率でなく有効投票率を用いるなどの差がありながら、やはりきついマルチコを確認しました。それで指摘してみたのです。

 同じようなことをやってくれる査読者がいつも捕まるのなら大丈夫なのですが、そうではないからこの論文が出たし、書かれたのだと思います。そして、AI等による革新がないなら、この状況は悪化していくようにも感じます。

 長くなりましたがこれで終わりです。
 今後とも国会議員白書をよろしくお願いいたします。

菅原 琢



>各位
 某書に載せようかと思って書いてみたところやはり難しいのでこれは載せません。
タグ:参院選
posted by suga at 06:42 | 分析記事