如何建立纵向CFA的配置模型?
how to set up configural model for longitudinal CFA?
我有 12 个调查问题 (Q),这些问题是在 post 期前调查期间提出的。所以我想做纵向 CFA,看看 pre/post-term 调查
的因子模型之间是否存在差异
12 个调查问题被分解为 3 个潜在变量:
Anx =~ Q1 + Q2 + Q3 + Q4
Bel =~ Q5 + Q6 + Q7 + Q8
效率=~ Q9 + Q10 + Q11 + Q12
因此在学期前和 post 学期调查中提出了相同的问题。
我想知道如何构建配置模型:
分别为pre和post-term的每个因素建模:
overall.model.Bel <- '
Bel.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre
Bel.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post
'
overall.model.Anx <- '
Anx.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre
Anx.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post
'
overall.model.Eff <- '
Eff.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre
Eff.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post
'
或者我应该一个人完成:
overall.model.Bel <- '
Bel.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre
Bel.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post
Anx.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre
Anx.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post
Eff.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre
Eff.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post
'
还有什么我应该添加或修改的吗?
然后构建模型
overall.fit <- cfa(model = overall.model,
data = master,
meanstructure = TRUE)
- 另外,出于好奇,我可以使用
library(equaltestMI)
做纵向CFA吗?或者那个只适用于多组 CFA(我不完全确定两者之间的步骤有什么区别,除了多组 1 组是相互独立的)
为了测试随时间变化的测量不变性,您需要第二个模型但有额外的约束,以便 lavaan 知道哪些指标实际上是重复测量的同一项目。使用 semTools::measEq.syntax()
很容易做到这一点。它采用您的模型,根据您所做的设置添加所需的语法片段,并适合该模型。
在您的示例中,应该按如下方式工作:
overall.model.Bel <- '
Bel.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre
Bel.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post
Anx.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre
Anx.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post
Eff.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre
Eff.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post
'
rep_factors <- list(Bel = c("Bel.pre","Bel.post"),
Anx = c("Anx.pre","Anx.post"),
Eff = c("Eff.pre","Eff.post") )
fit.config <- semTools::measEq.syntax(configural.model = overall.model.Bel,
data = master,
longFacNames = rep_factors,
return.fit = TRUE,
meanstructure = TRUE)
我有 12 个调查问题 (Q),这些问题是在 post 期前调查期间提出的。所以我想做纵向 CFA,看看 pre/post-term 调查
的因子模型之间是否存在差异12 个调查问题被分解为 3 个潜在变量:
Anx =~ Q1 + Q2 + Q3 + Q4
Bel =~ Q5 + Q6 + Q7 + Q8
效率=~ Q9 + Q10 + Q11 + Q12
因此在学期前和 post 学期调查中提出了相同的问题。
我想知道如何构建配置模型:
分别为pre和post-term的每个因素建模:
overall.model.Bel <- ' Bel.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre Bel.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post ' overall.model.Anx <- ' Anx.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre Anx.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post ' overall.model.Eff <- ' Eff.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre Eff.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post '
或者我应该一个人完成:
overall.model.Bel <- ' Bel.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre Bel.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post Anx.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre Anx.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post Eff.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre Eff.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post '
还有什么我应该添加或修改的吗?
然后构建模型
overall.fit <- cfa(model = overall.model,
data = master,
meanstructure = TRUE)
- 另外,出于好奇,我可以使用
library(equaltestMI)
做纵向CFA吗?或者那个只适用于多组 CFA(我不完全确定两者之间的步骤有什么区别,除了多组 1 组是相互独立的)
为了测试随时间变化的测量不变性,您需要第二个模型但有额外的约束,以便 lavaan 知道哪些指标实际上是重复测量的同一项目。使用 semTools::measEq.syntax()
很容易做到这一点。它采用您的模型,根据您所做的设置添加所需的语法片段,并适合该模型。
在您的示例中,应该按如下方式工作:
overall.model.Bel <- '
Bel.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre
Bel.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post
Anx.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre
Anx.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post
Eff.pre =~ Q1.pre+ Q2.pre+ Q3.pre+ Q4.pre
Eff.post =~ Q1.post+ Q2.post+ Q3.post+ Q4.post
'
rep_factors <- list(Bel = c("Bel.pre","Bel.post"),
Anx = c("Anx.pre","Anx.post"),
Eff = c("Eff.pre","Eff.post") )
fit.config <- semTools::measEq.syntax(configural.model = overall.model.Bel,
data = master,
longFacNames = rep_factors,
return.fit = TRUE,
meanstructure = TRUE)