アメリカ大統領選の予測モデル
はじめに
前回のnoteに引き続き、今回もアメリカ大統領選の話です。前回は世論調査から選挙の結果がある程度知ることができそうなのか、世論調査に変わる賭博サイトのベット状況のチャートなどを紹介しました。
その中で一部、予測モデルの話もしておりましたが、今回は予測モデルをメインに扱いたいと思います。予測モデルの作成も盛んに行われているので、調べると沢山でてくるのですが、ここではイェール大学の経済学者Ray C. Fair教授の予測モデルを扱います。
Fair教授のモデルを選んだ理由は、今の御時世、機械学習モデルでの予測となると特徴量を数百、数千、数万作って予測するケースも多い一方で、ドメイン知識を活用したシンプルな予測モデルだったからです。シンプルでも予測性能悪ければ良いモデルとは言えないですが、その点は後で触れます。
Fairの予測モデル
Fair教授は古くからアメリカ大統領選挙の予測モデルの開発に取り組んでおり、こちらのサイトから予測モデルの取り組みを公開しています。
このnoteでは、2009年のモデルを参考にしつつ、2022年にアップデートされたモデルを使って、今回のアメリカ大統領選挙の予測を行いたいと思います。
モデルの生成過程の詳細は2009年の論文を読んでもらうとして、ここでは使用されているモデルの特徴量(説明変数)を紹介します。変数の右肩に$${*^p}$$ とついているのが大統領選で使用する変数です。大統領選以外にも、下院選挙、中間選挙の結果を予測するモデルを作成されているので、論文にはまとめて記載されています。
$${V^p}$$ : 大統領選挙における2党間の民主党得票率。民主党と共和党の得票数を分母にした時の民主党の得票率です。
$${V^c}$$ : 任期中の下院選挙における2党間の民主党得票率。
$${V^{cc}}$$ : 中間選挙における2党間の下院得票率。
$${I}$$ : 選挙時点で大統領職が民主党の場合は1、共和党の場合は-1。
$${DPER}$$ : 大統領職に就いている民主党現職が再選を目指している場合は1、共和党現職が再選を目指している場合は-1、そうでない場合は0。
$${DUR}$$ : ホワイトハウスが同じ政党によって1期占められている場合は1、2期連続の場合は1.25 [ -1.25 ](民主党 [ 共和党 ] の場合)、3期連続の場合は1.50 [ -1.50 ]、4期連続の場合も同様。
$${WAR}$$ : 1918、1920、1942、1944、1946、および1948年の選挙では1、それ以外では0。
$${G}$$ : 任期中の選挙年の最初の3四半期における実質1人当たりGDPの成長率(年率)。
$${G^c}$$ : 中間選挙年の最初の3四半期における実質1人当たりGDPの成長率(年率)。
$${P}$$ : 政権の最初の15四半期におけるGDPデフレーターの成長率の絶対値(年率)。ただし、1920、1944、1948年は値がゼロ。
$${P^{cc}}$$ : 政権の最初の7四半期におけるGDPデフレーターの成長率の絶対値(年率)。ただし、1918、1942、1944、1946年は値がゼロ。
$${Z}$$ : 政権の最初の15四半期において実質1人当たりGDPの成長率が年率3.2%を超えた四半期数。ただし、1920、1944、1948年は値がゼロ。
$${Z^{cc}}$$ : 政権の最初の7四半期において実質1人当たりGDPの成長率が年率3.2%を超えた四半期数。ただし、1918、1942、1944、1946年は値がゼロ。
このモデルを見てわかると思いますが、$${*^p}$$がついているに限定すると10個程度しか使用されておらず、非常にシンプルです。使用している変数も政党情報$${I,DPER,DUR}$$と経済変数$${G,P,Z}$$が中心です。経済変数と政党のインタラクションによって、投票行動が変化することをモデルで表現されています。つまり、GDPから見る経済の良し悪しが政党選択を決める主たる要因と考えていると言えそうですね。
$${G}$$については、有権者は経済成長が活発であると現政権への支持を高め、成長が鈍化、低下している場合は支持を低下させると考えるのい合理的であり、GDP成長率は、生活水準や雇用に直接影響するため、有権者の行動を説明するのに役立ちそうです。
$${P}$$については、インフレに関わるものなので、インフレ率が高いと生活コストが上昇し、有権者は現政権に不満を持つ可能性が高めますし、長期的なインフレは実質所得を減少させるため、こちらも有権者の行動を説明するのに役立ちそうです。
$${Z}$$については、良いニュース指標(実質1人当たりGDP成長率が3.2%を超えた四半期数)とも表記されていますが、有権者は事細かく経済指標を監視してないので、景気がいいのか悪いのかはなんとなく把握していると考えるのが妥当かと思います。なんとなくのキッカケは、顕著な成長を見聞きする時だと思うので、こうした「良いニュース」は政権の評価に関わりそうなので、こちらも有権者の行動を説明するのに役立ちそうです。
これらの変数を使って、下記の回帰モデルでパラメタを推定しています。
$$
\hat{V_p} = \beta_0 + \beta_1 (G \cdot I) + \beta_2 (P \cdot I) + \beta_3 (Z \cdot I) + \beta_4 \, DPER + \beta_5 \, DUR + \beta_6 \, I + \beta_7 \, WAR + \epsilon
$$
予測モデルの性能はどうでしょうか?モデルに使用する経済変数は2024年10月30日で揃っているため、Fair教授がモデルの事前予測を記載しています。こちらで予測結果が確認できます。
この結果を見ると、民主党の得票率は49.47%なので、共和党は50.53%となります。非常に接戦ですね。前回のnoteに載せた世論調査と整合的です。また、下記の通り2024年10月30日時点のFair教授のコメントにもありますが、「接戦で結果が予測しにくい」とあります。
また、開票後すぐの2024年11月6日午前9時にコメントを記載しています。「おそらく49.5%を獲得し、2024年10月30日に以下の方程式が予測したものです。したがって、予測誤差はほぼゼロです。」と評価されています。
現時点(2024年11月9日日本時間14時)では、Arizonaの票が閉まってないですが、70,349,488/(70,349,488 + 74,250,053)=0.486が現時点の民主党の得票率です。そのため、0.82%過大に予測しているとも言えそうですが、このモデルのRMSEは2.53であるため、予測の範囲内とも言えます。
大統領選の予測モデルである以上、どちらが勝つかは予測したいところです。点推定では民主党の得票率は49.47%なので、この結果をもって、勝利するのはトランプ氏とも判断できるとも言えます。ただ、得票率が49.47%の確からしさをしりたいところです。教授のサイトには予測の信頼区間までは記載されていなかったので、私の方で計算してみました。95%であれば信頼区間は[45.26% - 53.69%]、予測区間は[41.89% - 57.06%]でした。区間を考慮すると、どちらが勝つかはなんとも判断するのが難しそうです。
モデルの予測結果としては、今回の大統領選選挙を事前に予測できそうかは、難しいかもしれませんし、人によっては判断がわかれるかもしれません。ただ、世論調査もそうですが、これまで重要と思われていた投票行動の要因、Fair教授のモデルであれば経済の良し悪しを表す経済変数だけでは、予測が困難な時代に突入しているかもしれません。
実際、GALLUPの調査「国の最も重要な問題として経済問題を挙げたアメリカ人の割合」という問いに対して、2009年は80%を超えるくらい、経済問題が最も重要だと考えていたのが、最近だと43%まで低下しています。
投票において、経済問題よりも違う問題のほうが重要になるつうあるかもしれないこのような状況が仮に正だとすれば、逆に政権情報と経済変数で、このレベルの予測ができるFair教授は、凄いとしか言いようがありません。
おわりに
ビジネスでデータを扱っていると、有効そうな変数は思いついてもデータとして記録されてないとか、そもそもそれってどのように数値化するの?みたいな話はあるあるなので、Fair教授のモデルについて書いてきましたが、モデルを作る際は、ドメイン知識を活かして仮説を立て、仮説の経済変数をどのように数字として取得し、モデルに取り込むのか、非常に勉強になりました。
CNNの出口調査でも、ハリス氏が思っていたよりも黒人系、ラテン系の男性から支持されていないことも報道されていましね。今回の大統領の争点にしても、インフレ対策、移民対策、紛争対策、日米関係、中国経済安保、ジャンダー、人工妊娠中絶などなど争点がありすぎて、経済の良し悪しは大事ではあると思いますが、有権者の投票行動を変化させているのかもしれません。賭博データも含めですが、これらを数字としてモデルに取り込むことで改善の余地はありそうですね。
おまけ
データはこちらにあります。モデルの推定結果は下記の通りです。
OLS Regression Results
==============================================================================
Dep. Variable: VP R-squared: 0.849
Model: OLS Adj. R-squared: 0.794
Method: Least Squares F-statistic: 15.30
Date: Sat, 09 Nov 2024 Prob (F-statistic): 1.37e-06
Time: 02:15:03 Log-Likelihood: -63.324
No. Observations: 27 AIC: 142.6
Df Residuals: 19 BIC: 153.0
Df Model: 7
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
const 48.2245 0.659 73.222 0.000 46.846 49.603
G_I 0.7078 0.129 5.500 0.000 0.438 0.977
P_I -0.6056 0.323 -1.875 0.076 -1.282 0.070
Z_I 0.8654 0.263 3.291 0.004 0.315 1.416
DPER 2.1070 1.577 1.336 0.197 -1.193 5.407
DUR -3.4500 1.387 -2.487 0.022 -6.353 -0.547
I -0.8506 2.268 -0.375 0.712 -5.598 3.896
WAR 3.9034 2.774 1.407 0.176 -1.903 9.709
==============================================================================
Omnibus: 1.258 Durbin-Watson: 1.561
Prob(Omnibus): 0.533 Jarque-Bera (JB): 1.191
Skew: 0.431 Prob(JB): 0.551
Kurtosis: 2.438 Cond. No. 33.6
==============================================================================
Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
# SE = (sum(model.resid ** 2) / (n - p - 1)) ** 0.5
# 3.010432193939976
この記事が気に入ったらサポートをしてみませんか?