Rとlavaanパッケージで構造方程式モデリング・媒介分析、ブートストラップのサンプル数指定

Rとlavaanパッケージで構造方程式モデリング・媒介分析、ブートストラップのサンプル数指定

2019年12月20日

Rとlavaanパッケージで構造方程式モデリング・媒介分析を行う方法。

媒介分析をやってみたのでメモ程度に。

シンプルな媒介分析

モデル式

library(lavaan)
md_model <- "
      #直接効果
      Y	 ~ c*X
      
      #媒介
      M ~ a1*X
      Y	 ~ b1*M

      #間接効果 (a*b)
      ab := a1*b1
      
      #全体の効果
      total := c + ab
"

「X → Y」というモデルに対して「X → M → Y」というモデルを想定する場合

媒介分析実行・ブートストラップ法

fit_med <- sem(md_model, data=data, estimator = "ML", se = "bootstrap", bootstrap = 5000)
summary(fit_med, standardized=T,fit.measure=T, ci = TRUE)
fitMeasures(fit_med)

estimatorは”ML”、seは”bootstrap”、サンプル数を指定する場合は”bootstrap = 5000″で指定します。

間接効果の95%信頼区間を確認したいときはsummaryに”ci = TRUE”を指定すると表示されます。”fitMeasures(fit_med)”を使うと適合度指標の一覧が出てきます。

媒介変数2つ

md_model <- "
      #直接効果
      Y	 ~ c*X

      #残差共分散
      M1 ~~ M2     

      #媒介
      M1 ~ a1*X
      M2 ~ a2*X
      Y	 ~ b1*M1
      Y	 ~ b2*M2

      #間接効果 (a*b)
      ab1 := a1*b1
      ab2 := a2*b2
      
      #全体の効果
      total := c + ab1 + ab2
"

媒介変数がM1, M2の場合のモデル。

Source:lavaan(PDF直リンク)