我正在使用Python中的factor_analysisr包对调查中的一组问题进行探索性因子分析。结果显示 8 个因子,其中每个因子都有一组清晰的变量,且负载量最高。
为了正确命名因素并验证它们,我想分析已回答的问题(因素负载较高)与所有受访者的因素评分之间的相关性。
但是,当我分析这些结果时,因素似乎发生了变化。例如,在“成就”问题上包含高负载变量的第一个因素在评分结果中出现为与受访者的“成就”问题高度相关的第二个因素。此外,当使用因子评分进行分析时,第一个因子的高负载变量显示与该因子评分的相关性最低。参见下面的代码:
fa = FactorAnalyzer(rotation = 'oblimin',
n_factors = 8)
fa.fit(test_data)
data_loadings = pd.DataFrame(fa.loadings_(test_data), index = test_data.columns)
data_transformed = pd.DataFrame(fa.transform(test_data), index = test_data.index)
Here's因子载荷的视觉结果,以及 here相关矩阵的视觉结果。您可以在其中看到因子 [0] 负载最高的(已排序)变量不同于与因子 [0] 相关性最高的变量。
有谁知道这是怎么可能的吗?它与旋转或索引命名有关吗?
最佳答案
这似乎是 FactorAnalyzer
包的问题。
当倾斜旋转改变了因子的方差顺序时,因子将重新排序以确保第一个因子具有最大方差。然而,结构矩阵是使用重新排序之前的载荷来分配的,这导致这些顺序有时会不同。
这会给用户带来很多惊喜;如果对因素给出了解释或名称,则用户可能会感到困惑,因为所得到的因素分数根本与该解释不匹配,并且与具有最强负载的项目之外的不同项目相关。
我已提交 pull request在包中更改此设置。
关于python - 负载和评分之间的因子顺序不同(使用oblimin旋转),这怎么可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59284044/