1

我正在尝试使用验证性因子分析 (CFA) 从两个变量(以李克特 5 点量表测量)中获取单个因子。我了解具有 1 个因子和 2 个负载的模型的自由度为 -1 ,因此该模型未指定。但是,我已经看到了使用两个变量作为单个潜在因素的载荷的模型。

我尝试使用 sklearn 在 Python 中运行 CFA,但它返回了两个负载的负因子负载,我认为这是不正确的。

Python代码(带数据):

import sklearn.decomposition as skd
x = [[2., 4.], [1., 2.], [1., 1.], [2., 2.], [2., 2.], [2., 1.], [1., 1.], [2., 2.], [3., 2.], [2., 2.], [1., 2.], [1., 1.], [2., 2.], [2., 2.], [1., 1.], [3., 3.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [0., 0.], [2., 2.], [2., 2.], [2., 2.], [2., 2.], [2., 2.], [1., 1.], [2., 2.], [2., 2.], [2., 2.], [2., 2.], [2., 2.], [2., 2.], [1., 1.], [2., 2.], [2., 2.], [1., 1.], [2., 2.], [2., 1.], [2., 2.], [3., 2.], [1., 1.], [1., 1.], [1., 1.], [2., 2.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [2., 2.], [1., 1.], [2., 4.], [2., 2.], [1., 1.], [2., 2.], [2., 2.], [3., 2.], [3., 2.], [1., 1.], [1., 1.], [2., 2.], [1., 1.], [1., 1.], [1., 2.], [1., 1.], [1., 1.], [2., 2.], [3., 3.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [2., 3.], [3., 3.], [2., 2.], [2., 2.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [2., 2.], [1., 1.], [2., 2.], [1., 1.], [3., 3.], [2., 2.], [2., 2.], [2., 2.], [2., 2.], [1., 1.], [1., 1.], [2., 2.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [2., 2.], [2., 2.], [2., 2.], [1., 1.], [1., 2.], [2., 2.], [2., 2.], [2., 2.], [2., 2.], [2., 1.], [2., 2.], [1., 1.], [1., 1.], [2., 2.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [2., 2.], [2., 2.], [1., 2.], [1., 1.], [1., 1.], [2., 2.]]

skd.FactorAnalysis(n_components=1).fit(x).components_[0]

输出:

array([-0.55779804, -0.58890195])

我还尝试使用“lavaan”库在 R 中运行 CFA,它返回以下错误:

lav_model_vcov(lavmodel = lavmodel, lavsamplestats = lavsamplestats, : "lavaan WARNING: 无法计算标准误差!信息矩阵无法反转。这可能是模型未识别的症状。"

我是 CFA 和结构方程建模 (SEM) 的新手,如果有人能解释我的错误(或者我应该说错误!),我将不胜感激。

4

1 回答 1

1

迟到的答案,我知道....

正如您所说,真正的问题是您没有足够的自由度:您需要三个指标来单独估计一个潜在变量。是的,对于给定的潜在变量,有些模型具有两个指标,但它们仅在该潜在变量与一个或多个其他潜在变量相关时才有效。

有足够的自由度,你永远不会遇到所有载荷都是负的问题,因为一个载荷总是固定(任意)为 1。请注意,如果一个或多个载荷为负,你可以切换方向通过切换哪个指标具有固定负载 1 来获得潜在规模——但这不会改变模型的基础数学。(当然,如果您将一个负载固定为 -1 或任何其他负数 - 您当然会遇到所有负载都是负数的情况,但很少有充分的理由这样做,而且无论如何,同样,基础数学是相同的。)

但是,如果您正在做 CFA,我认为您不想使用专门用于探索性因素分析 (EFA) 的特定 scikit-learn 课程。不过,我想它可能只适用于一个潜在因素(并且 sklearn 没有 CFA 课程)。

于 2019-05-09T23:04:59.200 回答