読了:Josephy et al. (2016) ランダム切片プロビット回帰混合モデルでクラスタサイズがすごく小さい場合のRパッケージを品定め

Josephy, H., Loeys, Tom, Rosseel, Y. (2016) A Review of R-packages for Random-Intercept Probit Regression in Small Clusters. Frontiers in Applied Mathematics and Statistics. 13.

 題名の通り、一般化線型混合モデル、アウトカムは二値、リンクはプロビット、ランダム切片付き、クラスタサイズはめっちゃ小さい、という際のRに使えるパッケージを比較しましたという論文。
 正直なところ、そういう局面になったらそのとき悩めばいいわけで、別に読まなくてもいいんだけど、なんだかなあこんなんで論文一本書けちゃうんだなあ(すいません)…などと呟きながら眺めていて、つい最後まで読んでしまった。だって気楽じゃないですかこういう話題。いささか心がなごむのであります。

 イントロは飛ばして…
 例として、Vandeweghe et al.という人のRCT研究を取り上げる。
 お題は、未就学児が野菜好きになるのをどう促進するか。次の4つの手続きを比較した。(1)チコリを食べるのを推奨する[encourgementの訳。具体的になにをしたのかわからない。映画「鬼畜」で緒形拳が息子の口に毒入りのあんパンを押しつけて「喰え!利一、喰えーっ」っていう場面があったけど、ああいう感じの手続きでしょうか]、(2)チコリを食べたら報酬、(3)チコリの繰り返し曝露 [いやいや曝露って…]、そしてコントロール。プリテスト、ポストテスト、フォローアップの3時点で、野菜が好きかどうか(二値)を測定。個々のこどもがクラスタで、各クラスタが値が3つ持つ。ほんとは学校というクラスタもあるんだけど、3レベルになっちゃうので、ある学校のデータについて分析する。話を簡単にするため、推奨群とコントロール群にのみ注目。標本サイズは両群あわせて37。
 モデルは次のとおり。測定時点を\(i (=0,1,2)\), 個体番号を\(j\)として $$ P(y_{ij} = 1 | x_{ij}, b_j) = \Phi(\beta_0 + \beta_1 x_{ij} + b_j) $$ \(y_{ij}\)は野菜が好きか。\(x_{ij}\)は推奨したか。関心があるのは\( H_0: \beta_1 = 0 \)の検定である。
 [本来、推奨有無は時点とは独立な共変量で、かつ時点と交互作用するはずだから \(\beta_{1,i} x_{j}\)だと思うんだけど、\(\beta_{1,0}=0, \beta_{1,1}=\beta_{1,2}\)と決め打ちしてパラメータを減らし、データ\(x_{ij}\)の側は推奨群の\(x_{1j}, x_{2j}\)だけ1にしてあとはみな0にするのだと思う]

 お待たせしました、選手入場です。
 選手1番、GLMM。$$ E(Y_{ij} | x_{ij}, b_j) = g^{-1}(\beta_0 + \beta_1 x_{ij} + b_j), \ \ b_j \sim N(0, \tau) $$ \(g^{-1}\)は標準正規累積分布とする。書き換えると$$ P(Y_{ij} = 1| x_{ij}, b_j) = \Psi(\beta_0 + \beta_1 x_{ij} + b_j)$$ 尤度関数はランダム効果を積分して $$ l(\beta, \tau | y_{ij}) = \prod_j \int \prod_i f(y_ij|\beta, b_j)\phi(b_j|\tau) db_j$$ \(\phi\)はランダム切片の密度、ここでは正規である。
 これを最大化するのは解析的には無理で、以下の方法が考えられる。
 1の1、ラプラス近似。二次テーラー近似でもって周辺尤度を閉形式で書く。Rではlme4::glmer()がこれにあたる。
 1の2、罰則付き擬似尤度(PQL)。反応関数をテイラー展開してLMMで近似してしまう。MASS::glmmPQL()がこれにあたる。
 1の3、Adaptive Gaussian Quadrature(AGQ)という手法を使って積分記号をsummationで近似する。lme4::glmer()でできる。

 選手2、ベイジアン。
 2の1、MCMCglmmパッケージ。
 2の2、INLA。[説明が書いてあるけど、毎度の事ながらさっぱり理解できないのでメモ省略…] R-inlaパッケージ。

 選手3、SEM。測定モデルを $$ y_j = v + \Lambda \eta_j + K x_j + \eta_j $$ 構造モデルを $$\eta_j = \zeta_j $$ とする。\( v = (v \ v)^\top \)は切片ベクトル[転置記号を勝手に付け加えた]、\(\eta_j\)は因子で負荷は\(\Lambda = (1 1)^\top\)。\(x_j = (x_{1j} \ x_{2j})^\top\), \(K\)は2×2の対角行列で要素は\(k, k\)。ここでは目的変数が二値なので、いったん連続潜在変数\(y^{*}\)を置く。\(\eta_j\)の分散を1に固定するか(thetaパラメータ化)、\(\zeta\)の分散と\(\eta\)の分散の和を1に固定する(deltaパラメータ化)。でもって、\(y^{*}\)が閾値\(\kappa\)を超えたら\(y=1\)とする。
 推定方法は大きく分けてMLとWLSがある。ここでは小サンプルでもうまくいくといわれているDWLSを使う。ソフトはlavaanパッケージ。チェックのためにMplusも試す。

 実データで実験。クラスタサイズが2(フォローアップを捨てる)のときと3のときを比べた。2のときは手法間で推定値のばらつきが大きくなった。時間はラプラス近似が最速、MCMCは他の10倍くらいかかった。

 よろしい、ではシミュレーションだ。
 [なんだかどうでもよい話のような気がしてきたので(すいません)、一気に考察までスキップ]

 考察。
 クラスタ数2 (つまりペアード・データ)の場合、SEMとAGQの成績がよかった[←へー]。ラプラス近似はあんまりよくなかった(正規分布か大クラスタ用の手法なのでこれは予期した結果)。PQLもあまりよくない。ベイジアンはMCMCだろうがINLAだろうが最悪[←うわー]。
 云々、云々。

 … 申し訳ないくらいに適当にしか読んでないんだけど… 著者らも考察のところで書いているように、たとえばベイジアンの推定精度がひどいというのは、事前分布の与え方のせいかもしれないし、サンプラーの問題かもしれないし、MCMCglmmの実装のせいかもしれない。正直こういうシミュレーションって、はあそうでしたか、としかいえないなあ…という感想である。
 こういう論文のありがたみはむしろsupplementだという気がしますね。付録にコードをつけてくれているそうだ。R-INLAのサンプルコードもついているはずで(あれ世紀末的にわかりにくいのである)、ありがたいことである。