k-means聚类分析后ANOVA的适当性

机器算法验证 方差分析 k-均值
2022-01-18 22:42:05

K-means 分析后的 ANOVA 表后的通知表明显着性水平不应被视为均值检验,因为已根据欧几里德距离导出聚类解决方案以使距离最大化。我应该使用什么测试来显示聚类变量的均值在聚类之间是否不同?我在 k-means 输出提供的 ANOVA 表中看到了这个警告,但在一些参考资料中,我看到运行了事后 ANOVA 测试。我是否应该忽略 k-mean ANOVA 输出并使用事后测试运行单向 ANOVA 并以传统方式解释它们?或者我只能暗示 F 值的大小以及哪些变量对差异的贡献更大?另一个困惑是聚类变量不是正态分布的,违反了方差分析的假设,那么我可以使用 Kruskal-Wallis 非参数检验,但它假设相同的分布。特定变量的集群间分布似乎不一样,有些是正偏态的,有些是负偏态的……我有 1275 个大样本,5 个集群,10 个以 PCA 分数衡量的集群变量。

4个回答

不!

不得使用相同的数据来 1) 执行聚类和 2) 寻找聚类中的点之间的显着差异。即使数据中没有实际的结构,聚类也会通过将附近的点组合在一起来强加一个。这会缩小组内方差并增加组间方差,从而使您偏向误报。

这种效果出奇的强烈。以下是从标准正态分布中抽取 1000 个数据点的模拟结果。如果我们在运行方差分析之前将这些点随机分配给五个组之一,我们会发现 p 值是均匀分布的:5% 的运行在(未校正的)0.05 水平上显着,1% 在 0.01 水平上显着,等等。换句话说,没有效果。然而,如果k-means 用于将数据聚类为 5 组,我们几乎每次都发现显着效果,即使数据没有实际结构

模拟结果显示随机分配的 p 值分布均匀,聚类后 p 值分布高度偏斜(几乎全部为 0.05 或更小)

这里的 k-means 或 ANOVA 没有什么特别之处——使用非参数检验或逻辑回归和决策树,您会看到类似的效果,即使只取最小值/最大值。

在对数据施加某种结构之后,您无法测试某种结构是否存在,因为它显然存在!因此,验证聚类算法的性能是很棘手的,尤其是在数据没有标记的情况下。但是,有一些“内部验证”方法,或者在不使用外部数据源的情况下测量集群的质量。他们通常关注集群的紧凑性和可分离性。Lui 等人的这篇评论(2010)可能是一个很好的起点。

你真正的问题是数据窥探。如果根据输入数据集本身将观察分配给组(集群),则无法应用 ANOVA 或 KW。您可以做的是使用诸如Gap statistic之类的东西来估计集群的数量。

另一方面,窥探的 p 值向下偏斜,因此如果 ANOVA 或 KW 测试结果不显着,则“真实”p 值更大,您可能会决定合并集群。

如果您抛弃通常的空分布,我认为您可以应用这种方法(即使用统计数据,例如 F-statistics 或 t-statistics 或其他)

您需要做的是从您的 null 为真的情况进行模拟,应用整个过程(聚类等),然后每次计算任何统计数据。应用在许多模拟中,您将得到一个在 null 下的统计分布,您的样本值可以与该分布进行比较。通过将数据窥探结合到计算中,您可以解释其影响。

[或者,也许可以开发一种基于重采样的测试(无论是基于排列/随机化还是自举)。]

不完全是答案,而是关于如何找到解决方案的建议。

我在考虑那个集群问题。该测试将需要从完整数据集中进行采样并导出 kmeans,并查看相同的 kmeans 是否出现在来自各种样本的分布(例如 clustergram)中(通常 kmeans 本身会根据其起点产生不同的 kmeans。一种算法可以磨练像 clustergram 这样的多次迭代的相同 kmeans 可能更合适)。就像从统计学中的样本中得出平均值一样。但是 k 均值对其集群具有不同的比例大小,但关键是相同的均值是否出现在分布中。

但是如何比较集群中各种变量的分布呢?通常,系数来自基于给定 y 的协方差矩阵(或预测矩阵?)。这没有y。所以我想知道是否可以使用 zca(甚至 pca)对每个集群进行白化。一些特征值。使用它来推导某种类型的有意义的手段或系数。其他人有一套手段。然后需要导出标准误差。标准误差肯定基于协方差矩阵(再次替代 pca 或 zca)?但我必须重新审视标准错误。我相信标准误差是标准偏差的函数,但不是样本的方差,而是平均值的方差

编辑:

对于统计显着性

使用此处讨论的间隙统计方法 http://www.datanovia.com/en/lessons/determining-the-optimal-number-of-clusters-3-must-know-methods/#at_pco=wnm-1.0&at_si= 609664423560aa01&at_ab=per-2&at_pos=0&at_tot=1

我还推荐这篇文章来讨论其他相关措施 https://medium.com/@haataa/how-to-measure-clustering-performances-when-there-are-no-ground-truth-db027e9a871c