如果分布类似于 Zipf,主成分分析是否有效?什么类似于 PCA 但适用于非高斯数据?

机器算法验证 主成分分析 正态分布 邮编
2022-03-23 18:33:38

我正在根据他们的推特流分析人们。我们正在使用用户的“词袋”模型,这基本上相当于计算每个词在个人推特流中出现的频率(然后将其用作更规范化的“他们将使用给定词的概率”的代理)特定长度的文本)。

由于管道的进一步限制,我们无法保留所有用户使用所有单词的完整数据,因此我们试图在分析中找到最“象征性有效”的单词来保留。也就是说,我们试图保留维度的子集,知道它们的值将允许假设的预言家最准确地模拟所有单词的概率(包括我们在分析中遗漏的任何单词)。

因此,主成分分析 (PCA) 类型的方法似乎是合适的第一步。(现在很高兴地忽略了 PCA 也会将我们“旋转”到不对应于任何特定单词的维度的事实)。

但我正在阅读“Zipf 分布 .. 表征自然语言(如英语)中单词的使用”,据我所知,PCA 分析对数据正态分布做出了各种假设。因此,我想知道 PCA 分析的基本假设是否会与现实“相距甚远”而成为一个真正的问题。也就是说,PCA 是否依赖于“接近”高斯正态的数据才能正常工作?

如果这是我怀疑的问题,还有其他建议吗?也就是说,其他一些值得研究的方法在某种程度上与 PCA“等效”,但更适合 Zipf 或幂律分布式数据?

请注意,我是一名程序员,而不是统计学家,如果我在上面弄乱了我的术语,我深表歉意。(当然欢迎更正!)

3个回答

PCA 可能适用于您的数据,因为它似乎不对数据结构做出任何假设。请参阅链接以获得良好的介绍。

http://en.wikipedia.org/wiki/Principal_component_analysis#cite_note-4

该注释指向关于 PCA 的简短 PDF 教程。

希望这可以帮助。

事实是 PCA 包含一个固有的线性假设,即改变基础可以重新构建问题,以提供对数据的更具辨别力的视图。在使用 Zipf/幂律跟踪数据时,它必须是真的吗?这取决于您的所有变量是否具有相同的分布。如果是这样,您可以对所有列的值取对数并执行 PCA 并获得合理的结果。

幂律使您的方差爆炸,PCA 当然会产生结果,但是如果不错误地认为某种现象实际上只发生在前 20% 的异常值中,那么它们将很难解释。您也可以尝试使用 PCA 来查看主要差异,然后将数据划分到长尾与顶部异常值分开的点,然后在尾部进行 PCA?

可以在此处找到有关带有假设的 PCA 的好教程:Jonathon Shlens:主成分分析教程。CoRR abs/1404.1100 (2014)

在Cauchy Principal Component Analysis的 Xie 和 Xeng 的这篇论文中,对 PCA 的不同类型的输入以及具有极值信息的 PCA 的 Matlab 例程进行了出色的类型学和讨论

http://www.cs.cmu.edu/~pengtaox/papers/cpca.pdf

基本上,他们的方法涉及转向概率假设。他们明确地将包括高斯、拉普拉斯、逻辑和柯西分布拟合在内的位置尺度分布系列与相同的模拟信息进行比较。

完成后,他们的算法也很容易被编程为 Matlab 以外的语言。