我正在尝试使用验证性因子分析 (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) 的新手,如果有人能解释我的错误(或者我应该说错误!),我将不胜感激。