基于Python库的1因子和2因子模型的负因子加载sklearn.decomposition.factorananalysis?

2024-06-01 06:44:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用验证性因子分析(CFA)从两个变量(用5点Likert量表测量)中得到一个单一因素。我知道一个有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]

输出:

^{pr2}$

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

Warning message in lav_model_vcov(lavmodel = lavmodel, lavsamplestats = lavsamplestats, : "lavaan WARNING: Could not compute standard errors! The information matrix could not be inverted. This may be a symptom that the model is not identified."

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


Tags: 模型model错误notcomponentsbesklearn因子
1条回答
网友
1楼 · 发布于 2024-06-01 06:44:28

迟答,我知道。。。。在

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

有了足够的自由度,你就不会遇到所有载荷都为负的问题,因为一个载荷总是固定(任意)为1。请注意,如果一个或多个负载为负,您可以通过切换哪个指示器的固定负载为1来切换潜在规模的方向,但这不会改变模型的基本数学模型。(当然,如果您将一个加载设置为-1或任何其他负数,您肯定会得到一个所有加载都为负数的情况,但是很少有好的理由这样做,而且在任何情况下,基本的数学都是相同的。)

不过,如果你在做CFA,我认为你不想使用scikit学习课程,该课程旨在进行探索性因素分析(EFA)。不过,我想它可能只有一个潜在因素(sklearn没有CFA课程)。在

相关问题 更多 >