当 CFA 模型出现“协方差矩阵不是正定的”问题时,是由于数据集还是模型?

机器算法验证 民意调查 结构方程建模 潜变量 确认因素
2022-03-14 06:05:02

我正在使用 R 中的 Lavaan 测试几个 CFA 测量模型。我正在调查的问卷已显示由 1 因素、3 因素和 4 因素组成。

在数据集中,我发现 1 因素和 3 因素适合,但 3 因素最适合(最低 AIC)。

但是,由于“协方差矩阵不是正定的”,因此无法测试 4 因子模型。仔细观察发现,其中一个因素与另一个因素具有上述一个相关性。

我的问题是,为什么我的数据集中的 4 因子模型中的协方差矩阵不是正定的?这个问题是我的数据集独有的吗?

我还是一个初学者,所以我可能会错过一些重要的细节。

非常感谢大家的快速回复!更新:样本为 904 名参与者,模型中有 28 个观察到的变量(项目)。

2个回答

数据的协方差矩阵总是非负定的,这是毫无疑问的。但是,当某些参数的值超出其自然范围时,模型隐含的协方差矩阵可能不会出现。反过来,这可能由于多种原因而发生。

  1. 您的 4 因子模型可能指定错误,即不适合数据。
  2. 您的模型没问题,只是您正在处理的样本有利于相关参数的高值。要区分 1 和 2,您需要找到一种方法来测试相关性是否显着大于 1,这并非易事(doi: 10.1177/0049124112442138):当时很少有包正确计算标准误差那篇论文是写的,我不知道当前版本lavaan是否写。
  3. lavaan通过获取参数计算数值导数(与任何其他软件一样)±一小步,当参数的当前值是 kosher 时,这一步可能会超过限制并产生一个不是正定的矩阵。(解析导数可用于多元正态情况,但二元/有序变量需要对潜在变量的分布进行数值积分,并且不适合解析微分。所以这取决于您的模型。)

我认为您可以争辩说,由于缺乏收敛性,您的 4 因子模型效果不佳,并且不是模型选择的竞争者。

@StasK 很好地总结了原因。我将展示一些解决此错误的方法。它可能会受到您的模型构建的影响。使用 function summary,您会发现您定义的潜在变量之间存在一些相关性,超出了界限。我是说|ρ|>1或者|ρ|接近 1。

如果你发现它是真的,解决它的一种方法是将不好的潜在变量折叠成一个潜在变量及其显变量。例如,

latent1 =~ v1 + v2
latent2 =~ v3 + v4
latent3 =~ v5 + v6

latent1是好的,另外两个是坏的。以这种方式改变,

letent1 =~ v1 + v2
letent2and3 ~= v3 + v4 + v5 + v6

并找出是否有更好的结果。这个想法来自 Erin Buchanan,您可以在线查看她的 SEM 教程。


由于与在线教学组织有关的性侵犯,我放弃了这个参考。如果您对参考感兴趣,请私下联系我,我会回复一些技术但尚未整理的笔记。