【Python】假设检验中单个样本t检验的Python实现过程

Python有一个很好的统计推断包。那就是scipy里面的stats.ttest_1samp实现了单样本t检验.

假设检验

假设检验(Hypothesis Testing)是数理统计学中根据一定假设条件由样本推断总体的一种方法,又称统计假设检验。其目的是用来判断样本与样本,样本与总体的差异是由抽样误差引起还是本质差别造成。假设检验不仅在统计学中应用广泛,在实际生活中也尤为重要。它是一种基本的统计推断形式,也是数理统计学的一个重要的分支。基于检验统计量T服从t分布的检验——t检验,亦称student t检验(Student’s t test)。由英国化学家、数学家、统计学家 William Sealy Gosset提出,他于1908年在Biometrika上公布t检验,但因其老板认为其为商业机密而被迫使用笔名(Student),于是就有了student t检验这一名称。其目的是用来判断两类样本在某一变量上的均值差异是否显著。
在这里插入图片描述

t检验计算

通过大量资料的调查,得知大学男生近视度数平均为405度,今测量本班男生近视度数分别为:210 150 225 300 270 500 600 300 425 350,已知标准差为150度,试问18信本男生的视力状况是否异常?取显著水平=0.05。
根据数理统计中的假设检验,具体步骤如下:
Step1:根据问题的要求提出原假设和备择假设;
Step2:选取T-统计量;
Step3:在给定的显著水平下,构造拒绝域,求出临界值;
Step4:根据给定的样本计算出统计量的观察值;
Step5:若统计量的观察值落入拒绝域,则拒绝,否则接受。
假设: H0:=0 ,H1: 0
已知X=1/10(210+150+225+300+270+500+600+300+425+350)=333,

计算得到t=1.64,查表得到临界值t/2(10)=2.262,因为1.64<2.262,所以接受,认为18信本男生的视力状况没有异常。

Python实现过程

1.0

from scipy import stats as ss
arr=[210, 150, 225, 300, 270, 500, 600, 300, 425, 350];
ss.ttest_1samp(arr,405 )

在这里插入图片描述
2.0
增加注释,增加平均值的计算,增加伴随概率的判断。
缺少t统计量的计算,代码需要一行一行计算,否则失去部分结果

from scipy.stats import ttest_1samp
import numpy as np    #导入数据包

arr = [210, 150, 225, 300, 270, 500, 600, 300, 425, 350];  #信本男视力情况

arr_mean = np.mean(arr)   #计算平均值
arr_mean     #输出

tset, pval = ttest_1samp(arr, 405)

print("p-values",pval)

if pval < 0.05:    # alpha value is 0.05 or 5%
   print(" 不接受")
else:
   print("接受")

在这里插入图片描述
3.0
增加t统计量的计算。
代码需要一行一行计算,否则失去部分结果。

from scipy.stats import ttest_1samp
import numpy as np    #导入数据分析包

arr = [210, 150, 225, 300, 270, 500, 600, 300, 425, 350];  #18信本男视力数据

arr_mean = np.mean(arr)   #计算平均值
arr_mean     #输出平均值

ttest_1samp(arr, popmean = 405)   #计算单个样本的t检验
#前一个为t统计量,后一个为伴随概率

print("p-values",pval) #输出伴随概率

if pval < 0.05:    # alpha value is 0.05 or 5%
   print(" 不接受")
else:
   print("接受")

在这里插入图片描述
4.0
可以直接输出结果。

from scipy.stats import ttest_1samp   #调入单样本t检验包
import numpy as np    #导入计算模块

arr = [210, 150, 225, 300, 270, 500, 600, 300, 425, 350];  #18信本男视力数据

arr_mean = np.mean(arr)   #计算平均值
print("arr_mean=", arr_mean)    #输出平均值

t,p=ttest_1samp(arr, popmean = 405)   #计算单个样本的t检验
#前一个为t统计量,后一个为伴随概率

print("t-values=",t)  #输出t统计量
print("p-values=",p) #输出伴随概率

if p < 0.05:    # 伴随概率p与显著水平α比较
   print("差异显著")     
else:
   print("差异不显著")

在这里插入图片描述

结果分析

由上述输出结果得到伴随概率为0.136,当显著水平取0.05时,伴随概率大于0.05,所以认为18信本男生的视力与大学男生平均视力405,没有显著差异。认为18信本男生和其他大学男生的视力状况相比没有异常。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章