假設檢驗
一、假設概念
假設總體均值爲μ,那麼實際抽樣的均值離μ越近意味着假設越合理,相反,實際抽樣均值離μ越遠意味着假設越不合理。其中,實際抽樣結果與假設的差異“程度”可以用概率值表示,概率值越大意味着越無差異。在實際中往往認爲設定一個P-value的閾值將差異程度判斷爲有差異或者無差異,這就是顯著性水平。
二、假設檢驗基本步驟
- 提出原假設和備擇假設
- 確定適當的檢驗統計量
- 規定顯著性水平
- 計算檢驗統計量的值
- 做出決策
三、顯著性水平與拒絕域
四、單樣本t檢驗
- 假設樣本服從t分佈,原假設爲總體均值等於μ0
- 備擇假設爲總體均值不等於μ0
- 先計算樣本均值x,樣本標準差σ
- 檢驗統計量如下爲t = (x-μ0)/(σ/√n)
- 根據計算出來的P值來判斷是否拒絕原假設,例如P值大於原顯著水平,則無法拒絕原假設,否則拒絕原假設,接受備擇假設。顯著性水平可以理解爲拒絕原假設的概率。這裏以0.05作爲判斷標準,若p值大於0.05 則表示接受原假設,否則拒絕原假設。
代碼實戰:
import pandas as pd
import statsmodels.api as sm
#單樣本t檢驗
tips = pd.read_csv('tips.csv')
print(tips['tip'].mean())#輸出該組數的均值
dl = sm.stats.DescrStatsW(tips['tip']) #首先定義要描述的組數據
lenth = len(tips['tip'])
result = dl.ttest_mean(3)#參數爲假設的樣本值
print(result,lenth)
結果:
2.99827868852459 #計算的均值
(-0.01943264142291187, 0.9845119176410584, 243.0)
結果1 爲t值,結果2爲p值,結果3爲數據長度-1
從結果中我們可以看到,p值大於0.05 所以,接受原假設,也就是之前咱們所填的參數 3。說明3 可以作爲該數據的均值。
五、雙樣本t檢驗
- 單樣本t檢驗是比較假設的總體平均數與樣本平均數的差異是否顯著
- 雙樣本t檢驗是比較兩個樣本的均值的差異是否顯著
- 在數據分析中,雙陽本t檢驗往往用於檢驗某二分類變量區分下的連續型變量是否有顯著差異
- 例如,男女收入水平是否有顯著差異、河南河北人均收入是否有顯著差異。
雙樣本t檢驗步驟
- 假設樣本服從t分佈
- 計算兩組樣本的均值
- 進行方差齊性檢驗
- 若方差齊,進行方差齊的雙樣本檢驗,若不齊,進行方差不齊的雙樣本檢驗。
上代碼:
#雙樣本t檢驗 檢測男女獲得小費的關係
tips = pd.read_csv('tips.csv')
tip_count = tips.groupby('sex').mean()['tip']
gender0 = tips[tips['sex']=='Female']['tip']#獲取女性的小費數據
gender1 = tips[tips['sex']=='Male']['tip']#獲取男性的小費數據
result = stats.levene(gender0,gender1)#對兩組數據進行方差齊性檢驗
result2 = stats.ttest_ind(gender0,gender1,equal_var=True)#equal_var=True 表示方差齊,爲False 方差不齊
print(result)
print(result2)
結果:
LeveneResult(statistic=1.9909710178779405, pvalue=0.1595236359896614) #這個pvalue>0.05表示兩個方差齊
Ttest_indResult(statistic=-1.3878597054212687, pvalue=0.16645623503456763)#這個pvalue>0.05表示兩個變量沒有明顯差異。
也就說明男女所獲得的小費並無明顯的差異,也就是獲得小費與性別沒有明顯關係。