如何在 python 中执行两个样本 t 检验
双样本 t 检验用于检验两个总体的均值是否相等。
本教程介绍如何在 Python 中执行两个样本 t 检验。
示例:Python 中的两个 t 检验示例
研究人员想知道两种不同的植物物种是否具有相同的平均高度。为了测试这一点,他们收集了每个物种 20 种植物的简单随机样本。
按照以下步骤执行两个样本 t 检验,以确定两种植物物种的高度是否相同。
第 1 步:创建数据。
首先,我们将创建两个表来保存每组 20 株植物的测量值:
import numpy as np group1 = np.array([14, 15, 15, 16, 13, 8, 14, 17, 16, 14, 19, 20, 21, 15, 15, 16, 16, 13, 14, 12]) group2 = np.array([15, 17, 14, 17, 14, 8, 12, 19, 19, 14, 17, 22, 24, 16, 13, 16, 13, 18, 15, 13])
步骤 2:执行两个样本 t 检验。
接下来,我们将使用 scipy.stats 库中的ttest_ind() 函数来执行两个示例 t 检验,该函数使用以下语法:
ttest_ind(a, b, equal_var=True)
金子:
- a:第 1 组观察结果示例表
- b:第 2 组观察结果示例表
- equal_var:如果为 true,则执行假设总体方差相等的标准独立 2 样本 t 检验。如果为 false,则执行Welch 的 t 检验,该检验不假设总体方差相等。默认情况下这是正确的。
在执行检验之前,我们需要决定是否假设两个总体具有相等的方差。一般来说,如果最大样本方差与最小样本方差之比小于 4:1,我们可以假设总体具有相等方差。
#find variance for each group
print(np.var(group1), np.var(group2))
7.73 12.26
最大样本方差与最小样本方差之比为 12.26/7.73 = 1.586 ,小于 4。这意味着我们可以假设总体的方差相等。
因此,我们可以继续进行等方差的双样本 t 检验:
import scipy.stats as stats #perform two sample t-test with equal variances stats.ttest_ind(a=group1, b=group2, equal_var=True) (statistic=-0.6337, pvalue=0.53005)
t 检验统计量为-0.6337 ,相应的双尾 p 值为0.53005 。
第 3 步:解释结果。
此特定双样本 t 检验的两个假设是:
H 0 : µ 1 = µ 2 (两个总体平均值相等)
H A : µ 1 ≠ µ 2 (两个总体平均值不相等)
由于我们的检验的 p 值(0.53005)大于 alpha = 0.05,因此我们无法拒绝检验的原假设。我们没有足够的证据表明两个种群之间的平均株高不同。