Python中的韦尔奇 t 检验
Welch's t-Test:两个样本 t-Test 用于比较两个不同独立数据集的均值。但是我们可以对具有相同方差的那些数据组应用双样本 T 检验。现在要比较具有不同方差的两个数据组,我们使用 Welch 的 t 检验。它被视为双样本 T 检验的参数等效项。
用户需要安装并导入以下库以在Python中执行 Welch 的 t-Test:
- scipy
- 麻木的
安装上述所有软件包的语法:
pip3 install scipy numpy
进行 Welch 的 t 检验是一个循序渐进的过程,如下所述,
第一步:导入库。
第一步是导入上面安装的库。
Python3
# Importing libraries
import scipy.stats as stats
import numpy as np
Python3
# 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])
Python3
# 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))
Python3
# 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))
第 2 步:创建数据组。
让我们考虑一个例子,给定两个样本数据,每个数据包含一个班级 10 个学生的身高。我们需要检查两个不同班级的学生是否具有相同的平均身高。我们可以使用 numpy.array() 方法创建数据组。
Python3
# 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])
第三步:检查方差。
在实际进行 Welch 的 t 检验之前,我们需要确定给定的数据组是否具有相同的方差。如果较大的数据组与较小的数据组的比例大于 4:1,那么我们可以认为给定的数据组具有不相等的方差。要找到数据组的方差,我们可以使用以下语法,
句法:
print(np.var(data_group))
Here,
data_group: The given data group
Python3
# 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 的 t 检验。
第 4 步:进行 Welch 的 t 检验。
句法:
ttest_ind(data_group1, data_group2, equal_var= False)
Here,
data_group1: First data group
data_group2: Second data group
equal_var = “False”: The Welch’s t-test will be conducted by not taking into consideration the equal population variances.
例子:
Python3
# 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,因此我们可以拒绝测试的原假设以及两种学生的平均考试成绩之间的差异非常显着的结论。