使用Python库sklearn.decomposition.FactorAnalysis的1因子和2因子模型的负因子加载?

使用Python库sklearn.decomposition.FactorAnalysis的1因子和2因子模型的负因子加载?,python,r,scikit-learn,factor-analysis,r-lavaan,Python,R,Scikit Learn,Factor Analysis,R Lavaan,我试图通过验证性因素分析(CFA)从两个变量(在5点Likert量表上测量)中得到一个单一因素。据我所知,具有1个系数和2个荷载的模型的自由度为-1,因此该模型未达到规定值。但是,我见过两个变量被用作单一潜在因素负荷的模型 我尝试使用sklearn在Python中运行CFA,但它返回了两个加载的负因子加载,我认为这是不正确的 Python代码(带数据): 输出: array([-0.55779804, -0.58890195]) 我还尝试使用“Lavan”库在R中运行CFA,它返回以下错误:

我试图通过验证性因素分析(CFA)从两个变量(在5点Likert量表上测量)中得到一个单一因素。据我所知,具有1个系数和2个荷载的模型的自由度为-1,因此该模型未达到规定值。但是,我见过两个变量被用作单一潜在因素负荷的模型

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

Python代码(带数据):

输出:

array([-0.55779804, -0.58890195])
我还尝试使用“Lavan”库在R中运行CFA,它返回以下错误:

lav_model_vcov(lavmodel=lavmodel,lavsamplestats)中的警告信息 =lavsamplestats,:“LAVAN警告: 无法计算标准错误!信息矩阵无法 未反转。这可能是模型未反转的症状 确定。”


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

迟来的回答,我知道

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

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

但是,如果你在做CFA,我认为你不想使用专门用于探索性因素分析(EFA)的scikit学习类。不过,我想它可能只适用于单个潜在因素(而且sklearn没有CFA类)

array([-0.55779804, -0.58890195])