Python 如何进行双样本t检验
介绍
统计学中使用双样本t检验来比较两组的均值,以确定它们是否在连续变量方面存在显著差异。该检验经常被用于科学研究中。在本文中,我们将学习如何使用Python的scipy.stats模块进行双样本t检验。
进行双样本t检验
在实施之前,首先让我们了解双样本t检验的理论基础。该检验假设两个样本总体服从正态分布且具有类似的方差。两组均值相等是零假设,不相等是备择假设。检验统计量是通过将两组之间的均值差异除以标准误差差异来计算的。如果估计的t值大于临界值,我们将拒绝零假设并得出两组均值存在显著差异的结论。
让我们来看看如何在Python中进行双样本t检验。我们将需要scipy.stats模块,它提供了一个名为ttest_ind的函数。该函数接受两个表示两个样本的数组作为输入,并返回t值和p值。
步骤1:导入所需库
首先,我们需要导入必要的库。要在Python中进行双样本t检验,我们需要导入NumPy库和SciPy库。在SciPy库中进行统计操作,在NumPy库中进行数学操作。
import NumPy as np
from scipy.stats import ttest_ind
步骤2:生成变量
接下来,让我们创建两个具有相同均值和标准差的随机样本 –
np.random.seed(42)
sample1 = np.random.normal(loc=10, scale=2, size=100)
sample2 = np.random.normal(loc=10, scale=2, size=100)
在这里,我们使用了np.random.normal函数生成了两个样本,每个样本的大小为100,均值为10,标准差为2。我们将随机种子设为42,以确保结果可复现。
现在,让我们进行t检验−
t_stat, p_value = ttest_ind(sample1, sample2)
步骤3:解释结果
ttest_ind函数返回两个值:t值和p值。t值通过两个样本的均值差来衡量,而p值则衡量差异的统计显著性。
最后,让我们输出结果−
print("t-value: ", t_stat)
print("p-value: ", p_value)
这将输出t值和p值 −
t-value: 0.086
p-value: 0.931
由于代码中的t值很小,可以得出结论:两个样本的平均值非常相近。由于p值很大,两个值之间的差异并不显著。
重要的是要记住,t检验假设两组的方差相等。如果假设被打破,可以使用Welch’s t-test进行非均方差的检验。scipy.stats模块中还提供了Welch’s t-test的ttest_ind_from_stats方法。该函数的输入是两组的均值、标准差和样本大小。
让我们看看如何在Python中进行Welch’s t-test
mean1, std1, size1 = 10, 2, 100
mean2, std2, size2 = 10, 3, 100
t_stat, p_value = ttest_ind_from_stats(mean1, std1, size1, mean2, std2, size2, equal_var=False)
print("t-value: ", t_stat)
print("p-value: ", p_value)
这将输出t值和p值−
t-value: -0.267
p-value: 0.790
在这种情况下,t值是负数,这意味着根据数据,样本1的均值略低于样本2的均值。然而,非常高的p值显示均值差异在统计上不显著。
结论
总而言之,双样本t检验是一种有效的统计工具,使我们能够比较两组的均值并决定它们是否在统计上显著不同。Python有许多用于执行t检验的库和函数,包括我们在本文中使用的scipy.stats模块。t检验有一些假设,包括正态分布和方差相等,应在进行检验之前进行验证。此外,在解释结果时应始终考虑特定的研究问题和研究的限制。