python进行t检验示例

您所在的位置:网站首页 显著性t-test python进行t检验示例

python进行t检验示例

2024-07-08 14:01| 来源: 网络整理| 查看: 265

  t检验主要是针对正态总体均值的假设检验,即检验样本的均值与某个值的差异,或者两个样本的均值是否有差异等。其不需要事先知道总体的方差,并且在少量样本情况下也可以进行检验。python进行t检验使用scipy包的stats模块 一、单样本t检验

示例:已知某工厂生产的一种点火器平均寿命大于1200次为合格产品,现在质检部随机抽取了20个点火器进行试验,结果寿命分别为(单位:次): 809, 1250, 689, 1541, 995, 1234, 1024, 920, 777, 2510, 2301, 540, 850, 895, 1024, 1000, 1025, 863, 875, 1105

单样本t检验用stats.ttest_1samp函数,如下:

from scipy import stats import numpy as np #单样本t检验 sample=[809, 1250, 689, 1541, 995, 1234, 1024, 920, 777, 2510, 2301, 540, 850, 895, 1024, 1000, 1025, 863, 875, 1105] sample = np.asarray(sample) m = np.mean(sample) print("样本均值:",m) #单样本检验用stats.ttest_1samp r = stats.ttest_1samp(sample, 1200, axis=0) print("statistic:", r.__getattribute__("statistic")) print("pvalue:", r.__getattribute__("pvalue"))

结果:

样本均值: 1111.35 statistic: -0.8043067483882222 pvalue: 0.4311691484589055

在这里统计量statistic1200。也就是我们接受产品是合格的。

 

二、两个独立样本t检验

示例:现市场上有2种蓄电池,为研究哪种蓄电池比较好,分别抽取两种蓄电池若干件,测试其续航时间,结果如下(单位:h):

A型蓄电池5.5     5.6     6.3     4.6     5.3     5.0     6.2     5.8     5.1     5.2     5.9B型蓄电池3.8     4.3     4.2     4.0     4.9     4.5     5.2     4.8     4.5     3.9     3.7     4.6

根据抽样结果分析两种蓄电池续航是否有显著差异(alpha=0.1)。

独立2个样本t检验用stats.ttest_ind函数,如下:

from scipy import stats import numpy as np #独立2个样本t检验 sample1=[5.5, 5.6, 6.3, 4.6, 5.3, 5.0, 6.2, 5.8, 5.1, 5.2, 5.9] sample2=[3.8, 4.3, 4.2, 4.0, 4.9, 4.5, 5.2, 4.8, 4.5, 3.9, 3.7, 4.6] sample1 = np.asarray(sample1) sample2 = np.asarray(sample2) r = stats.ttest_ind(sample1, sample2) print("statistic:", r.__getattribute__("statistic")) print("pvalue:", r.__getattribute__("pvalue"))

结果:

statistic: 5.484377451921326 pvalue: 1.9279192737974777e-05

由statistic=5.484377451921326大于0可以知道在样本统计上A型的均值比B型的大,事实上样本A均值为5.5,样本B的均值为4.37。另外pvalue=1.9279192737974777e-05远小于0.1,由此我们拒绝A的均值与B的均值相等,也就是说A型蓄电池的续航均值明显比B型蓄电池好,即A型蓄电池比B型蓄电池要好。

这里我们假设两个总体有方差齐性,当不确定两总体方差是否相等时,可以先利用levene检验,检验两总体是否具有方差齐性。

r = stats.levene(sample1,sample2) print(r)

结果为LeveneResult(statistic=0.09936227113762626, pvalue=0.7557072345826116),pvalue>0.05说明具有方差齐性,假如不具有方差齐性,进行t检验时需要加上参数equal_val并设定为False。如下:

stats.ttest_ind(sample1, sample2, equal_var=False)

 

三、成对样本t检验

成对样本t检验,是针对成对的数据做的检验,比如比较两种测量方法的差异,每对数据是针对同一个对象的测量。

示例:现有2种血压计,为研究其测量性能是否有显著差异,分别使用这两种血压计测量15个人的血压值,结果如下:

受测人编号123456789101112131415血压计A68851237488128631151109399758968140血压计B60881327095115741151218696719670143

这里数据都是成对的,使用stats.ttest_rel进行成对数据的t检验。

from scipy import stats import numpy as np #成对样本t检验 sample1=[68, 85, 123, 74, 88, 128, 63, 115, 110, 93, 99, 75, 89, 68, 140] sample2=[60, 88, 132, 70, 95, 115, 74, 115, 121, 86, 96, 71, 96, 70, 143] sample1 = np.asarray(sample1) sample2 = np.asarray(sample2) r = stats.ttest_rel(sample1,sample2) print("statistic:", r.__getattribute__("statistic")) print("pvalue:", r.__getattribute__("pvalue"))

结果:

statistic: -0.492910604649229 pvalue: 0.6297167086230713

从结果上看,statistic



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3