井出草平の研究ノート

交差遅延パネルモデルCross-lagged Panel Model[R]

Stataでの分析方法はこちら。

ides.hatenablog.com

Mplusでの分析方法はこちら。

ides.hatenablog.com

データ読み込み

library(rio)
nes3wave <-import("nes3wave.dta")

今回のパス図を先に表示しておこう。

コードは末尾。semPlotパッケージを用いて描画している。

モデル

回帰は~、共変量は~~で書くのがlavaan。

library(lavaan)
CLP_model<-
  '
## Regressions
pid2002 ~ pid2000 + app2000
app2002 ~ app2000 + pid2000

## Covariances
app2000~~pid2000
app2002~~pid2002
'

実行・結果表示

推定法はデフォルトの最尤法を用いている。

fit_CLPM<- sem(CLP_model, data=nes3wave)
summary(fit_CLPM, standardized=TRUE)

結果

Regressions:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  pid2002 ~                                                             
    pid2000           0.785    0.020   38.621    0.000    0.785    0.773
    app2000           0.160    0.026    6.204    0.000    0.160    0.124
  app2002 ~                                                             
    app2000           0.130    0.031    4.177    0.000    0.130    0.137
    pid2000           0.317    0.025   12.919    0.000    0.317    0.424

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  pid2000 ~~                                                            
    app2000           2.119    0.127   16.712    0.000    2.119    0.599
 .pid2002 ~~                                                            
   .app2002           0.436    0.049    8.950    0.000    0.436    0.286

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .pid2002           1.263    0.055   23.011    0.000    1.263    0.272
   .app2002           1.836    0.080   23.011    0.000    1.836    0.732
    pid2000           4.501    0.196   23.011    0.000    4.501    1.000
    app2000           2.785    0.121   23.011    0.000    2.785    1.000

パス図

library(semPlot)
semPaths(fit_CLPM, layout = "tree", shapeLat="ellipse", whatLabels  = "est", 
         nDigits=3, shapeMan="square", sizeMan =6, sizeMan2= 10,
         style = "lisrel",rotation = 2,residScale=12, curve=2.5, 
         edge.color="black", edge.label.cex=1)