【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信本男生和其他大學男生的視力狀況相比沒有異常。

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