Python Welch’s t检验

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-test的函数。它接受三个参数,

  • 第一个数据集,可以是数组或列表

  • 第二个数据集,可以是数组或列表

  • 一个布尔变量,指示方差是否相等

此外,该函数在输出中返回两个值,即检验统计值和p值。

步骤

  • 步骤1 - 导入Python的numpy和scipy库。

  • 步骤2 - 使用array()方法形成两个数据集。

  • 步骤3 - 使用var()方法检查两个数据集的方差是否相等。如果方差的比值大于4:1,则不能假定方差相等,我们可以进入下一步执行Welch’s t-test。

  • 步骤4 - 使用stats.ttest_ind()方法找到p值。如果p值小于0.05,则假设两个样本的均值差异显著。

示例1

在这个例子中,我们将取两个包含两个不同物种的10株植物叶片数量的数组,并对它们执行Welch’s t-test。这是使用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场比赛中得分的数组,并对它们进行韦尔奇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,我们可以得出结论,这两个数据集的均值相同。

结论

相比于双样本t检验,Welch’s t检验结果更好,即使方差相等也能保持最小的误差率。因此,可以直接使用Welch’s t检验,而不受方差值的影响。然而,建议在具有偏斜分布的大型数据样本中使用。此外,Welch’s t检验不仅限于Python,还有R和Julia等语言也支持。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程