読了:松本(2019) コウホート分析の推定手法を比較する

松本雄大(2019) ベイズ統計モデリングによるAge-Period-Cohort分析: ランダム効果モデル, リッジ回帰モデル, ランダムウォーク. 理論と方法, 34(1), 99-112

 仕事の都合で読んだ。掲載誌は数理社会学会の発行。いわゆるコウホート分析の推定手法について解説し、簡単なシミュレーションで特徴を示す、という内容。

 標準コーホート表の分析について考える。行に年齢\(i(=1,\ldots,I)\)、列に調査年\(j(=1,\ldots,J)\)、セルにたとえばある質問項目への反応率かなんかを書いた表のことね。出生年集団\(k (=1, \ldots, K)\)は左上から右下への斜め線上に並ぶ。
 各セルの値\(y_{ij}\)を応答変数、リンク関数を\(g[\cdot]\)として、$$ g[E(y_{ij})] = \mu + \alpha_i + \beta_j + \gamma_k$$とモデル化する。ただし\(\alpha_i\)の\(I\)個を通じた合計、\(\beta_j\)の\(J\)個を通じた合計、\(\gamma_k\)の\(K\)個を通じた合計は0とする。パラメータの数は\(1+ (I-1) + (J-1) + (K-1) = I+J+K-2\)個になる。
 \(y_{ij}\)が正規分布に従うとしよう。回帰モデルとして書けば、、\(I+J+K-2\)個のパラメータを\(\mu, \alpha_1, \ldots, \beta_1, \ldots, \gamma_1, \ldots\)という順に並べたベクトルを \(b\)とし、これに対応するようにうまいこと書いたデザイン行列を\(X\)として、\(y = Xb + \varepsilon\)である。ふつうにOLS推定量を考えれば\(\hat{b} = (X^\top X)^{-1} X^\top y\)である。
 ところがそうは問屋が卸さない。考えてみると、\(k = j – i + I\)という線形従属関係があるではないか。よって\(X\)はランク落ちするのだ。

 では、パラメータをどうやって識別するか?
 お待たせしました!選手入場です!

 選手1. どっかのパラメータに等値制約を置く。当然ながら、どこに制約を置くかで結果が大きく変わってくる。

 選手2. Intrinsic推定量。
 そもそもなぜデザイン行列\(X\)がランク落ちすると困るのか? [いやそれは\(X^\top X\)が逆行列を持たなくなるからでしょ? と思ったんだけど、ここから結構難しい話になっていくのである…]
 仮にですね、ここに\(v \neq 0\)であるベクトル\(v\)があって、\(X v = 0\)が満たされるとするじゃあないですか。するってえと、\( X(b+sv) = Xb \) ですよね。ってことは、いまある制約条件の下で、\(b\)の一つの解\(\hat{b}_U\)が得られたとして、それに\(sv\)を加えたとしてもやっぱし解だってことになるじゃないですか。なるほど、確かに困りますね。
 では「\(X v = 0\)を満たす\(v \neq 0\)なベクトル\(v\)が存在する」とはどういうときか。それ即ち、\(X\)がランク落ちしてるということなのである。
 さて、標準コーホート表の場合、ベクトル\(v\)はこういう奴である。$$ v_A = \left[ 1-\frac{I+1}{2}, 2-\frac{I+1}{2}, …, (I-1)-\frac{I+1}{2}\right]$$ とする[もっと具体的に書くと、\(I=5\)として、\( v_A = \left[ -2, -1, 0, 1 \right] \)。つまり、カテゴリ番号\([1,2,3,4,5]\)を中心化して最後のやつを取り除いているわけね]。同様に\(v_P, v_C\)をつくり、これを縦に積んで$$ v = \left[0, v_A, -v_P, v_C\right]^\top$$ が、邪悪なベクトル\(v\)となる。[ふうん… そういうもんですか… よくわかんないけど信じて先に進みます。なお、Kupper, et al.(1985 J.Chronic Disiese)というのがreferされている]
 そこで, \(v_0 = \frac{v}{||v||}\)として $$ b_0 = (I-v_0 v_o^\top) \hat{b}_U$$ を求める。なぜかというと…[ここの説明は私の学力不足で全く理解できなかったのでメモ省略…] まあとにかくそんなわけで、この推定量はすべてのパラメータの二乗和を最小化する推定量になっている。
 このアプローチの特徴は、分析者の恣意性を持ち込まず、逆行列が求められないという問題に純粋数理論的に対処しているところ。難点としては、\(X\)をコーディングする際にどの水準を基準にとったかというような、デザインに依存して結果が変わってくる。

 ここからはベイジアン・アプローチである。
 選手3. ランダム効果モデル。
 集計データではなくて個票データの分析で、年齢を個人の属性として扱い、時点の階層性ならば\( \beta_j \sim N(0, \sigma^2_p)\), コーホートの階層性ならば\( \gamma_k \sim N(0, \sigma^2_c)\)と仮定する。[ううう、わからない… たとえば時点をレベル1, 年齢を共変量として持つ個人をレベル2とした階層構造を考えるということだと思うんだけど、このとき異時点に共通したコーホート効果はどうなるのだろうか]

 選手4. リッジ回帰。
 \( \alpha_i, \beta_j, \gamma_k\)がこぞって\(N(0, \sigma^2)\)に従うと仮定する。これもパラメータの二乗ノルムを最小化しているので、Intrinsic推定量を求める方法のひとつともいえる。

 選手5. ランダムウォークモデル。
 A,P,Cの各効果がランダムウォークする、つまり\( \alpha_{i+1} \sim N(\alpha_i, \sigma^2_A), \beta_{i+1} \sim N(\beta_i, \sigma^2_P), \gamma_{k+1} \sim N(\gamma_i, \sigma^2_C)\)と仮定する。パラメータが緩やかに変化すると想定しているわけだ。中村隆の「ベイズ型コウホートモデル」と同等[へーそうなんだ]。

 シミュレーション。
 \(I=5, J=7\)として、A,P,Cの効果(\(\alpha_1, \ldots, \alpha_5, \beta_1, \ldots, \beta_7, \gamma_1, \ldots, \gamma_{11}\))を決める(こいつらはシミュレーションを通じて動かさない)。そこに\(N(0,1)\)のノイズを載せて\(y\)とする。Stanで推定した。[コードがみたいんだけどなあ…]
 結果。等値制約ではどこに制約を置くかでA,P,Cすべての効果が変化した。リッジ回帰とランダムウォークの成績がよかった。[ランダム効果モデルを並列に比較しているところが全然理解できなかった… これって集計データでできるもんなの? レベル1を年齢, レベル2を(たとえば)年齢x時点にするということ? 5クラスタ・クラスタ内7件の階層データでモデルを推定するのって辛くない? それに、\(\beta_j\)と\(\gamma_k\)ってどう識別するんだろうか…?]

 考察。
 リッジ回帰ではパラメータの真値が二乗ノルム最小解でないときにバイアスが生じるし、ランダムウォークモデルは\((\alpha_1-\alpha_I), -(\beta_1 -\beta_J), (\gamma_1 – \gamma_K)\)が同符号で絶対値が大きいときに推定精度が低下する[へえー! なるほどね、3本の真のパラメータ系列が似た方向に動いてたら困っちゃうわけだ]。
 APCを議論する際、識別できない直線成分には触れず、識別できる非直線成分だけに焦点を当てるという手はある。しかし、直線成分は意識や価値観の推移を示すもので、それを諦めちゃうのは困難である。APCは原理的には分離できないんだけど、やっぱり現実的に妥当な推定値を模索したいというのが人情である。その点、リッジ回帰やランダムウォークの背後にある節約原理は、最善とはいえないけど利点がある。云々。

 … 学力不足でよくわからん箇所もあったのだが、勉強になりましたですー。

 論文の内容からは離れるけど… 手法研究上の関心がA,P,Cの識別問題そのものに向かうのはよくわかるんだけど、自分の仕事に引き付けて言うと、substantialな知識をモデルにどう取り込んでいくかという問題のほうが大事だなあ、と思った。
 たとえばなにかのカテゴリの人口当たり消費量の長期時系列があって、その変動をA,P,Cに分解したい、という場面は珍しくない。しかし、そこにはたいてい暗黙的かつ豊かな事前知識がある。それをうまく定式化して、誰にでもわかるようにわかりやすく表現できれば、ステイクホルダー間で事前に合意できる部分は多いと思う。その結果、モデルに強い制約を置けることもあるし(「いやいや高度成長期以降に生まれた世代には世代効果なんてないですよ」「うんうん」とか)、そこをしくじれば、せっかく頑張って推定したモデルが無用の長物になることもある(「年齢効果や世代効果のパラメータがなだらかに動くというのはわかるが、時代効果について同じ仮定を置くとは到底許しがたい。19xx年の輸入自由化で市場がガラッと変わったのを知らんのか!不届き千万、ひったてい!」とか)。
 既有知識を丁寧に聞き取って定式化し、わかりやすく説明して合意を得る、というくだりが一番難しく、そこがうまくクリアできれば数理的な識別問題はおのずから消失することが多いし、逆にそこがうまくいかなければ、いかに識別問題をテクニカルに克服しても話は全然うまく進まないわけで…。