6

lavaan構造方程式モデルのパッケージのモデルステートメントで潜在変数の相互作用をコーディングする方法を教えてもらえますか?

潜在変数L1といくつかの観測変数F1があり、いくつかの結果に対するそれらの相互作用効果をコーディングしたいとしますY

L1 =~ x1 + x2

Y ~ L1 * F1 

これはうまくいきません。

前もって感謝します!

4

1 に答える 1

5

John Maddenの重要なコメントのおかげで、節度 (おそらくあなたが探しているもの) と調停を区別します。

モデレーション (変数値の相互作用)

あなたの質問への簡単な答えは次のとおりです。私の知る限り、2つの潜在変数の相互作用を行うためのlavaan統合の可能性はありませんが、回避策を次に示します。

  1. 潜在変数の定義 (CFA)
  2. 予測値を抽出してデータ フレームに追加し、相互作用変数を定義する
  3. 意図した回帰を実行します(潜在変数自体なしで)

回避策のおもちゃのコードを次に示します。モデレーションはこのデータ ( mtcarsR ベースにある) では意味がなく、警告が表示されますが、ワークフローの構造は明確である必要があります。

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

于 2014-07-15T16:35:55.800 に答える