k-means聚類分析後ANOVA的適當性
K-means 分析後的 ANOVA 表後的通知表明顯著性水平不應被視為均值檢驗,因為已根據歐幾里德距離導出聚類解決方案以使距離最大化。我應該使用什麼測試來顯示聚類變量的均值在聚類之間是否不同?我在 k-means 輸出提供的 ANOVA 表中看到了這個警告,但在一些參考資料中,我看到運行了事後 ANOVA 測試。我是否應該忽略 k-mean ANOVA 輸出並使用事後測試運行單向 ANOVA 並以傳統方式解釋它們?或者我只能暗示 F 值的大小以及哪些變量對差異的貢獻更大?另一個困惑是聚類變量不是正態分佈的,違反了方差分析的假設,那麼我可以使用 Kruskal-Wallis 非參數檢驗,但它假設相同的分佈。特定變量的集群間分佈似乎不一樣,有些是正偏態的,有些是負偏態的……我有 1275 個大樣本,5 個集群,10 個以 PCA 分數衡量的集群變量。
不!
您不得使用相同的數據來 1) 執行聚類和 2) 尋找聚類中的點之間的顯著差異。即使數據中沒有實際的結構,聚類也會通過將附近的點組合在一起來強加一個。這會縮小組內方差並增加組間方差,從而使您偏向誤報。
這種效果出奇的強烈。以下是從標準正態分佈中抽取 1000 個數據點的模擬結果。如果我們在運行方差分析之前將這些點隨機分配給五個組之一,我們會發現 p 值是均勻分佈的:5% 的運行在(未校正的)0.05 水平上顯著,1% 在 0.01 水平上顯著,等等。換句話說,沒有效果。然而,如果 $ k $ -means 用於將數據聚類為 5 組,我們幾乎每次都發現顯著效果,即使數據沒有實際結構。
這裡的 k-means 或 ANOVA 沒有什麼特別之處——使用非參數檢驗或邏輯回歸和決策樹,您會看到類似的效果,即使只取最小值/最大值。
在對數據施加某種結構之後,您無法測試某種結構是否存在,因為它顯然存在!因此,驗證聚類算法的性能是很棘手的,尤其是在數據沒有標記的情況下。但是,有一些“內部驗證”方法,或者在不使用外部數據源的情況下測量集群的質量。他們通常關注集群的緊湊性和可分離性。Lui 等人的這篇評論。(2010)可能是一個很好的起點。