我无法对我的数据集执行因子分析。
当我在 SPSS(默认设置)中执行因子分析时,它工作正常。问题是,我需要以编程方式(在 Python 中)。当我尝试使用 Python(MDP 库)对同一数据集进行因子分析时,出现此错误:
“数据的协方差矩阵是奇异的,需要去除冗余维度”
在查看 MDP 文档时,它说“......返回潜在变量的最大 A 后验估计”。作为因子分析新手,我并不太清楚这意味着什么,但我尝试将 SPSS 中的默认提取方法从“主成分”更改为“最大似然”。然后,在 SPSS 中,我收到错误:
“这个矩阵不是正定的。”
这两个错误是一回事吗?无论如何,我可以做些什么来修复我的数据集,以使协方差矩阵不是奇异的?
谢谢!
编辑:好的,所以我试图简化事情,但也许从一开始就解释一切会更好。
我有一系列文件。是的,我只使用 9 个文档作为一个简单的测试用例,但我的最终目标是在更大的语料库上使用它。
我已经建立了一个术语文档矩阵,执行了 tf-idf,并做了 SVD——主要是在 blog.josephwilk.net/.../latent-semantic-analysis-in-python.html 的帮助下
现在我有一个重构矩阵,我想将文档分类。所以,我尝试使用因子分析。事实上,它似乎起作用了——当我把它放在 SPSS 中时,因子负载表明文档按照我认为应该的方式进行分组,并且负载比我没有执行 SVD 时要高。(虽然我认为从技术上讲,SPSS 正在做 PCA,即使它在“因素分析”标题下)。
我尝试使用 MDP 的 PCANode,但这似乎并没有给我任何接近我想要的东西。奇怪的是,如果我转置矩阵,因子分析确实有效(它将对术语进行分组,而不是对文档进行分组)。
希望这一切现在都变得更有意义了......