以前、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先生たちは提唱している。
最近、新しいウェブトークが公開され、そこで解説がされている。
こちらのモデルが主流になるかはわからないが、ざっと見た感じ、検討すべきモデルであるのは間違いなさそうだ。