Python中的Welch’s t-测试
Welch’s 的T检验:双样本T检验用于比较两个不同的独立数据集的平均值。但我们可以对那些具有相同方差的数据组采用双样本T检验。现在,为了比较具有不同方差的两个数据组,我们使用Welch’s T检验。它被认为是双样本T检验的参数化等价物。
用户需要安装并导入以下库,以便在Python中进行Welch’s t检验。
安装上述所有软件包的语法:。
pip3 install scipy numpy
进行Welch’s t检验是一个循序渐进的过程,下面将介绍这些步骤。
第1步:导入库。
第一步是导入上面安装的库。
# Importing libraries
import scipy.stats as stats
import numpy as np
第2步:创建数据组。
让我们考虑一个例子,我们得到两个样本数据,每个样本包含一个班级的10个学生的身高。我们需要检查两个不同班级的学生是否有相同的平均身高。我们可以使用numpy.array()方法创建数据组。
# Creating data groups
data_group1 = np.array([14, 15, 15, 16, 13, 8, 14,
17, 16, 14, 19, 20, 21, 15,
15])
data_group2 = np.array([36, 37, 44, 27, 24, 28, 27,
39, 29, 24, 37, 32, 24, 26,
33])
第3步:检查差异。
在实际进行Welch’s t检验之前,我们需要找到给定的数据组是否具有相同的方差。如果大数据组与小数据组的比例大于4:1,那么我们可以认为给定的数据组具有不平等的方差。为了找到一个数据组的方差,我们可以使用下面的语法。
语法:
print(np.var(data_group))
其中, data_group是给定的数据组
# Python program to display variance
# of data groups
# Import library
import scipy.stats as stats
import numpy as np
# Creating data groups
data_group1 = np.array([14, 15, 15, 16, 13, 8, 14,
17, 16, 14, 19, 20, 21, 15,
15])
data_group2 = np.array([36, 37, 44, 27, 24, 28, 27,
39, 29, 24, 37, 32, 24, 26,
33])
# Print the variance of both data groups
print(np.var(data_group1), np.var(data_group2))
输出:
在这里,比例大于4:1,因此方差是不同的。因此,我们可以应用Welch’s 的t检验。
步骤4:进行Welch’s 的t检验。
语法:
ttest_ind(data_group1, data_group2, equal_var= False)
其中,
data_group1: 第一组数据
data_group2: 第二组数据
equal_var = “False”。在进行Welch’s t检验时,将不考虑人口变异量相等的情况。
示例:
# Python program to conduct Welch's t-Test
# Import library
import scipy.stats as stats
import numpy as np
# Creating data groups
data_group1 = np.array([14, 15, 15, 16, 13, 8, 14,
17, 16, 14, 19, 20, 21, 15,
15])
data_group2 = np.array([36, 37, 44, 27, 24, 28, 27,
39, 29, 24, 37, 32, 24, 26,
33])
# Conduct Welch's t-Test and print the result
print(stats.ttest_ind(data_group1, data_group2, equal_var = False))
输出:
对输出的解释:
检验统计量为-8.658,相应的p值为2.757e-08。这里的P值小于0.05,因此我们可以拒绝测试的无效假设,并得出结论:两类学生的平均考试分数之间的差异是相当显著的。