【问题标题】:how to set up configural model for longitudinal CFA?如何建立纵向 CFA 的配置模型?
【发布时间】:2020-06-23 16:38:41
【问题描述】:

我有 12 个调查问题 (Q),这些问题是在期前和期后调查期间提出的。所以我想做纵向CFA,看看前/后调查的因子模型之间是否存在差异

12 个调查问题分为 3 个潜在变量:

Anx =~ Q1 + Q2 + Q3 + Q4

贝尔 =~ Q5 + Q6 + Q7 + Q8

Eff =~ Q9 + Q10 + Q11 + Q12

所以在期前和期后调查中提出了相同的问题。

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

  1. 分别为学期前和学期后的每个因素建模:

    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(我不完全确定两者之间的步骤有什么区别,除了多组一的组是相互独立的)

【问题讨论】:

    标签: r r-lavaan


    【解决方案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)
    

    【讨论】:

    • 是的,我知道关于测试度量不变性等的进一步步骤。我只是有一个关于设置原始模型的问题
    • 这就是我的假设。 longFacNames 参数用于原始模型(以及不变性测试中的其他模型)。它不是不变性约束,而是让 lavaan 正确处理重复的因素和指标。
    • 所以单独对 Bel 因子进行分析,然后对 Eff 和 A​​nx 重复步骤,是没有意义的,对吧?
    • 关键部分是同时包含每个因素的 .pre 和 .post 部分,并将它们定义为重复。您是要同时测试所有三个因素还是分别测试是一个完全不同的问题。请原谅我,如果我误解了。如果您想独立测试它们中的每一个的不变性,请制作三个单独的模型。如果您想测试整体测量不变性(例如,如果这些是来自一份问卷的三个方面),那么您将它们保留在一个模型中。
    • 看看help("measEq.syntax")。您可以通过设置 long.equal 参数来限制重复测量的不变性。如果您知道用于多组不变性测试的group.equal 参数,它的工作原理几乎相同(请参阅help("lavOptions"))。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 2014-06-17
    • 1970-01-01
    • 2019-03-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多