以前、Stataで交差遅延パネルモデルに解説した例で今回もデモを行う。
Mplus用のデータ加工
こちらからnes3wave.dta
をダウンロードする。
RStudioでMplus用のデータに加工する。
データの読み取り
library(rio) nes3wave <-import("nes3wave.dta")
Rのデータ読み込みパッケージにはforeign
やhaven
があるが、Mplusへデータ出力をする場合はrio
一択だと思う。R上での分析もrio
を使っている。rio
を使うにはhaven
がインストールされている必要があり、haven
はtidyverse
が必要となる。
サブセットの作成
今回使用するデータのみピックアップする。
nes3wave_CLPM <- subset(nes3wave, select = c(pid2000, pid2002, app2000, app2002))
Mplus用のデータ出力
library(MplusAutomation) variable.names(nes3wave_CLPM) # 変数名を書き出し
prepareMplusData(nes3wave_CLPM, filename="nes3wave_CLPM.dat", overwrite=T)
nes3wave_CLPM.dat
というファイルで出力した。
Mplusでの分析
inpファイルは下記のように書く。
TITLE: Cross-lagged Panel Model with Mplus DATA: FILE = "nes3wave_CLPM.dat"; VARIABLE: NAMES = pid2000 pid2002 app2000 app2002; MISSING=.; ANALYSIS: type = general; estimator = MLR; MODEL: pid2002 on pid2000; app2002 on app2000; pid2002 on app2000; app2002 on pid2000; pid2000 with app2000; pid2002 with app2002; OUTPUT: STDYX;
diagrammerで描画すると下記のようになる。
書きたい図とは少し違うが、だいたいイメージはできる図にはなっているだろう。
結果
STDYX Standardization Two-Tailed Estimate S.E. Est./S.E. P-Value PID2002 ON PID2000 0.776 0.020 39.702 0.000 APP2000 0.115 0.022 5.163 0.000 APP2002 ON APP2000 0.125 0.032 3.947 0.000 PID2000 0.413 0.031 13.515 0.000 PID2000 WITH APP2000 0.558 0.018 30.934 0.000 PID2002 WITH APP2002 0.280 0.031 9.024 0.000 Means PID2000 1.323 0.025 53.876 0.000 APP2000 1.506 0.016 96.486 0.000 Intercepts PID2002 0.177 0.029 6.028 0.000 APP2002 1.581 0.072 21.966 0.000 Variances PID2000 1.000 0.000 999.000 999.000 APP2000 1.000 0.000 999.000 999.000 Residual Variances PID2002 0.285 0.018 15.931 0.000 APP2002 0.756 0.021 36.219 0.000 R-SQUARE Observed Two-Tailed Variable Estimate S.E. Est./S.E. P-Value PID2002 0.715 0.018 40.008 0.000 APP2002 0.244 0.021 11.683 0.000
CLPMを使うべきか
MplusのユーザーズガイドにCLPMは掲載されていない。理由は下記のMplus Discussionでのやり取りをみれば明らかであろう。
Bengt O. Muthen posted on Tuesday, February 12, 2019 - 5:24 pm
That looks right. Also note the RI-CLPM approach shown on our website. ホームページで紹介されているRI-CLPMのアプローチにも注目してください。
Muthen先生がやんわり指摘しているようにCLPMというのは時代遅れの方法で現在の標準的アプローチはランダム切片を置いたRI-CLPMになっている。
Reciprocal RI-CLPM
RI-CLPMをさらに改善したモデルとしてReciprocal RI-CLPMをMuthen先生たちは提唱している。
最近、新しいウェブトークが公開され、そこで解説がされている。
こちらのモデルが主流になるかはわからないが、ざっと見た感じ、検討すべきモデルであるのは間違いなさそうだ。