使用 lavaan 收敛双因子模型时出现问题

Trouble Converging Bifactor model using lavaan

标题基本上解释了它,但我正在尝试建立一个双因素模型,其中精神病是一个因素,亚型是另一个因素。我相信我已经正确地限制了一切,但这可能是问题所在。

当前代码:

BifactorModel <- 'psychopathyBi =~ YPIS_1 + YPIS_2 + YPIS_3 + YPIS_4 + YPIS_5 + YPIS_6 + YPIS_7 + YPIS_8 + YPIS_9 +YPIS_10 + YPIS_11 + YPIS_12 + YPIS_13 + YPIS_14 + YPIS_15 + YPIS_16 + YPIS_17 + YPIS_18

GMbi =~ YPIS_4 + YPIS_5 + YPIS_8 + YPIS_9 + YPIS_14 + YPIS_16

CUbi =~ YPIS_3 + YPIS_6 + YPIS_10 + YPIS_15 + YPIS_17 + YPIS_18

DIbi =~ YPIS_1 + YPIS_2 + YPIS_7 + YPIS_11 + YPIS_12 + YPIS_13

psychopathyBi ~~ 0*GMbi

psychopathyBi ~~ 0*CUbi

psychopathyBi ~~ 0*DIbi

GMbi ~~ 0*CUbi

GMbi ~~ 0*DIbi

CUbi ~~ 0*DIbi
'

#fit bifactor model

bifactorFit <- cfa(BifactorModel, data = YPIS_Data)

#get summary of bifactor model

summary(bifactorFit, fit.measures = TRUE, standardized = TRUE)

这会产生以下结果:

lavaan 0.6-9 did NOT end normally after 862 iterations

这是模型收敛后的最终样子

如有任何建议或意见,我们将不胜感激。提前致谢。

你的几个潜在变量的方差非常小。例如,Dlbi 似乎实际上为零。这就是问题的根源。

您可以尝试两种方法来解决这个问题。

首先,通过将潜在变量方差固定为 1,而不是将第一个指标因子载荷固定为 1,可能会更好地识别模型。通过指定 std.lv = TRUE

即便如此,加载到一个或多个组因子上的载荷也可能非常小。这表明您的数据中确实没有太多与一般因素不同的此项目的不同组因素。您应该考虑估计一个删除该组因素的模型(以及与一次删除其他组因素的模型进行比较)。我们在这里讨论这个问题:https://psyarxiv.com/q356f/

此外,您应该限制项目加载,使其处于理论上预期的方向(例如,下限为 0 的所有正数)。双因子模型通常会过度提取项目中的方差,并产生混合了正负载荷的无法解释的组因子。这也会导致收敛问题。

一般来说,这种不受约束的双因子模型往往过于灵活,并且倾向于过度拟合到与探索性因子分析相似的程度。您应该确保不仅根据全局模型拟合统计数据评估双因子模型,而且还根据因子载荷是否实际上类似于真正的双因子模型——每个项目是否在一般因子和它们的组因子上显示大量载荷预期的方向,或者项目是否倾向于只加载一个或另一个?请参阅上面链接的论文中有关此问题的一些示例。

另一种选择是切换到探索性双因子建模。这是在 fungible 包中的 fungible::BiFAD() 函数中在 R 中实现的。此处讨论了这种方法: https://www.sciencedirect.com/science/article/pii/S0001879120300555

探索性双因子模型很有用,因为它们依靠有针对性的 EFA 轮换来估计负荷。这使得收敛更有可能,并且可以帮助诊断何时组因素太弱而无法在数据中识别。