两个集群的 t 检验 Python

t-test for two clusters Python

我正在做 kmeans 聚类,想测试结果聚类在统计上是否不同。在 3 级聚类中,我先用聚类 1 测试聚类 0,然后用聚类 2 测试。然后我用聚类 3 测试聚类 2。我尝试应用 t 检验聚类,如以下代码所示。如您所知,簇具有不同的长度。我对逻辑感到困惑?我应该使用 p>0.05 还是 p<0.05。那么True和False放在哪里呢?

  def compare_2_groups(ar1,ar2):
    s,p=ttest_ind(ar1,ar2)
    #if p>0.05:
    if p<0.05:
        return False
    else:
        return True

即使 ar1 和 ar2 的长度不同,此过程也应该有效。 p 值结果表示证据强度反对原假设,即两个聚类具有相同的中心,其中 p 值越小表示证据越强。两条建议:

  • 重命名函数以反映测试的性质,例如“are_group_centers_equal”
  • 如果使用此名称return如果 p <(您的阈值)则为假,否则为真

如果您选择一个具有相反含义的名称“are_group_centers_different”,则反转阈值测试的逻辑,returning True if p < (threshold).