您當前的位置:首頁 > 收藏

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

作者:由 猴子 發表于 收藏時間:2018-05-23

看下面內容前,我假設你已經學習了前面的:如何用最通俗易懂的方式理解假設檢驗。並瞭解了假設檢驗的基本步驟:

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

下面我們透過一個案例來聊聊假設檢驗的第1種類型:單樣本檢驗。

“超級引擎”是一家專門生產汽車引擎的公司,根據政府釋出的新排放標準要求,引擎排放平均值要低於20ppm。(ppm是英文百萬分之一的縮寫,這裡我們只要理解為是按照環保要求汽車尾氣中碳氫化合物要低於20ppm)

這家公司製造出10臺引擎供測試使用,每一臺的排放水平如下:

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

怎麼知道,公司生產的引擎是否符合政府規定呢?如果你是這家公司的資料分析師,該怎麼辦呢?

1.描述統計分析

當我們開展調查研究並計算統計結果時,我們會在報告的第一部分進行描述統計分析,例如平均值和標準差。描述統計量是研究的核心。告訴我們研究中發生的情況,應該始終報告出來。

下面圖片我們看下這10臺引擎的描述統計分析。

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

上面圖片程式碼的解釋如下:

第一步,我們匯入常用的包資料分析包匯入

第二步,我們將樣本資料存放到pandas的一維陣列中

第三步,使用mean方法得到樣本平均值是17。17

使用std方法得到樣本的標準差是2。98

這裡要注意的是pandas計算的標準差公式中,預設除以的是n-1,也就是計算出的是樣本標準差,用途是用樣本標準差估計出總體標準差。

2.推論統計分析

推論統計分析報告中包括假設檢驗。

假設檢驗第1步:問題是什麼?

第一步,我們要明確問題是什麼:公司引擎排放是否滿足新標準。

根據這個問題我提出來下面兩個互為相反的假設。

零假設:公司引擎排放不滿足標準,也就是平均值>=20。這裡的20是政府規定新標準的最低可能值。

零假設總是表述為研究沒有改變,沒有效果,不起作用等,這裡就是不滿足標準。

備選假設:滿足標準,也就是平均值<20

現在零假設和備選假設幫助我們理清楚了問題是什麼。

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

假設檢驗根據檢驗型別的不同,後面計算的方法也不同。常見的假設檢驗有下面圖片中的3種類型。

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

1)單樣本檢驗

檢驗單個樣本的平均值是否等於目標值,例如某大學的學生平均身高是否大於全國平均身高167。1cm?

這裡的某大學的學生身高就是單個樣本,目標值就是全國平均身高。還有我們的汽車引擎例子,公司的汽車引擎排放單個樣本,目標值就是政府的新標準。

所以汽車引擎的檢驗型別是單樣本檢驗。

這是單個樣本的檢驗。當有多個樣本時,樣本又分為獨立樣本和相關樣本。所以對應的又分為獨立樣本檢驗和相關樣本檢驗。

2)相關樣本配對檢驗

例如,為了檢測減肥藥是否起作用,隨機抽樣出20名測試物件,記錄每個人服藥前和服藥後的體重。

這裡服藥前的體重是第一個樣本資料,服藥後的體重是第二個樣本資料。但是這兩組資料來自同一批測試物件。所以是相關樣本。

為什麼使用相關樣本呢?

相關樣本可以控制個體差異。也就是說,如果給某人帶來某種處理措施。下次再對同樣的人實施同一處理措施,這個人還會出現相同的差異。這樣我們判斷在同一條件下,兩種不同處理措施的效果,因為我們控制了個體差異。然後就可以使用更少的受試者,成本更低,花費更少,通常開支也更少。

相關樣本的缺點:就是有殘留效應。例如我發明了一種新的闖關遊戲教學方法,我想知道該方法對提高學習成績是否有效。

如果使用同一組學生來檢驗這一新的教學方法。第一節課用一種方式教他們資料分析,第二節課再用另一種方式教他們資料分析。

因為學生已經在第一節課學過資料分析的相關知識,那我們就不知道第二節課的結果是因為教學方式有效,還是學生已經學過相關的資料分析知識。

也就是說,第二次的測量結果會受到第一次處理措施的影響。

這時候就可以用兩個獨立樣本。

3)獨立雙樣本檢驗

獨立樣本的優點是沒有殘留效應,彌補了相關樣本的不足。因此,我們可以對一個組實施一種處理措施,並對另一組實施另一種處理措施。

獨立樣本的缺點是:

對於獨立樣本,我們需要更多的實驗資料,因為我們需要隨機地選擇兩組實驗資料來接受兩種處理措施。我們需要更大的樣本大小來儘量控制個體差異。意味著更加耗時間,通常開支也更多。

所以獨立樣本和相關樣本的優點和缺點是互補的。配對檢驗和雙樣本檢驗的方法我們會在後面課程中透過具體案例來講解。

