Broniecki, P., Leemann, L., & Wuest, R. (2022) Improved Multilevel Regression with Post-Stratication Through Machine Learning (autoMrP). The Journal of Politics, 84(1), 597–601.
先日仕事の都合で読んだ奴。みんな大好きMr.Pことマルチレベル回帰・事後層別を機械学習で改善しますという話。RパッケージautoMrPの元論文である。
これ、以前から読もうと思っていたのだけど、勤務先の同僚が読んでくれていたので放置していたのである。トシを取ると多様な言い訳を思いつくようになることがわかる。
Short Articleという枠で、あまりに簡潔に書きすぎているので、Supplemental Materialもざっと目を通し、一部補記している。
以下、原文ではsubnational unitsという表現が頻出する。典型的には州であろう(事後層別における層のことではない)。長いので地域ないしareaと略記する。
いわく。
マルチレベル回帰・事後層別 (MrP)はもはや地域世論推定の標準的アプローチである。
MrPというのは要は予測モデルである。個人レベルの社会経済的変数のランダム効果と文脈レベル変数の固定効果を考える。
たとえば、前者が年代(4水準)\(a\)、学歴(4水準)\(m\)、性x人種(6水準)\(j\)だとしよう(この3変数の96通りの組み合わせをideal typeと呼ぶ)。地域を\(c\)とする。文脈レベル変数のベクトルを\(\mathbf{X}_c\)とする。目的変数が二値なら、モデルはこんな感じ。[なんかわかりにくいなあ。添え字\(a[i]\)とは\(i\)さんの年代という意味であろう]
$$ Pr(y_i = 1) = \Phi \left( \mathbf{X}^\top_c \beta + \alpha^{age}_{a[i]} + \alpha^{education}_{m[i]} + \alpha^{gender-race}_{j[i]} + \alpha^{area}_{c[i]} \right) $$ $$ \alpha^{age}_{a} \sim N(0, \sigma^2_{age}) \ for \ a = 1, \ldots, A $$ $$ \alpha^{education}_m \sim N(0, \sigma^2_{edication}) \ for \ m = 1, \ldots, M $$ $$ \alpha^{gender-race}_j \sim N(0, \sigma^2_{gender-race}) \ for \ j = 1, \ldots, J $$ $$ \alpha^{area}_c \sim N(0, \sigma^2_{area}) \ for \ c = 1, \ldots, C$$
このモデルで、地域 x ideal typeごとに平均supportを得る。こんな感じ。[著者も面倒になったのであろう、上添字は省略されている] $$ \pi_{amjc} = \Phi \left( \mathbf{X}^\top_c \hat{\beta} + \hat{\alpha}_a + \hat{\alpha}_j + \hat{\alpha}_c \right) $$ で、地域別に、真の母集団におけるideal typeのシェアで重み付けて合計する。$$ \hat{\pi}_c = \frac{\sum_a \sum_m \sum_j \hat{\pi}_{amjc} N_{amjc}}{N_c} $$
このように、MRPでは個人レベルはランダム効果しか持ってない。ランダム効果は総平均に向かって縮小していくのでoverfittingに強い。いっぽう文脈レベルは、固定効果の部分\( \mathbf{X}^\top_c \beta\) とランダム効果 \(\alpha_c^{area}\) に分かれる。怖いのは前者の変数選択や関数形指定である。効果は縮小しないからoverfittngに弱い。かといってなくしちゃうとunderfittingになりやすい。だって\(\alpha_c^{area}\)は縮小するからね。地域の標本サイズが小さいときが特にやばい。
新手法をご提案します。
[はいはい… 問題意識がわかってきた。MrPの使用例をみていると、地域特性の変数を適当にガンガン入れてることあるよね。個票と無関係で入手コストも低いし「いろいろ考えてます」的演出になるし。あれはたしかにまずいかも]
[ここから前触れなく分類classificationという言葉が頻出する。面食らうんだけど、目的変数が二値の場合を暗黙に想定しているのだろうと思う]
5つの分類手法のアンサンブル・ベイジアンモデル平均(EBMA)を使います。EBMAでは、新データに対する分類器の性能に基づいて分類器に重みをつける。さてその5つとは:
- Best Subset: 文脈レベル予測子の最良サブセット選択を伴うマルチレベル回帰。なにをいうておるのかというと… 文脈レベル変数の候補集合\(S\)のサイズを\(p\)として、\(N=2^p\)個のモデルを考えるわけ。全部推定して、out-sampleのMSEが最小の奴を選ぶ。多項式や交互作用を考えてもいいけど、時間が死ぬほどかかるようになる。
- PCA: 文脈レベル予測子の主成分の最良サブセット選択を伴うマルチレベル回帰。まず主成分分析して、そのサブセットを選ぶ。[ちょっと待って、主成分数ってどうやって決めるの? \(p\)より減らさないと意味ないよね?]
- Lasso: L1正則化を伴うマルチレベル回帰。チューニングパラメータ\(\lambda\)はCVで決める。[あああ… autoMrPパッケージでlassoを選んだだけで死ぬほど時間がかかる理由が分かった。そんなことしてたのか]
- GB: 勾配ブースティング。木の本数\(T\), それぞれの木の深さ\(D_t\)の最大値、学習率\(\lambda\)はCVで決める。[詳細はApeendix Section 8にあるが、めんどくさいのでパス]
- SVM: サポート・ベクター・マシン。radialカーネルでやります。基底\(\gamma\)とbias-variance trade-offのパラメータ\(c\)をCVで決める。
[ちょっと笑ってしまった。いったい文脈レベル予測子を何個入れる気なんだ? もともとMrPに入れる地域特性って、選挙予測なら州議会の共和党シェアみたいな、どうみても目的変数に効きそうなやつをせいぜい数個という印象があるんだけど、適用例が広範になるにつれて、あれもこれも放り込めという無節操なやり方も増えているのであろう。かといって、Best Subsetでやるってことは、そんなにたくさんの変数をイメージしているわけでもなさそうだ。せいぜい9個か10個くらいまでって感じかな]
[Appendixに以下の点について説明があるが、すべてスキップする。Chap.3, MSEの定義の話。Chap 4, Bisbee(2019 Am.PoliticalSci.Rev.)が提案したBARP(ベイジアン加法回帰木を使う方法)との比較。Chap 6, EBMAのチューニングの話。Chap 9, 個別の分類器をRで書くとどうなるか。Chap 10, 州レベル推定値の不確実性推定の話。]
[それにしても… もし目的変数が二値じゃなくて量だったら、autoMrPはどう動くの? モデルをちゃんと切り替えてくれるのだろうか? その際SVMはどうなるの? うーん、このへんはこの論文ではなくてパッケージのvignetteを読んだほうがよさそうだな]
性能検証。
使用するデータはButtice & Hinghton (2013, PoliticalAnalysis)による[MRPと伝統的手法を比べた論文だ]。89項目、25000人以上。
対象者は項目ごとの母集団からの標本だと考える。個々の母集団について州ごとにyes回答率を求め、これを真の世論とする。母集団から1500人引っ張ってきて真の世論を当てる。[どう引っ張ってくるの? 無作為? それだとちょっとつまんないよね… いや待てよ、著者の関心は非確率標本への対処というより小地域推定にあるのか。それなら無作為に抽出するというのもわかる]
- EBMA用に1500人から500人取り除き、1000人について、5つの分類器を5-fold CVで訓練してMSEを求める。
- 5つの分類器を組み合わせて、個別の対象者についてのアンサンブル予測を出す。分類器に与えるウェイトは最初に取り除いた500人を使って求める。[あれ、組み合わせるモデルってなに? Step 1は5-folds CVだから、モデルは手法ごとに5個できてるでしょ? Step 1 で1000人まるごと使って作ったモデルも用意しておくということ? それとも、foldごとにアンサンブル予測を出して積むってこと? 後者ならむしろ500人も5 foldsにわけておいて各foldで100人使ってウェイトを出すほうが気が利いてるよね]
- Step 3. 対象者を事後層別して州レベルの予測を得て、真の世論と比べる。
Buttice & Hinghtonのモデルでは、個人レベルランダム効果を持つ変数は、年代(4水準)、学歴(4)、性x人種(6)。文脈レベルの変数は、前回の大統領選の共和党得票率、福音派・モルモン教徒率であった。これをBaselineとする。文脈変数として都市部人口率、失業率、ヒスパニック率、白人率を加えたのをAllVars, 文脈変数を抜いたのをNo Vastとする。AllVarsの変数でもってBestSubset, PCA, Lasso, GM, SVM, そしてEBMAで推定する。
結果。州レベル予測のMSEの、89項目を通した平均をみる。低い順に、EBMA, GBとBaseline(ほぼ同じ), PCA, NoVars, Lasson, BestSubset, SVM, AllVarsであった。[ああなるほどね。文脈変数を2個から6個に増やすと、基本的にアプローチを問わず悪くなった。でも5つのアプローチのEBMAなら勝てた。ってことね]
[Appendix Chap 5.に結果詳細、Chap 7.に項目別の結果が載っているけどパス]
というわけで、RのautoMrPパッケージを作ったんで使っていいよ。云々。
[Appendix Chap 11に引数の詳しい説明が載っている]
——————
やれやれ…
いや、きっと価値のあるご提案だと思いますよ。ええ。そりゃ私みたいな立場の人はすごく助かりますよ。目的変数がいっぱいあって、それぞれの目的変数の生成メカニズムについてよくわかんなかったりするし。
でもさ… 政治学者なんでしょ? 研究したい目的変数なんてひとつかふたつでしょ? それについてリッチな実質的知識をお持ちなんでしょ? それなのに、それに効きそうな地域レベル変数がいっぱいあってどれを選んだらいいかわからんから、バコバコ放り込んで機械学習でどうにかしましょっていうの、それってどうなの。それよか、いったん地域レベル変数なしで\(\alpha^{area}_c\)を推定して、\(\mathbf{X}_c\)との関係を探索して、なんならDAGとか書いて首をひねって、ああこれがこう効いてんのねって、腑に落ちたところで投入して再推定、というほうが誠実なんじゃないの? いや、知らんけどさ。