閱讀提示
本文將從多個方面介紹假設檢驗中的幾種常見檢驗方法,t檢驗、Z檢驗、單樣本的Z檢驗等方法。
一、假設檢驗
假設檢驗,也稱爲顯著性檢驗,是通過樣本量的統計量來判斷與總體參數之間是否存在差異(差異是否顯著)。即我們對總體參數進行了一定的假設,然後通過收集到的樣本數據,來驗證我們之前做出的假設(總體參數)是否合理。在假設檢驗中,我們會建立兩個完全對立的假設,分別爲:
- 原假設
- 備擇假設
然後通過對樣本信息進行判斷,選擇接受原假設還是拒絕原假設(接受備擇假設)
流程: 建立原假設與備擇假設→假設原假設爲真→判斷→接受原假設還是備擇假設
二、小概率事件
一次實驗中出現概率很小的事件,並且一般不會出現的事件,也就是說違反邏輯與常規的結論,就是小概率事件。一旦小概率事件發生,就有理由拒絕原假設。
三、中心極限定理
樣本的均值會落在任一區域,但概率不同。在以均值爲中心,一倍的標準差範圍內可涵蓋68%的數據;兩倍的標準差範圍內可涵蓋95%的數據;三倍的標準差範圍內可涵蓋99.7%的數據。
四、P-Value與顯著性水平
P值代表的是支持原假設的概率,如果P < 0.05,就拒絕原假設。
五、假設檢驗的步驟
1、設置原假設和備擇假設
2、設置顯著性水平α(通常選擇0.05)
3、根據問題選擇不同的假設檢驗方法
4、計算統計量,並獲得P值
5、根據P與α的值,判斷是否接受原假設
六、Z檢驗
服從正態分佈、總體標準差已知。
上式可以理解爲: 樣本均值-總體均值(也就是他們之間的距離) 除以一個樣本標準差,得到的就是他們之間的距離等於幾倍的標準差,如果大於2,也就是說偏移超過了2倍的標準差,則落入了拒絕域中。其中本均值分佈的標準差由中心極限定理給出
舉個簡單的例子:抽樣出的五批牛奶冰點溫度分別爲**-0.547, -0.532, -0.548, -0.531, -0.535**,而天然牛奶的冰點溫度服從正態分佈,均值爲-0.545℃,標準差爲0.008℃,如果摻水則冰點溫度會上升且逐漸趨於0℃
Z檢驗案例:
import numpy as np
from scipy import stats
# 設定抽樣的5批牛奶冰點溫度
a = np.array([-0.547, -0.532, -0.548, -0.531, -0.535])
# 設定總體的均值和標準差
mean, std = -0.545, 0.008
# 計算樣本均值
sample_mean = a.mean()
# 計算標準誤差(總體標準差/根號下 樣本總體數目)
se = std / np.sqrt(len(a))
# Z統計量
Z = (sample_mean - mean) / se
print('Z統計量爲{}'.format(Z))
# P值
P = 2 * stats.norm.sf(abs(Z)) # 這裏stats.norm.sf() 是返回Z右邊部分的面積 所以要 * 2 得到的就是Z左右兩邊的面積和
print('P值爲{}'.format(P))
輸出:
Z統計量爲1.788854381999821
P值爲0.07363827012030438
如果這樣看的話,P>0.05,所以我們要接受原假設,也就是說這批牛奶符合標準,沒有摻水, 但這個問題實際上是一個單邊檢驗, 我們需要考慮的只是溫度大於冰點溫度的那一部分牛奶,而小於冰點溫度的牛奶屬於正常牛奶,不摻水。
越往左,原假設越被接受,那要的就是右邊的面積當處在最左邊的時候,P值接近爲1 。
七、t檢驗
案例:員工對老闆說商品的日均銷量一定會到達 50,一週下來銷售情況爲: 50, 48, 50, 47, 46, 48, 51,員工稱是因爲波動造成的,自己的承諾可靠
注:這還是一個單邊檢驗,只考慮大於50的,不考慮沒達到50的情況。
t檢驗與Z檢驗的區別在於t檢驗總體的標準差是未知的
t統計量服從t分佈,隨着自由度(樣本容量 - 1)的增大,t分佈會逐漸趨向於正態分佈。
t檢驗案例:
# 設定商品銷量
b = np.array([48, 50, 47, 46, 48, 51])
# 樣本容量
n = len(b)
# 設定樣本均值和樣本標準差
mean, std = b.mean(), b.std(ddof=1)
# 計算標準誤差
# 如果是Z檢驗的話那就是用總體標準差除以根號n,但t檢驗因爲總體標準差是未知的,所以用樣本的標準差來代替
se = std / np.sqrt(n)
# t檢驗
t = (mean - 50) / se
print('t統計量爲{}'.format(t))
# P值
P = stats.t.cdf(t, df= n-1)
print('P值爲{}'.format(P))
輸出:
t統計量爲-2.1926450482675697
P值爲0.03991506316282129
八、比率檢驗
案例: 預期將轉換率提升到10%,一週後廣告點擊500次,轉換用戶45人,是否完成任務了?
比率檢驗條件:
- 需求爲總體比率的檢驗
- 樣本容量n ≥ 30
- np ≥ 5 且 n(1-p) ≥ 5 (P爲樣本比率)
- 廣告是否轉換 服從二項分佈,當n較大的時候二項分佈近似於正態分佈
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ZH0nozCy-1588658726307)(G:\md文件\typora圖片\比率檢驗.png)]
比率檢驗案例:
原假設: π ≥ πo 即 π ≥ 10% (任務完成)
備擇假設: π < 10% (任務失敗)
# 樣本比率
p = 45 / 500
# 總體比率
pi_0 = 0.1
# 樣本容量
n = 500
# Z統計量
Z = (p-pi_0) / np.sqrt(pi_0 * (1 - pi_0) / n)
print('Z統計量{}'.format(Z))
P = stats.norm.cdf(Z) # sf是取右邊的面積,cdf是取左邊的面積
print('P值{}'.format(P))
輸出:
Z統計量-0.7453559924999305
P值0.22802827012512783
此時, P > 0.05 ,所以我們沒有理由拒絕原假設,也就是不能判斷是否完成任務,需要進一步觀察。
九、總結
假設檢驗貫穿整個數據分析工作,還存在於A/B測試等多個領域,本文提到的只是很小很小的一部分,其餘知識點還需要各位讀者總結與補充,感謝閱讀。