如何建立纵向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 学期调查中提出了相同的问题。

我想知道如何构建配置模型:

  1. 分别为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
    '
    
    
  2. 或者我应该一个人完成:

    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
    ' 
    
    
  3. 还有什么我应该添加或修改的吗?

然后构建模型

overall.fit <- cfa(model = overall.model,
                   data = master, 
                   meanstructure = TRUE)
  1. 另外,出于好奇,我可以使用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)