我该使用哪个scipy统计检验来比较样本均值?

13 投票
1 回答
9187 浏览
提问于 2025-04-18 15:31

假设样本的数量不相等,我该用什么方法来比较样本的平均值,以下是一些情况(如果有错误请指正):

正态分布 = 是方差齐性 = 是

scipy.stats.ttest_ind(sample_1, sample_2)

正态分布 = 是方差齐性 = 否

scipy.stats.ttest_ind(sample_1, sample_2, equal_var = False)

正态分布 = 否方差齐性 = 是

scipy.stats.mannwhitneyu(sample_1, sample_2)

正态分布 = 否方差齐性 = 否

???

1 个回答

10

快速回答:

正态分布 = 是方差齐性 = 否样本数量 > 30-50

scipy.stats.ttest_ind(sample1, sample2, equal_var=False)

详细回答:

如果你查看中心极限定理,它的意思是(来自维基百科):“在概率论中,中心极限定理(CLT)指出,在某些条件下,足够多的独立随机变量的算术平均值,如果每个变量都有明确的(有限的)期望值和有限的方差,那么这个平均值将大致呈正态分布,无论原始分布是什么样的。”

所以,虽然你的总体不是正态分布,但如果你的样本足够大(超过30或50个样本),那么这些样本的平均值就会呈现正态分布。因此,你可以使用:

scipy.stats.ttest_ind(sample1, sample2, equal_var=False)

这是一个双侧检验,用于检验两个独立样本的平均值(期望值)是否相同。选择equal_var = False时,它会执行Welch的t检验,这种检验不假设两个样本的方差相等。

撰写回答