python - “因子分析器”库中相关矩阵的奇怪输出
问题描述
我正在尝试在某些应用程序中使用因子分析并尝试比较 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“因子分析器”是否真的与正交性不正确,或者我应该查看其他矩阵?可以肯定,这样流行的库在这样的基础上不会有错误,但是为什么第二个矩阵总是几乎是对角线而第一个不是,以及如何正确计算因子的相关矩阵?
解决方案
推荐阅读
- powershell - Powershell: view remote computer current user certificate
- python - Why can a parent send data only once in a bidirectional channel?
- c++ - How to maintaining relative order of non-zero elements during array sorting?
- cypress - Cypress test always fails in GitHub Actions & headless, but not locally in normal mode?
- scala - 如何转换 ackermann 函数的变体以支持尾调用?
- ruby - 红宝石从谷歌获取随机图片
- r - 当 as.POSIXct() 工作时,lubridate::as_datetime() 失败?
- java - 在读取 CSV 时获取 While 循环中的最后一行数据 - Java
- python - tf.random.normal() 没有按预期工作
- javascript - 捆绑时将 Babel Polyfills 从主代码中分离出来