首页 > 解决方案 > “因子分析器”库中相关矩阵的奇怪输出

问题描述

我正在尝试在某些应用程序中使用因子分析并尝试比较 2 个库 - “因子分析器”和“sklearn.decomposition.FactorAnalysis”。编写了该方法(其中的“pd”是pandas,“df”-pandas 数据框,“delm”是 html 分隔符-br+hr 标签):


def make_analysis(df, nf):

    fa1 = FactorAnalyzer(n_factors=nf, rotation="varimax")
    fa2 = FactorAnalysis(n_components=nf, rotation="varimax")
    fa1.fit(df)
    fa2.fit(df) 

    res1 = fa1.transform(df)  

    res2 = fa2.transform(df) 
 
    resdf1 = pd.DataFrame(res1) 
    resdf2 = pd.DataFrame(res2) 

    corr1 = resdf1.corr().to_html() 

    corr2 = resdf2.corr().to_html()  

    html = resdf1.to_html() + delm + corr1 + delm + resdf2.to_html() + delm + corr2 
 

    return html

有超越相关矩阵。我们可以看到第二个矩阵几乎是对角的,而第一个不是。lib“因子分析器”是否真的与正交性不正确,或者我应该查看其他矩阵?可以肯定,这样流行的库在这样的基础上不会有错误,但是为什么第二个矩阵总是几乎是对角线而第一个不是,以及如何正确计算因子的相关矩阵?

标签: pythonscikit-learnstatisticsfactor-analysis

解决方案


推荐阅读