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直リンク)