Python中的Welch's T检验
Python 是一种功能强大的语言,可用于执行各种统计检验。其中一项统计检验就是 Welch's T 检验。
当有两个方差相等的数据集,并且需要找出它们的均值是否相同,那么使用双样本 t 检验就足够明智。但是,如果两个数据集的方差不同,则应使用 Welch's T 检验来比较均值。
语法
stats.ttest_ind(dataset_one, dataset_two, equal_var = False/True)
这里,ttest_ind 是执行 Welch's T 检验的函数。它接受三个参数:
第一个数据集作为数组或列表
第二个数据集作为数组或列表
一个布尔变量,指示方差是否相等
此外,该函数在输出中返回两个值,即检验统计量值和 p 值。
算法
步骤 1 - 导入 Python 的 numpy 和 scipy 库。
步骤 2 - 使用 array() 方法形成两个数据集。
步骤 3 - 使用 var() 方法检查两个数据集的方差是否相同。如果方差比大于 4:1,则不能假设方差相等,并且可以转到下一步执行 Welch's T 检验。
步骤 4 - 使用 stats.ttest_ind() 方法找出 p 值。如果 p 值小于 0.05,则假设均值差异显著。
示例 1
在本例中,我们将采用两个包含两种不同物种的 10 株植物叶片数量的数组,并对其进行 Welch's T 检验。这是使用 stats.ttest_ind() 函数完成的,但首先,我们检查两个数组的方差是否相同。
这是要检验的假设 -
零假设 (ho) - u1 = u2,即这两个数据集的均值大致相等。
备择假设 (h1) - u1≠ u2,即这两个数据集的均值存在显著差异。
#import the numpy and scipy libraries import numpy as np import scipy.stats as stats #form two datasets as array_one and array_two array_one = np.array([25, 55, 59, 24, 21, 54, 32, 43, 54, 65]) array_two = np.array([23, 12, 24, 10, 18, 17, 22, 15, 16, 25]) #find out the ratio of variances of the two datasets val = (np.var(array_one)/ np.var(array_two)) #if the ratio is greater than 4, perform the Welch's test if(val>4): print(stats.ttest_ind(array_one, array_two, equal_var = False))
输出
Ttest_indResult(statistic=4.602699733067644, pvalue=0.0008049287678035495)
由于 p 值小于 0.05,因此我们可以得出结论,这两个数据集之间的均值差异相当大。
示例 2
在本例中,我们将采用两个包含两位击球手在 10 场比赛中得分值的数组,并对其进行 Welch's T 检验。
#import the numpy and scipy libraries import numpy as np import scipy.stats as stats #form two datasets as batsman_one and batsman_two batsman_one = [30, 91, 0, 64, 42, 80, 30, 5, 117, 71] batsman_two = [53, 46, 48, 50, 53, 53, 58, 60, 57, 52] #find out the ratio of variances of the two datasets val = (np.var(batsman_one)/np.var(batsman_two)) #if the ratio is greater than 4, perform the Welch's test if(val>4): print(stats.ttest_ind(batsman_one, batsman_two, equal_var = False))
输出
Ttest_indResult(statistic=0.0, pvalue=1.0)
由于返回的 p 值不仅大于 0.5,而且等于 1.0,因此我们可以得出结论,这两个数据集的均值相同。
结论
即使方差相等,Welch's T 检验也比双样本 t 检验提供更好的结果,并且错误率更低。因此,无论方差值如何,都可以直接使用 Welch's T 检验。但是,建议将其用于具有偏态分布的大型数据集。此外,它不仅限于 Python,R 和 Julia 等语言也支持 Welch's T 检验。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP