1. 程式人生 > 其它 >python Z檢驗

python Z檢驗

技術標籤:python資料科學python資料分析機器學習

一.引言
  在不同公司各部門,往往有著一定的統計機制,比如平常上班時的打卡考勤,再比如工廠每天加工產品的數量等等,這些資料往往都有較為明確的記錄,一方面是為了留存備查,另一方面對日常工作具有直接性的指導意義。
  這種指導性意義體現在哪裡呢?Z檢驗就是個不錯的例子:某工廠每天都會統計生產的產品數量,測出每天生產的平均值為100,標準差為7.9,預設資料服從正態分佈,現抽取最近9天的生產資料,分別是:98,86,113,96,105,93,92,97,91.

import numpy as np
sample = np.array(
[98,86,113,96,105,93,92,97,91]) sample_mean = sample.mean() print(sample_mean)

96.77777777777777

結果是96.8,比總體的平均值100要少了3,老闆看了很生氣認為存在員工偷懶和管理疏忽的情況,但是生產部門也會找理由:總體平均值是100,但是每天的生產量都會有誤差,這幾天的平均值低不能代表什麼啊!
  那麼,到底誰的說法更加可靠呢?在這裡,我們引入Z檢驗,實現用資料來說話。

二.Z檢驗原理
Z檢驗需要滿足以下幾個條件:
1.總體是正態分佈
2.樣本數量足夠大(一般大於30即可)
3.總體方差(或標準差)已知
其中,條件1和條件3只需滿足一個即可

做Z檢驗,首先要計算出Z值,Z值的計算服從一下的公式:

`X:樣本均值
μ0:總體均值
S:總體標準差
n:樣本容量
  其中,S除以根號n就是標準誤差,X-μ0就是總體均值與樣本均值之間的差距,因而Z就是求總體均值與樣本均值之差相當於幾個標準誤差。
  通過Z,我們就能夠求出支援假設的P-Value,也就是P值,以下我們介紹一下假設和P值的概念。

三.假設
假設分為原假設備擇假設,原假設與備擇假設是對立的,我們一般將原假設用H0來表示,將備擇假設用H1來表示,舉個例子:
如果假設是員工沒有偷懶,那麼備擇假設就是員工偷懶了;如果假設是某一資料集的某指標的均值為50,那麼備擇假設就是該資料集該指標的均值不是50

假設其實運用的就是數學上的反證法,先假設原假設是成立的,通過一系列計算得出結論,從而支援原假設或者支援備擇假設。

四.P-Value
P-Value也稱為P值,是支援原假設的概率。
對於P值,我們提供相應的閾值α,只要P值能夠達到相應的閾值α,我們就有理由支援原假設,或者說沒有充分的理由否定原假設。
通常,我們認定α為0.05,這是由於標準正太分佈的特性決定的,在標準正太分佈中,置信區間在平均值±1.96*σ的範圍內擁有95%的置信度,而5%就由100%-95%而得來。

因此在此例子當中,我們的原假設為:工作效率正常
           備擇假設為:工作效率異常。

五.程式碼實現

import numpy as np
from scipy import stats
# 總體均值為100
mean = 100
# 總體方差為7.6
std = 7.6
# 形成樣本
sample = np.array([98,86,113,96,105,93,92,97,91])
# 計算樣本均值
sample_mean = sample.mean()
# 計算Z值
Z = (sample_mean - mean) / (std / np.sqrt(len(sample)))
# 通過Z計算P值
P = 2 * stats.norm.sf(abs(Z))
print(P)

0.2033980539504644

顯然,P值遠遠超過了0.05的閾值,所以我們就能夠支援我們的原假設,也就是工作效率正常了,我們沒有充足的理由證明原假設不成立,因此這幾天的工作效率維持在正常水平,老闆沒有理由譴責員工和管理層。