使用双样本 t 检验对两组平均值进行统计比较,看看它们之间是否存在显着差异。该检验经常用于科学研究,以确定两组在连续变量的基础上是否存在显着差异。在本文中,我们将了解如何使用 Python 的 scipy.stats 模块执行两个样本 t 检验。
在继续实现之前,让我们首先了解双样本 t 检验的理论基础。该检验假设两个样本总体呈正态分布且方差相似。两组均值相等是原假设,而两组均值不相等是备择假设。检验统计量是通过将两组之间的平均值差异除以标准误差差异得出的。我们拒绝原假设,并得出结论:如果估计的 t 值高于临界值,则两组的均值显着不同。
我们来看看Python中进行双样本t检验的方法。我们将需要 scipy.stats 模块,它有助于提供一个名为 ttest_ind 的函数。它采用两个数组作为代表两个样本的输入,并返回 t 和 p 值。
导入必要的库将是第一步。要在 Python 中执行两个样本 T 检验,我们需要导入 NumPy 和 SciPy 库。统计运算是使用 SciPy 库进行的,而数学运算是使用 NumPy 库进行的。
import NumPy as np from scipy.stats import ttest_ind
接下来让我们创建两个具有相同均值和标准差的随机样本 -
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)
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 检验假设两组的方差相等。如果该假设被打破,则可以使用韦尔奇 t 检验,它是 t 检验的一种变体,不假设方差相等。 Welch t 检验的 ttest_ind_from_stats 方法也可在 scipy.stats 模块中使用。两组的平均值、标准差和样本量是该函数的输入。
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 检验做出各种假设,包括正态性和等方差,应在测试运行之前对其进行验证。此外,在解释结果时,应始终考虑正在考虑的具体研究问题以及研究的限制。
以上是如何在Python中进行双样本T检验?的详细内容。更多信息请关注PHP中文网其他相关文章!