blavaan 错误:从 lavaan 到 MCMC 语法的翻译出现问题

问题描述 投票:0回答:1

我正在使用 blavaan 进行测量不变性测试,但出现下一个错误:

     [1] "Error in lamsign[l1, 1] : subscript out of bounds\n"
    attr(,"class")
    [1] "try-error"
    attr(,"condition")
    <subscriptOutOfBoundsError in lamsign[l1, 1]: subscript out of bounds>
    Error in blavaan(mod_sem_1, ordered = c("y3", "y4", "y6", "y7", "y8",  : 

  blavaan ERROR: problem with translation from lavaan to MCMC syntax.

我正在 Rstudio 上工作,代码为:

    mod_sem_1 <- '
              # Modelo de medicion
              # Parte endogena
              eta1 =~ y3 + y4 + y5 # Patron de consumo
              eta2 =~ y6 + y7 + y8 + y9 + y10 + y11 + y12 + y13 # Consumo problematico
              # Parte exógena
              xi1 =~ x14 + x15 + x16 # Factores individuales
              xi2 =~ x17 + x18 + x19 + x20 + x21 # Factores micro-sociales
              xi3 =~ x22 + x23 + x24 # Factores macro-sociales
            
            #Modelo estructural
            eta1 ~ xi1 + xi2 + xi3
            eta2 ~ eta1
            
            # Covariancias
            xi1 ~~ xi2
            xi1 ~~ xi3
            xi2 ~~ xi3
    '
    fit_mg_g3 <- bsem(mod_sem_1, 
                   ordered=c("y3","y4","y6","y7","y8","y9","y10","y11","y12","y13",
                             "x14","x16","x17","x18","x19","x20","x21","x22","x23","x24"),
                   std.lv=TRUE, dp=dpriors(lambda="normal(1,1)"), 
                   group = "genero",
                   group.equal = "loadings",
                   n.chains = 3, burnin = 9000, sample = 1000,
                   data=datos_imputados)

我已经尝试重新安装 blavaan 软件包,并且我确信代码、变量和数据都很好。实际上,没有约束的多组模型运行成功,只是在我添加行

"group.equal = "loadings"
后,错误才出现。

咨询 foros 和 R Github,我认为该错误可能是因为 blavaan 软件包中的错误,但我尝试重新安装该软件包,错误仍然存在。

r mcmc invariance
1个回答
0
投票

您能提供一个可重现的示例吗?从我在您的代码中看到的情况来看,您似乎希望除

Xi1-Xi3
之外的所有指标都被视为序数。

如果您希望所有指标都被视为序数,请使用

ordered = T

library(blavaan)
library(semTools)
model <- ' f1 =~ u1 + u2 + u3 + u4'


fit <- bsem(model=model, 
        data=datCat,
        ordered =T,
        std.lv=TRUE, 
        dp = dpriors(lambda = "normal(1, 1)"),
        n.chains = 3,
        burnin = 9000,
        sample = 1000,
        group="g",
        group.equal="loadings")

summary(fit, fit.measures = TRUE, std=T)

由于您使用的是序数模型,我认为您应该检查this。 另请注意,由于您要将模型参数修复为序数模型中各组之间的相等,因此我建议首先将阈值修复为相等。它们充当与观察到的离散响应相关的潜在潜在项目响应的主要测量模型的参数,因为这些潜在响应充当共同因素的指标。然而,正如一些研究人员之前所建议的那样,将阈值视为截距的分类等价物是不准确的。为了详细了解,我建议阅读 Wu & Estabrook (2016),他们提出测试应用于连续指标的配置步骤和度量步骤之间的阈值等效性,但有几个例外:

  • 对于具有三个类别的指标,等效阈值会产生在统计上与配置不变性相同的模型,这意味着应该假设阈值等效性而不是进行测试。
  • 对于二元指标,无法区分阈值、负载或截距的变化。因此,标量不变性应该通过与配置模型进行比较来测试,而不是进行单独的度量不变性测试。

根据 Wu & Estabrook (2016) 的建议,我建议首先测试阈值的等效性,然后是因子载荷,然后是截距。确保从配置模型中删除不必要的识别约束。费舍尔等人。 (2018)提供了要测试的模型序列的一个很好的例子。

就像因子载荷不相等的指标的截距不具有可比性(因此不应受到约束)一样,阈值不相等的指标也不应约束因子载荷。”

参考文献

Fischer, F.、Gibbons, C.、Coste, J.、Valderas, J. M.、Rose, M. 和 Leplège, A. (2018)。英国、法国和德国 PROMIS Profile 29 的测量不变性和一般人群参考值。 生活质量研究,27(4), 999-1014。 https://doi.org/10.1007/s11136-018-1785-8

吴 H. 和埃斯塔布鲁克 R. (2016)。识别有序分类结果的不同不变性水平的验证性因素分析模型。 心理学,81(4), 1014–1045。 https://doi.org/10.1007/s11336-016-9506-0

© www.soinside.com 2019 - 2024. All rights reserved.