我們先來看單樣本檢驗的案例:汽車引擎。

分佈型別

我們需要知道資料集的分佈是哪種型別。

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

分佈是指資料在統計圖中的形狀。將多個樣本平均值的分佈視覺化,叫做抽樣分佈。在抽樣分佈中,我們還要判斷抽樣分佈是哪種?因為抽樣分佈的型別,決定了後面計算p值的不同。

我們在之前的課程《抽樣分佈》中有講過。當樣本大小大於30時,符合中心極限定律,所以樣本平均值值分佈是正態分佈。當抽樣分佈是正態分佈時,橫軸是樣本平均值從小到大。中間位置是總體平均值。

但是,如果樣本容量n小於30,同時總體分佈近似正態分佈時,抽樣分佈符合t分佈。t分佈和正態分佈很像,隨著樣本大小n變大,t分佈趨近於正態分佈。

小樣本資料集沒有近似正態分佈時,抽樣分佈符合其他分佈。其他分佈的型別我們會在其他課程中用到的時候講到。

現在我們只需要關注抽樣分佈是正態分佈,和t分佈時需要滿足那些前提條件就可以。

在我們這個汽車引擎案例中,樣本大小是10(小於30),屬於小樣本。那小樣本的抽樣分佈是否滿足t分佈呢?因為t分佈還要求總體近似正態分佈,

由於我們沒有辦法知道總體的分佈,只能透過樣本資料集的分佈來看是否近似正態分佈。

所以我們現在的問題是要用某種技術手段看下樣本資料集的分佈長什麼樣。

在學技術的過程中,我們經常會遇到很多新的問題。但恰好這個世界上有個神器叫做搜尋引擎,任何問題只要在搜尋引擎中搜一下,答案自然就出來了。

其實,技術能力的差異本質上是學習能力的差異,會主動利用搜索引擎解決問題的人的成長就是比那些伸手黨成長的快,這也是造成雖然學的是同一門技術,但是工作幾年看看,不同的人薪水差別是很大的。

藉助我們這個如何檢視資料集的問題,我們學習下如何使用搜索引擎找到答案。在搜尋引擎中輸入你找問題的關鍵詞,我們就可以看到下面圖片中的搜尋結果。

在搜尋引擎結果頁面第一個網址裡面就是解決方案。

檢視資料集的分佈,我們這裡使用了python高階繪圖包Seaborn的distplot方法。這個方法可以直接得到資料集的直方圖和擬合曲線。

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

透過觀察上面資料集分佈圖,資料集近似正態分佈,滿足t分佈的使用條件,所以抽樣分佈是t分佈,自由度df=n-1=10-1=9。

檢驗方向

在確定檢驗型別中時,還需要明白一件事:所構建的是單尾檢驗還是雙尾檢驗(two tailed)。

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

1)單尾檢驗

檢驗的判斷標準落在抽樣分佈的哪一側,決定了是左尾檢驗還是右尾檢驗。具體用哪一側則取決於備選假設。

如果備選假設包含一個<符號,則使用左尾,判斷標準對應在抽樣分佈中的左邊黃色區域。

如果備選假設包含一個>符號,則使用右尾,判斷標準對應在抽樣分佈中的右邊黃色區域。

例如我們這個汽車引擎案例裡的備選假設是公司引擎排放滿足標準,也就是平均值u<20,備選假設裡面包含一個小於符合,所以屬於左尾檢驗。

下面圖片我們再看下雙尾檢驗

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

雙尾檢驗是將判斷標準一分為二位於抽樣分佈的兩側,根據圖中黃色區域對稱性,左側和右側各佔一半的判斷標準,也就是α/2

判斷是否需要使用雙尾檢驗的方法是:檢視備選假設。

如果備選假設包含一個不等號,則需要使用雙尾檢驗,這是因為你要找出引數的變化,而不是增減。

總結:問題是什麼?

在假設第一步問題是什麼,我們做了4件事情來明確問題。

第1件事情是提出零假設和備選假設。

零假設H0:公司引擎排放不滿足標準,也就是平均值u>=20。這裡的20是政府規定新標準的最低可能值。

備選假設H1:公司引擎排放滿足標準,也就是平均值u<20

第2件事情是確定檢驗型別。

因為我們的汽車引擎案例裡裡只有1個樣本,所以選擇單樣本檢驗。

第3件事情是抽樣分佈型別。

在我們這個汽車引擎案例中,抽樣分佈是t分佈。

第4件事情檢驗方向

因為備選假設是公司引擎排放滿足標準,也就是平均值u<20,所以我們使用單尾檢驗中的左尾檢驗

綜合以上分析,本次假設檢驗是單樣本t檢驗,單尾檢驗中的左尾。

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

假設檢驗第2步:證據是什麼?

有人說:統計學就是個p。此p可不像彼屁,可以一放了之。

作為假設檢驗的核心工具,它經常決定著一個發現的價值,一篇論文的成敗。

