lavaan
構造方程式モデルのパッケージのモデルステートメントで潜在変数の相互作用をコーディングする方法を教えてもらえますか?
潜在変数L1
といくつかの観測変数F1
があり、いくつかの結果に対するそれらの相互作用効果をコーディングしたいとしますY
。
L1 =~ x1 + x2
Y ~ L1 * F1
これはうまくいきません。
前もって感謝します!
John Maddenの重要なコメントのおかげで、節度 (おそらくあなたが探しているもの) と調停を区別します。
あなたの質問への簡単な答えは次のとおりです。私の知る限り、2つの潜在変数の相互作用を行うためのlavaan統合の可能性はありませんが、回避策を次に示します。
回避策のおもちゃのコードを次に示します。モデレーションはこのデータ ( mtcars
R ベースにある) では意味がなく、警告が表示されますが、ワークフローの構造は明確である必要があります。
library(lavaan)
# 1. set up your measurement models
cfamodel <- "
#defining the latent variables
L1 =~ drat + wt
L2 =~ disp + hp
"
fitcfa <- cfa(data = mtcars, model = cfamodel)
# 2. extract the predicted values of the cfa and add them to the dataframe
semdata <- data.frame(mtcars, predict(fitcfa))
# create a new variable with the interaction of L1 and L2
semdata <- semdata %>%
mutate(L1L2 = L1 * L2)
# 3. now set up the regression and add the predefined interaction to the model
# a) regression with both latent variables and the interaction
semmodel1 <- "
# define regression
mpg ~ L1 + L2 + L1L2
"
fitsem1 <- sem(data = semdata, model = semmodel1)
summary(fitsem1)
# b) regression with only the interaction (does that even make sense? I don't know...)
semmodel2 <- "
# define regression
mpg ~ L1L2
"
fitsem2 <- sem(data = semdata, model = semmodel2)
summary(fitsem2)
メディエーションでは、関心のある 2 つの回帰重みの積として新しいパラメーターを定義する必要があります。L1
潜在変数F1
として、観測変数Y
として、従属変数としての例では、次のようになります。
# define Regressions (direct effect)
Y ~ lambda1*X
Y ~ lambda2*M
# define Regressions (effect on mediator)
M ~ X
# define Interaction
interac := lambda1*lambda2
fit <- sem(model, data = Data)
summary(fit)
その後、lavaan は相互作用の推定値を提供します。
演算子は、:=
「元のモデル パラメータの任意の関数である値を取る新しいパラメータを定義します」。例: http://lavaan.ugent.be/tutorial/ Mediation.html