你一定忘不了做課題時為p歡喜為p憂的經歷:得到p小於5%時欣喜若狂,得到p大於5%時灰心傷氣。

但是,你真的懂p值嗎?它到底是什麼?

隨便翻開一本統計學課本,我們會看到這樣的定義:

p值是在假定原假設為真時,得到與樣本同樣或者更極端結果的機率。

你的反應多半會是:說人話。

在假設檢驗的第2步證據是什麼,就是要計算p值。用更直白的話來說,p值就是,在零假設成立前提下,得到樣本平均值的機率是多少?

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

當抽樣分佈是t分佈時,計算p值步驟也很簡單:

1)計算出標準誤差

標準誤差=樣本標準差除以樣本大小n的開方。這裡的樣本標準差是用來估計總體標準差的。

2)計算t值

t=(樣本平均值-總體平均值)/標準誤差

t值表示在抽樣分佈是t分佈中,樣本平均值距離總體平均值多少個標準誤差3)

根據t值,查詢t表格,就得到機率p值

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

不要為這幾個公式煩惱,你只需要理解p值是怎麼來的就可以,關於計算有很方便的工具一秒就能算出來。

下面我們用python快速計算出p值。

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

對於連續分佈,機率是圖中的面積。雙尾檢驗的P值是上面圖片中抽樣分佈中的灰色區域的面積。當抽樣分佈是t分佈時,根據t分佈的對稱性,左尾和右尾,也就是圖中兩塊灰色區域的面積相等各佔p的一半,也就是p/2。

所以當我們求出雙尾檢驗的p值後,自然可以得到左尾和右尾的p值是雙尾檢驗p值的一半。

這也是很多計算p值的工具不提供單尾檢驗的p值,只提供雙尾檢驗的p值。因為只要得到雙尾檢驗的p值,單位檢驗的p值也就得到了,那就是雙尾檢驗p值的一半。

前面我們已經計算出雙尾檢驗的p值,除以2,就是單位檢驗的p值。

下面圖片我們利用python的統計包可以自動算出t值和p值。

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

上圖片程式碼的解釋:

不同的檢驗方法在python的統計模組scipy中都有對應的方法。

單樣本t檢驗對應的方法是ttest_1samp,從名字中我們也可以看出1samp是指單樣本,ttest是指t檢驗。

我們給這個方法傳入樣本資料,和總體平均值。這個方法返回2個值,第1個值t是假設檢驗計算出的t值,第2個值p是雙尾檢驗的p值。和我們剛才手動計算出的結果是一樣的。但是這個方法更簡單。

因為我們這個案例裡的檢驗是左尾檢驗,所以用雙尾檢驗的p值除以2,就可以得到單尾檢驗的p值,是0。0074。

這個p值表示什麼意思呢?

P值表示在零假設成立的前提下,得到樣本平均值的機率是多少。

在這個案例裡就是假設汽車引擎滿足排放標準20ppm,得到樣本平均值的機率是0。0074。

單樣本檢驗第3步:判斷標準是什麼?

需要建立判斷標準來檢驗證據是否有效。在這個案例裡我們給定判斷標準,也就是顯著水平 a=5%

這裡我們是左尾檢驗,所以對應上面圖片中的黃色區域面積。

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

假設檢驗第4步:做出結論

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

現在我們找到了證據也就是p’值,並有了判案用的標準也就是判斷標準alpha。

現在我們要利用證據和判斷標準做出結論,我們將樣本證據計算出的p值與判斷標準α比較下就可以了:

如果p< =α,那麼零假設不成立,對應的就是備選假設成立。

也就是如果得到樣本平均值的機率p值小於判斷標準(5%),那麼通常被視為不太可能發生,因為在零假設成立前提下,證據顯示出的機率太小了,我們只能推翻零假設。所以當p<=顯著水平α時,拒絕零假設。

對應的就是上面圖片中p的面積區域小於黃色的判斷標準區域。

簡單來說,整個決策過程,是依據證據顯示出的機率大小來判斷的。

下面圖片我們看下如何用python做出結論的程式碼。

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

因為我們這裡是左尾檢驗,所以在做出結論時,還要判斷t值是否大於0。

如果t值小於0,表示計算出的t值是在抽樣分佈的左側,也就是左尾。如果t值大於0,表示是在抽樣分佈的右側,也就是右尾。

當我們拒絕零假設了,在統計上叫做統計顯著(statistical significance)。

記住的是,統計顯著不等於效果顯著。統計顯著只能說明兩個總體之間或者兩個不同版本之間有差異。但這個差異到底多大,我們還要看另一個指標,會在下次聊到,包括我們後面聊聊《如何做推論統計分析報告》。

你也可以在我的知乎live中找到全部課程《資料分析必懂的假設檢驗》。

推薦:他是如何用批判性思維改變命運的

假設檢驗的第1種類型:如何使用Python實現單樣本檢驗

標簽: 樣本  檢驗  分佈  假設  抽樣