'使用Python進行機器學習的假設檢驗(附鏈接&代碼)'

Python 機器學習 讀書 大學 THU數據派 2019-09-03
"
"
使用Python進行機器學習的假設檢驗(附鏈接&代碼)

作者:Jose Garcia

翻譯:張睿毅

校對:張一豪

本文約3800字,建議閱讀10分鐘。

作者給出了假設檢驗的解讀與Python實現的詳細的假設檢驗中的主要操作。

也許所有機器學習的初學者,或者中級水平的學生,或者統計專業的學生,都聽說過這個術語,假設檢驗。

我將簡要介紹一下這個當我學習時給我帶來了麻煩的主題。我把所有這些概念放在一起,並使用python進行示例。

在我尋求更廣泛的事情之前要考慮一些問題 ——

什麼是假設檢驗?我們為什麼用它?什麼是假設的基本條件?什麼是假設檢驗的重要參數?

讓我們一個個地開始吧:

1、 什麼是假設檢驗?

假設檢驗是一種統計方法,用於使用實驗數據進行統計決策。假設檢驗基本上是我們對人口參數做出的假設。

例如:你說班裡的學生平均年齡是40歲,或者一個男生要比女生高。

我們假設所有這些例子都需要一些統計方法來證明這些。無論我們假設什麼是真的,我們都需要一些數學結論。

2、我們為什麼要用它?

假設檢驗是統計學中必不可少的過程。假設檢驗評估關於總體的兩個相互排斥的陳述,以確定樣本數據最佳支持哪個陳述。當我們說一個發現具有統計學意義時,這要歸功於一個假設檢驗。

3、什麼是假設的基本條件?

"
使用Python進行機器學習的假設檢驗(附鏈接&代碼)

作者:Jose Garcia

翻譯:張睿毅

校對:張一豪

本文約3800字,建議閱讀10分鐘。

作者給出了假設檢驗的解讀與Python實現的詳細的假設檢驗中的主要操作。

也許所有機器學習的初學者,或者中級水平的學生,或者統計專業的學生,都聽說過這個術語,假設檢驗。

我將簡要介紹一下這個當我學習時給我帶來了麻煩的主題。我把所有這些概念放在一起,並使用python進行示例。

在我尋求更廣泛的事情之前要考慮一些問題 ——

什麼是假設檢驗?我們為什麼用它?什麼是假設的基本條件?什麼是假設檢驗的重要參數?

讓我們一個個地開始吧:

1、 什麼是假設檢驗?

假設檢驗是一種統計方法,用於使用實驗數據進行統計決策。假設檢驗基本上是我們對人口參數做出的假設。

例如:你說班裡的學生平均年齡是40歲,或者一個男生要比女生高。

我們假設所有這些例子都需要一些統計方法來證明這些。無論我們假設什麼是真的,我們都需要一些數學結論。

2、我們為什麼要用它?

假設檢驗是統計學中必不可少的過程。假設檢驗評估關於總體的兩個相互排斥的陳述,以確定樣本數據最佳支持哪個陳述。當我們說一個發現具有統計學意義時,這要歸功於一個假設檢驗。

3、什麼是假設的基本條件?

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


不同均值和方差下的正態分佈

假設的基礎是規範化和標準規範化

(鏈接https://en.wikipedia.org/wiki/Normalization_(statistics);https://stats.stackexchange.com/questions/10289/whats——the——difference——between——normalization——and——standardization)。我們所有的假設都圍繞這兩個術語的基礎。讓我們看看這些。

"
使用Python進行機器學習的假設檢驗(附鏈接&代碼)

作者:Jose Garcia

翻譯:張睿毅

校對:張一豪

本文約3800字,建議閱讀10分鐘。

作者給出了假設檢驗的解讀與Python實現的詳細的假設檢驗中的主要操作。

也許所有機器學習的初學者,或者中級水平的學生,或者統計專業的學生,都聽說過這個術語,假設檢驗。

我將簡要介紹一下這個當我學習時給我帶來了麻煩的主題。我把所有這些概念放在一起,並使用python進行示例。

在我尋求更廣泛的事情之前要考慮一些問題 ——

什麼是假設檢驗?我們為什麼用它?什麼是假設的基本條件?什麼是假設檢驗的重要參數?

讓我們一個個地開始吧:

1、 什麼是假設檢驗?

假設檢驗是一種統計方法,用於使用實驗數據進行統計決策。假設檢驗基本上是我們對人口參數做出的假設。

例如:你說班裡的學生平均年齡是40歲,或者一個男生要比女生高。

我們假設所有這些例子都需要一些統計方法來證明這些。無論我們假設什麼是真的,我們都需要一些數學結論。

2、我們為什麼要用它?

假設檢驗是統計學中必不可少的過程。假設檢驗評估關於總體的兩個相互排斥的陳述,以確定樣本數據最佳支持哪個陳述。當我們說一個發現具有統計學意義時,這要歸功於一個假設檢驗。

3、什麼是假設的基本條件?

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


不同均值和方差下的正態分佈

假設的基礎是規範化和標準規範化

(鏈接https://en.wikipedia.org/wiki/Normalization_(statistics);https://stats.stackexchange.com/questions/10289/whats——the——difference——between——normalization——and——standardization)。我們所有的假設都圍繞這兩個術語的基礎。讓我們看看這些。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化的正態曲線圖像和數據分佈及每個部分的百分比

你一定想知道這兩個圖像之間有什麼區別,有人可能會說我找不到,而其他人看到的圖像會比較平坦,而不是陡峭的。好吧夥計這不是我想要表達的,首先你可以看到有不同的正態曲線所有那些正態曲線可以有不同的均值和方差,如第二張圖像,如果你注意到圖形是合理分佈的,總是均值= 0和方差= 1。當我們使用標準化的正態數據時,z—score的概念就出現了。

正態分佈

如果變量的分佈具有正態曲線的形狀——一個特殊的鐘形曲線,則該變量被稱為正態分佈或具有正態分佈。正態分佈圖稱為正態曲線,它具有以下所有屬性:1.均值,中位數和眾數是相等。

"
使用Python進行機器學習的假設檢驗(附鏈接&代碼)

作者:Jose Garcia

翻譯:張睿毅

校對:張一豪

本文約3800字,建議閱讀10分鐘。

作者給出了假設檢驗的解讀與Python實現的詳細的假設檢驗中的主要操作。

也許所有機器學習的初學者,或者中級水平的學生,或者統計專業的學生,都聽說過這個術語,假設檢驗。

我將簡要介紹一下這個當我學習時給我帶來了麻煩的主題。我把所有這些概念放在一起,並使用python進行示例。

在我尋求更廣泛的事情之前要考慮一些問題 ——

什麼是假設檢驗?我們為什麼用它?什麼是假設的基本條件?什麼是假設檢驗的重要參數?

讓我們一個個地開始吧:

1、 什麼是假設檢驗?

假設檢驗是一種統計方法,用於使用實驗數據進行統計決策。假設檢驗基本上是我們對人口參數做出的假設。

例如:你說班裡的學生平均年齡是40歲,或者一個男生要比女生高。

我們假設所有這些例子都需要一些統計方法來證明這些。無論我們假設什麼是真的,我們都需要一些數學結論。

2、我們為什麼要用它?

假設檢驗是統計學中必不可少的過程。假設檢驗評估關於總體的兩個相互排斥的陳述,以確定樣本數據最佳支持哪個陳述。當我們說一個發現具有統計學意義時,這要歸功於一個假設檢驗。

3、什麼是假設的基本條件?

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


不同均值和方差下的正態分佈

假設的基礎是規範化和標準規範化

(鏈接https://en.wikipedia.org/wiki/Normalization_(statistics);https://stats.stackexchange.com/questions/10289/whats——the——difference——between——normalization——and——standardization)。我們所有的假設都圍繞這兩個術語的基礎。讓我們看看這些。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化的正態曲線圖像和數據分佈及每個部分的百分比

你一定想知道這兩個圖像之間有什麼區別,有人可能會說我找不到,而其他人看到的圖像會比較平坦,而不是陡峭的。好吧夥計這不是我想要表達的,首先你可以看到有不同的正態曲線所有那些正態曲線可以有不同的均值和方差,如第二張圖像,如果你注意到圖形是合理分佈的,總是均值= 0和方差= 1。當我們使用標準化的正態數據時,z—score的概念就出現了。

正態分佈

如果變量的分佈具有正態曲線的形狀——一個特殊的鐘形曲線,則該變量被稱為正態分佈或具有正態分佈。正態分佈圖稱為正態曲線,它具有以下所有屬性:1.均值,中位數和眾數是相等。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


正態分佈方程

"
使用Python進行機器學習的假設檢驗(附鏈接&代碼)

作者:Jose Garcia

翻譯:張睿毅

校對:張一豪

本文約3800字,建議閱讀10分鐘。

作者給出了假設檢驗的解讀與Python實現的詳細的假設檢驗中的主要操作。

也許所有機器學習的初學者,或者中級水平的學生,或者統計專業的學生,都聽說過這個術語,假設檢驗。

我將簡要介紹一下這個當我學習時給我帶來了麻煩的主題。我把所有這些概念放在一起,並使用python進行示例。

在我尋求更廣泛的事情之前要考慮一些問題 ——

什麼是假設檢驗?我們為什麼用它?什麼是假設的基本條件?什麼是假設檢驗的重要參數?

讓我們一個個地開始吧:

1、 什麼是假設檢驗?

假設檢驗是一種統計方法,用於使用實驗數據進行統計決策。假設檢驗基本上是我們對人口參數做出的假設。

例如:你說班裡的學生平均年齡是40歲,或者一個男生要比女生高。

我們假設所有這些例子都需要一些統計方法來證明這些。無論我們假設什麼是真的,我們都需要一些數學結論。

2、我們為什麼要用它?

假設檢驗是統計學中必不可少的過程。假設檢驗評估關於總體的兩個相互排斥的陳述,以確定樣本數據最佳支持哪個陳述。當我們說一個發現具有統計學意義時,這要歸功於一個假設檢驗。

3、什麼是假設的基本條件?

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


不同均值和方差下的正態分佈

假設的基礎是規範化和標準規範化

(鏈接https://en.wikipedia.org/wiki/Normalization_(statistics);https://stats.stackexchange.com/questions/10289/whats——the——difference——between——normalization——and——standardization)。我們所有的假設都圍繞這兩個術語的基礎。讓我們看看這些。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化的正態曲線圖像和數據分佈及每個部分的百分比

你一定想知道這兩個圖像之間有什麼區別,有人可能會說我找不到,而其他人看到的圖像會比較平坦,而不是陡峭的。好吧夥計這不是我想要表達的,首先你可以看到有不同的正態曲線所有那些正態曲線可以有不同的均值和方差,如第二張圖像,如果你注意到圖形是合理分佈的,總是均值= 0和方差= 1。當我們使用標準化的正態數據時,z—score的概念就出現了。

正態分佈

如果變量的分佈具有正態曲線的形狀——一個特殊的鐘形曲線,則該變量被稱為正態分佈或具有正態分佈。正態分佈圖稱為正態曲線,它具有以下所有屬性:1.均值,中位數和眾數是相等。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


正態分佈方程

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化正態分佈

標準正態分佈是平均值為0,標準差為1的正態分佈

4、哪些是假設檢驗的重要參數?

  • 零假設:

在推論統計中,零假設是一種普遍的說法或默認的觀點,即兩個測量現象之間沒有關係,或者分組間沒有關聯

換句話說,它是一個基本假設,或基於領域或問題知識。

示例:公司的生產力=50個單位/天等

  • 備擇假設:

另一種假設是假設檢驗中使用的假設與零假設相反。通常認為觀察是真實效果的結果(疊加了一定量的偶然的變化)

"
使用Python進行機器學習的假設檢驗(附鏈接&代碼)

作者:Jose Garcia

翻譯:張睿毅

校對:張一豪

本文約3800字,建議閱讀10分鐘。

作者給出了假設檢驗的解讀與Python實現的詳細的假設檢驗中的主要操作。

也許所有機器學習的初學者,或者中級水平的學生,或者統計專業的學生,都聽說過這個術語,假設檢驗。

我將簡要介紹一下這個當我學習時給我帶來了麻煩的主題。我把所有這些概念放在一起,並使用python進行示例。

在我尋求更廣泛的事情之前要考慮一些問題 ——

什麼是假設檢驗?我們為什麼用它?什麼是假設的基本條件?什麼是假設檢驗的重要參數?

讓我們一個個地開始吧:

1、 什麼是假設檢驗?

假設檢驗是一種統計方法,用於使用實驗數據進行統計決策。假設檢驗基本上是我們對人口參數做出的假設。

例如:你說班裡的學生平均年齡是40歲,或者一個男生要比女生高。

我們假設所有這些例子都需要一些統計方法來證明這些。無論我們假設什麼是真的,我們都需要一些數學結論。

2、我們為什麼要用它?

假設檢驗是統計學中必不可少的過程。假設檢驗評估關於總體的兩個相互排斥的陳述,以確定樣本數據最佳支持哪個陳述。當我們說一個發現具有統計學意義時,這要歸功於一個假設檢驗。

3、什麼是假設的基本條件?

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


不同均值和方差下的正態分佈

假設的基礎是規範化和標準規範化

(鏈接https://en.wikipedia.org/wiki/Normalization_(statistics);https://stats.stackexchange.com/questions/10289/whats——the——difference——between——normalization——and——standardization)。我們所有的假設都圍繞這兩個術語的基礎。讓我們看看這些。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化的正態曲線圖像和數據分佈及每個部分的百分比

你一定想知道這兩個圖像之間有什麼區別,有人可能會說我找不到,而其他人看到的圖像會比較平坦,而不是陡峭的。好吧夥計這不是我想要表達的,首先你可以看到有不同的正態曲線所有那些正態曲線可以有不同的均值和方差,如第二張圖像,如果你注意到圖形是合理分佈的,總是均值= 0和方差= 1。當我們使用標準化的正態數據時,z—score的概念就出現了。

正態分佈

如果變量的分佈具有正態曲線的形狀——一個特殊的鐘形曲線,則該變量被稱為正態分佈或具有正態分佈。正態分佈圖稱為正態曲線,它具有以下所有屬性:1.均值,中位數和眾數是相等。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


正態分佈方程

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化正態分佈

標準正態分佈是平均值為0,標準差為1的正態分佈

4、哪些是假設檢驗的重要參數?

  • 零假設:

在推論統計中,零假設是一種普遍的說法或默認的觀點,即兩個測量現象之間沒有關係,或者分組間沒有關聯

換句話說,它是一個基本假設,或基於領域或問題知識。

示例:公司的生產力=50個單位/天等

  • 備擇假設:

另一種假設是假設檢驗中使用的假設與零假設相反。通常認為觀察是真實效果的結果(疊加了一定量的偶然的變化)

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


零假設與備擇假設

示例:公司生產≠50單位/每天等。

重要程度:指我們接受或拒絕無效假設的重要程度。接受或拒絕假設不可能100%準確,因此我們選擇通常為5%的重要程度。

這通常用alpha(數學符號)表示,通常為0.05或5%,這意味著您的輸出應該有95%的信心在每個樣本中給出類似的結果。

I型錯誤:當我們拒絕零假設時,儘管該假設是正確的。類型I錯誤由alpha表示。在假設檢驗中,顯示關鍵區域的正常曲線稱為α區域

II型錯誤:當我們接受零假設但它是錯誤的。II型錯誤用beta表示。在假設檢驗中,顯示接受區域的正常曲線稱為β區域。

單尾測試:統計假設的測試,其中拒絕區域僅在採樣分佈的一側,稱為單尾測試

例如:一所大學有≥4000名學生或數據科學≤80%採用的組織。

雙尾測試:雙尾測試是一種統計測試,其中分佈的關鍵區域是雙側的,並測試樣本是否大於或小於某個值範圍。如果被測試的樣本屬於任一關鍵區域,則接受替代假設而不是零假設。

例如:一所大學!= 4000名學生或數據科學!= 80%的組織採用

"
使用Python進行機器學習的假設檢驗(附鏈接&代碼)

作者:Jose Garcia

翻譯:張睿毅

校對:張一豪

本文約3800字,建議閱讀10分鐘。

作者給出了假設檢驗的解讀與Python實現的詳細的假設檢驗中的主要操作。

也許所有機器學習的初學者,或者中級水平的學生,或者統計專業的學生,都聽說過這個術語,假設檢驗。

我將簡要介紹一下這個當我學習時給我帶來了麻煩的主題。我把所有這些概念放在一起,並使用python進行示例。

在我尋求更廣泛的事情之前要考慮一些問題 ——

什麼是假設檢驗?我們為什麼用它?什麼是假設的基本條件?什麼是假設檢驗的重要參數?

讓我們一個個地開始吧:

1、 什麼是假設檢驗?

假設檢驗是一種統計方法,用於使用實驗數據進行統計決策。假設檢驗基本上是我們對人口參數做出的假設。

例如:你說班裡的學生平均年齡是40歲,或者一個男生要比女生高。

我們假設所有這些例子都需要一些統計方法來證明這些。無論我們假設什麼是真的,我們都需要一些數學結論。

2、我們為什麼要用它?

假設檢驗是統計學中必不可少的過程。假設檢驗評估關於總體的兩個相互排斥的陳述,以確定樣本數據最佳支持哪個陳述。當我們說一個發現具有統計學意義時,這要歸功於一個假設檢驗。

3、什麼是假設的基本條件?

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


不同均值和方差下的正態分佈

假設的基礎是規範化和標準規範化

(鏈接https://en.wikipedia.org/wiki/Normalization_(statistics);https://stats.stackexchange.com/questions/10289/whats——the——difference——between——normalization——and——standardization)。我們所有的假設都圍繞這兩個術語的基礎。讓我們看看這些。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化的正態曲線圖像和數據分佈及每個部分的百分比

你一定想知道這兩個圖像之間有什麼區別,有人可能會說我找不到,而其他人看到的圖像會比較平坦,而不是陡峭的。好吧夥計這不是我想要表達的,首先你可以看到有不同的正態曲線所有那些正態曲線可以有不同的均值和方差,如第二張圖像,如果你注意到圖形是合理分佈的,總是均值= 0和方差= 1。當我們使用標準化的正態數據時,z—score的概念就出現了。

正態分佈

如果變量的分佈具有正態曲線的形狀——一個特殊的鐘形曲線,則該變量被稱為正態分佈或具有正態分佈。正態分佈圖稱為正態曲線,它具有以下所有屬性:1.均值,中位數和眾數是相等。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


正態分佈方程

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化正態分佈

標準正態分佈是平均值為0,標準差為1的正態分佈

4、哪些是假設檢驗的重要參數?

  • 零假設:

在推論統計中,零假設是一種普遍的說法或默認的觀點,即兩個測量現象之間沒有關係,或者分組間沒有關聯

換句話說,它是一個基本假設,或基於領域或問題知識。

示例:公司的生產力=50個單位/天等

  • 備擇假設:

另一種假設是假設檢驗中使用的假設與零假設相反。通常認為觀察是真實效果的結果(疊加了一定量的偶然的變化)

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


零假設與備擇假設

示例:公司生產≠50單位/每天等。

重要程度:指我們接受或拒絕無效假設的重要程度。接受或拒絕假設不可能100%準確,因此我們選擇通常為5%的重要程度。

這通常用alpha(數學符號)表示,通常為0.05或5%,這意味著您的輸出應該有95%的信心在每個樣本中給出類似的結果。

I型錯誤:當我們拒絕零假設時,儘管該假設是正確的。類型I錯誤由alpha表示。在假設檢驗中,顯示關鍵區域的正常曲線稱為α區域

II型錯誤:當我們接受零假設但它是錯誤的。II型錯誤用beta表示。在假設檢驗中,顯示接受區域的正常曲線稱為β區域。

單尾測試:統計假設的測試,其中拒絕區域僅在採樣分佈的一側,稱為單尾測試

例如:一所大學有≥4000名學生或數據科學≤80%採用的組織。

雙尾測試:雙尾測試是一種統計測試,其中分佈的關鍵區域是雙側的,並測試樣本是否大於或小於某個值範圍。如果被測試的樣本屬於任一關鍵區域,則接受替代假設而不是零假設。

例如:一所大學!= 4000名學生或數據科學!= 80%的組織採用

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


單尾和雙尾圖像

P值:P值或計算概率是當研究問題的零假設(H 0)為真時,找到觀察到的或更極端的結果的概率 —— “極端”程度的定義取決於假設如何被檢測。

如果您的P值小於選定的顯著性水平,那麼就拒絕原假設,即接受樣本提供合理的證據來支持備選假設。它並不意味著“有意義”或“重要”的差異;這是在考慮結果的真實相關性時決定的。

例如:你有一枚硬幣而你不知道這是否公平或棘手所以讓我們決定零和備擇假設

H0:硬幣是一個公平的硬幣。

H1:硬幣是一個狡猾的硬幣。並且alpha = 5%或0.05

現在讓我們擲硬幣並計算p值(概率值)。

第一次投擲硬幣,結果是尾部P值= 50%(頭部和尾部的概率相等)

第二次拋硬幣,結果是尾巴,現在p值= 50/2 = 25%

同樣地,我們連續6次投擲並得到P值= 1.5%的結果,但是我們將顯著性水平設置為95%表示我們允許的5%錯誤率,在這裡我們看到我們超出了那個水平,即我們的零假設不成立,所以我們需要拒絕並提出這個硬幣實際上是一個狡猾的硬幣。

自由度: 現在想象你對期望值沒有興趣,你對數據分析感興趣。您有一個包含10個值的數據集。如果你沒有估算任何東西,每個值都可以取任何數字,對吧?每個值都可以完全自由變化。但是假設您想使用單樣本t檢驗來測試10個值的樣本的總體平均值。你現在有一個約束——平均值的估計。究竟是什麼約束?通過定義均值,必須保持以下關係:數據中所有值的總和必須等於n x mean,其中n是數據集中的值的數量。

因此,如果數據集有10個值,則10個值的總和必須等於平均值x 10.如果10個值的平均值為3.5(您可以選擇任何數字),則此約束要求10個值的總和必須等於10 x 3.5 = 35。

使用該約束,數據集中的第一個值可以自由變化。無論它是什麼價值,所有10個數字的總和仍然可以具有35的值。第二個值也可以自由變化,因為無論你選擇什麼值,它仍然允許所有值的總和的可能性是35歲。

現在讓我們看一些廣泛使用的假設檢驗類型: ——

  1. T校驗(學生T校驗)
  2. Z校驗
  3. ANOVA校驗
  4. 卡方檢驗

T—檢驗:t檢驗是一種推論統計量,用於確定在某些特徵中可能與兩組的均值之間是否存在顯著差異。它主要用於數據集,如通過翻轉硬幣100次記錄為結果的數據集,將遵循正態分佈並且可能具有未知的方差(鏈接:https://www.investopedia.com/terms/v/variance.asp)。T檢驗用作假設檢驗工具(鏈接:https://www.investopedia.com/terms/h/hypothesistesting.asp),其允許測試適用於群體的假設。

T檢驗有兩種類型:

  1. 單樣本t檢驗
  2. 雙樣本t檢驗


單樣本t檢驗:單樣本t檢驗確定樣本均值是否與已知或假設的總體均值具有統計學差異。單樣本t檢驗是參數檢驗。

例如:你有10個年齡,你正在檢查平均年齡是否為30歲。 (使用python查看下面的代碼)

from scipy.stats import ttest_1sampimport 
numpy as npages = np.genfromtxt
(“ages.csv”)print(ages)ages_mean = np.mean(ages)
print(ages_mean)tset, pval = ttest_1samp(ages, 30)
print(“p-values”,pval)if pval < 0.05: # alpha value is 0.05 or 5% print
(" we are rejecting null hypothesis")else:
print("we are accepting null hypothesis”)

上面代碼的結果如下:


"
使用Python進行機器學習的假設檢驗(附鏈接&代碼)

作者:Jose Garcia

翻譯:張睿毅

校對:張一豪

本文約3800字,建議閱讀10分鐘。

作者給出了假設檢驗的解讀與Python實現的詳細的假設檢驗中的主要操作。

也許所有機器學習的初學者,或者中級水平的學生,或者統計專業的學生,都聽說過這個術語,假設檢驗。

我將簡要介紹一下這個當我學習時給我帶來了麻煩的主題。我把所有這些概念放在一起,並使用python進行示例。

在我尋求更廣泛的事情之前要考慮一些問題 ——

什麼是假設檢驗?我們為什麼用它?什麼是假設的基本條件?什麼是假設檢驗的重要參數?

讓我們一個個地開始吧:

1、 什麼是假設檢驗?

假設檢驗是一種統計方法,用於使用實驗數據進行統計決策。假設檢驗基本上是我們對人口參數做出的假設。

例如:你說班裡的學生平均年齡是40歲,或者一個男生要比女生高。

我們假設所有這些例子都需要一些統計方法來證明這些。無論我們假設什麼是真的,我們都需要一些數學結論。

2、我們為什麼要用它?

假設檢驗是統計學中必不可少的過程。假設檢驗評估關於總體的兩個相互排斥的陳述,以確定樣本數據最佳支持哪個陳述。當我們說一個發現具有統計學意義時,這要歸功於一個假設檢驗。

3、什麼是假設的基本條件?

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


不同均值和方差下的正態分佈

假設的基礎是規範化和標準規範化

(鏈接https://en.wikipedia.org/wiki/Normalization_(statistics);https://stats.stackexchange.com/questions/10289/whats——the——difference——between——normalization——and——standardization)。我們所有的假設都圍繞這兩個術語的基礎。讓我們看看這些。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化的正態曲線圖像和數據分佈及每個部分的百分比

你一定想知道這兩個圖像之間有什麼區別,有人可能會說我找不到,而其他人看到的圖像會比較平坦,而不是陡峭的。好吧夥計這不是我想要表達的,首先你可以看到有不同的正態曲線所有那些正態曲線可以有不同的均值和方差,如第二張圖像,如果你注意到圖形是合理分佈的,總是均值= 0和方差= 1。當我們使用標準化的正態數據時,z—score的概念就出現了。

正態分佈

如果變量的分佈具有正態曲線的形狀——一個特殊的鐘形曲線,則該變量被稱為正態分佈或具有正態分佈。正態分佈圖稱為正態曲線,它具有以下所有屬性:1.均值,中位數和眾數是相等。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


正態分佈方程

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化正態分佈

標準正態分佈是平均值為0,標準差為1的正態分佈

4、哪些是假設檢驗的重要參數?

  • 零假設:

在推論統計中,零假設是一種普遍的說法或默認的觀點,即兩個測量現象之間沒有關係,或者分組間沒有關聯

換句話說,它是一個基本假設,或基於領域或問題知識。

示例:公司的生產力=50個單位/天等

  • 備擇假設:

另一種假設是假設檢驗中使用的假設與零假設相反。通常認為觀察是真實效果的結果(疊加了一定量的偶然的變化)

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


零假設與備擇假設

示例:公司生產≠50單位/每天等。

重要程度:指我們接受或拒絕無效假設的重要程度。接受或拒絕假設不可能100%準確,因此我們選擇通常為5%的重要程度。

這通常用alpha(數學符號)表示,通常為0.05或5%,這意味著您的輸出應該有95%的信心在每個樣本中給出類似的結果。

I型錯誤:當我們拒絕零假設時,儘管該假設是正確的。類型I錯誤由alpha表示。在假設檢驗中,顯示關鍵區域的正常曲線稱為α區域

II型錯誤:當我們接受零假設但它是錯誤的。II型錯誤用beta表示。在假設檢驗中,顯示接受區域的正常曲線稱為β區域。

單尾測試:統計假設的測試,其中拒絕區域僅在採樣分佈的一側,稱為單尾測試

例如:一所大學有≥4000名學生或數據科學≤80%採用的組織。

雙尾測試:雙尾測試是一種統計測試,其中分佈的關鍵區域是雙側的,並測試樣本是否大於或小於某個值範圍。如果被測試的樣本屬於任一關鍵區域,則接受替代假設而不是零假設。

例如:一所大學!= 4000名學生或數據科學!= 80%的組織採用

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


單尾和雙尾圖像

P值:P值或計算概率是當研究問題的零假設(H 0)為真時,找到觀察到的或更極端的結果的概率 —— “極端”程度的定義取決於假設如何被檢測。

如果您的P值小於選定的顯著性水平,那麼就拒絕原假設,即接受樣本提供合理的證據來支持備選假設。它並不意味著“有意義”或“重要”的差異;這是在考慮結果的真實相關性時決定的。

例如:你有一枚硬幣而你不知道這是否公平或棘手所以讓我們決定零和備擇假設

H0:硬幣是一個公平的硬幣。

H1:硬幣是一個狡猾的硬幣。並且alpha = 5%或0.05

現在讓我們擲硬幣並計算p值(概率值)。

第一次投擲硬幣,結果是尾部P值= 50%(頭部和尾部的概率相等)

第二次拋硬幣,結果是尾巴,現在p值= 50/2 = 25%

同樣地,我們連續6次投擲並得到P值= 1.5%的結果,但是我們將顯著性水平設置為95%表示我們允許的5%錯誤率,在這裡我們看到我們超出了那個水平,即我們的零假設不成立,所以我們需要拒絕並提出這個硬幣實際上是一個狡猾的硬幣。

自由度: 現在想象你對期望值沒有興趣,你對數據分析感興趣。您有一個包含10個值的數據集。如果你沒有估算任何東西,每個值都可以取任何數字,對吧?每個值都可以完全自由變化。但是假設您想使用單樣本t檢驗來測試10個值的樣本的總體平均值。你現在有一個約束——平均值的估計。究竟是什麼約束?通過定義均值,必須保持以下關係:數據中所有值的總和必須等於n x mean,其中n是數據集中的值的數量。

因此,如果數據集有10個值,則10個值的總和必須等於平均值x 10.如果10個值的平均值為3.5(您可以選擇任何數字),則此約束要求10個值的總和必須等於10 x 3.5 = 35。

使用該約束,數據集中的第一個值可以自由變化。無論它是什麼價值,所有10個數字的總和仍然可以具有35的值。第二個值也可以自由變化,因為無論你選擇什麼值,它仍然允許所有值的總和的可能性是35歲。

現在讓我們看一些廣泛使用的假設檢驗類型: ——

  1. T校驗(學生T校驗)
  2. Z校驗
  3. ANOVA校驗
  4. 卡方檢驗

T—檢驗:t檢驗是一種推論統計量,用於確定在某些特徵中可能與兩組的均值之間是否存在顯著差異。它主要用於數據集,如通過翻轉硬幣100次記錄為結果的數據集,將遵循正態分佈並且可能具有未知的方差(鏈接:https://www.investopedia.com/terms/v/variance.asp)。T檢驗用作假設檢驗工具(鏈接:https://www.investopedia.com/terms/h/hypothesistesting.asp),其允許測試適用於群體的假設。

T檢驗有兩種類型:

  1. 單樣本t檢驗
  2. 雙樣本t檢驗


單樣本t檢驗:單樣本t檢驗確定樣本均值是否與已知或假設的總體均值具有統計學差異。單樣本t檢驗是參數檢驗。

例如:你有10個年齡,你正在檢查平均年齡是否為30歲。 (使用python查看下面的代碼)

from scipy.stats import ttest_1sampimport 
numpy as npages = np.genfromtxt
(“ages.csv”)print(ages)ages_mean = np.mean(ages)
print(ages_mean)tset, pval = ttest_1samp(ages, 30)
print(“p-values”,pval)if pval < 0.05: # alpha value is 0.05 or 5% print
(" we are rejecting null hypothesis")else:
print("we are accepting null hypothesis”)

上面代碼的結果如下:


使用Python進行機器學習的假設檢驗(附鏈接&代碼)


單樣本t測試結果

雙樣本t檢驗:獨立樣本t檢驗或雙樣本t檢驗比較兩個獨立組的平均值,以確定是否有統計證據表明相關的人口均值存在顯著差異。獨立樣本t檢驗是參數檢驗。該測試也稱為:獨立t檢驗。

示例:在week1和week2之間是否存在任何關聯(代碼在下面的python中給出)

from scipy.stats import ttest_indimport numpy as npweek1 = np.genfromtxt
("week1.csv", delimiter=",")
week2 = np.genfromtxt
("week2.csv", delimiter=",")print(week1)
print("week2 data :-\\n")print(week2)
week1_mean = np.mean(week1
)week2_mean = np.mean(week2)print
("week1 mean value:",week1_mean)print
("week2 mean value:",week2_mean)
week1_std = np.std(week1)week2_std =
np.std(week2)print("week1 std value:",week1_std)
print("week2 std value:",week2_std)
ttest,pval = ttest_ind(week1,week2)print
("p-value",pval)if pval <0.05: print
("we reject null hypothesis")else: print("we accept null hypothesis”)
"
使用Python進行機器學習的假設檢驗(附鏈接&代碼)

作者:Jose Garcia

翻譯:張睿毅

校對:張一豪

本文約3800字,建議閱讀10分鐘。

作者給出了假設檢驗的解讀與Python實現的詳細的假設檢驗中的主要操作。

也許所有機器學習的初學者,或者中級水平的學生,或者統計專業的學生,都聽說過這個術語,假設檢驗。

我將簡要介紹一下這個當我學習時給我帶來了麻煩的主題。我把所有這些概念放在一起,並使用python進行示例。

在我尋求更廣泛的事情之前要考慮一些問題 ——

什麼是假設檢驗?我們為什麼用它?什麼是假設的基本條件?什麼是假設檢驗的重要參數?

讓我們一個個地開始吧:

1、 什麼是假設檢驗?

假設檢驗是一種統計方法,用於使用實驗數據進行統計決策。假設檢驗基本上是我們對人口參數做出的假設。

例如:你說班裡的學生平均年齡是40歲,或者一個男生要比女生高。

我們假設所有這些例子都需要一些統計方法來證明這些。無論我們假設什麼是真的,我們都需要一些數學結論。

2、我們為什麼要用它?

假設檢驗是統計學中必不可少的過程。假設檢驗評估關於總體的兩個相互排斥的陳述,以確定樣本數據最佳支持哪個陳述。當我們說一個發現具有統計學意義時,這要歸功於一個假設檢驗。

3、什麼是假設的基本條件?

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


不同均值和方差下的正態分佈

假設的基礎是規範化和標準規範化

(鏈接https://en.wikipedia.org/wiki/Normalization_(statistics);https://stats.stackexchange.com/questions/10289/whats——the——difference——between——normalization——and——standardization)。我們所有的假設都圍繞這兩個術語的基礎。讓我們看看這些。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化的正態曲線圖像和數據分佈及每個部分的百分比

你一定想知道這兩個圖像之間有什麼區別,有人可能會說我找不到,而其他人看到的圖像會比較平坦,而不是陡峭的。好吧夥計這不是我想要表達的,首先你可以看到有不同的正態曲線所有那些正態曲線可以有不同的均值和方差,如第二張圖像,如果你注意到圖形是合理分佈的,總是均值= 0和方差= 1。當我們使用標準化的正態數據時,z—score的概念就出現了。

正態分佈

如果變量的分佈具有正態曲線的形狀——一個特殊的鐘形曲線,則該變量被稱為正態分佈或具有正態分佈。正態分佈圖稱為正態曲線,它具有以下所有屬性:1.均值,中位數和眾數是相等。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


正態分佈方程

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化正態分佈

標準正態分佈是平均值為0,標準差為1的正態分佈

4、哪些是假設檢驗的重要參數?

  • 零假設:

在推論統計中,零假設是一種普遍的說法或默認的觀點,即兩個測量現象之間沒有關係,或者分組間沒有關聯

換句話說,它是一個基本假設,或基於領域或問題知識。

示例:公司的生產力=50個單位/天等

  • 備擇假設:

另一種假設是假設檢驗中使用的假設與零假設相反。通常認為觀察是真實效果的結果(疊加了一定量的偶然的變化)

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


零假設與備擇假設

示例:公司生產≠50單位/每天等。

重要程度:指我們接受或拒絕無效假設的重要程度。接受或拒絕假設不可能100%準確,因此我們選擇通常為5%的重要程度。

這通常用alpha(數學符號)表示,通常為0.05或5%,這意味著您的輸出應該有95%的信心在每個樣本中給出類似的結果。

I型錯誤:當我們拒絕零假設時,儘管該假設是正確的。類型I錯誤由alpha表示。在假設檢驗中,顯示關鍵區域的正常曲線稱為α區域

II型錯誤:當我們接受零假設但它是錯誤的。II型錯誤用beta表示。在假設檢驗中,顯示接受區域的正常曲線稱為β區域。

單尾測試:統計假設的測試,其中拒絕區域僅在採樣分佈的一側,稱為單尾測試

例如:一所大學有≥4000名學生或數據科學≤80%採用的組織。

雙尾測試:雙尾測試是一種統計測試,其中分佈的關鍵區域是雙側的,並測試樣本是否大於或小於某個值範圍。如果被測試的樣本屬於任一關鍵區域,則接受替代假設而不是零假設。

例如:一所大學!= 4000名學生或數據科學!= 80%的組織採用

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


單尾和雙尾圖像

P值:P值或計算概率是當研究問題的零假設(H 0)為真時,找到觀察到的或更極端的結果的概率 —— “極端”程度的定義取決於假設如何被檢測。

如果您的P值小於選定的顯著性水平,那麼就拒絕原假設,即接受樣本提供合理的證據來支持備選假設。它並不意味著“有意義”或“重要”的差異;這是在考慮結果的真實相關性時決定的。

例如:你有一枚硬幣而你不知道這是否公平或棘手所以讓我們決定零和備擇假設

H0:硬幣是一個公平的硬幣。

H1:硬幣是一個狡猾的硬幣。並且alpha = 5%或0.05

現在讓我們擲硬幣並計算p值(概率值)。

第一次投擲硬幣,結果是尾部P值= 50%(頭部和尾部的概率相等)

第二次拋硬幣,結果是尾巴,現在p值= 50/2 = 25%

同樣地,我們連續6次投擲並得到P值= 1.5%的結果,但是我們將顯著性水平設置為95%表示我們允許的5%錯誤率,在這裡我們看到我們超出了那個水平,即我們的零假設不成立,所以我們需要拒絕並提出這個硬幣實際上是一個狡猾的硬幣。

自由度: 現在想象你對期望值沒有興趣,你對數據分析感興趣。您有一個包含10個值的數據集。如果你沒有估算任何東西,每個值都可以取任何數字,對吧?每個值都可以完全自由變化。但是假設您想使用單樣本t檢驗來測試10個值的樣本的總體平均值。你現在有一個約束——平均值的估計。究竟是什麼約束?通過定義均值,必須保持以下關係:數據中所有值的總和必須等於n x mean,其中n是數據集中的值的數量。

因此,如果數據集有10個值,則10個值的總和必須等於平均值x 10.如果10個值的平均值為3.5(您可以選擇任何數字),則此約束要求10個值的總和必須等於10 x 3.5 = 35。

使用該約束,數據集中的第一個值可以自由變化。無論它是什麼價值,所有10個數字的總和仍然可以具有35的值。第二個值也可以自由變化,因為無論你選擇什麼值,它仍然允許所有值的總和的可能性是35歲。

現在讓我們看一些廣泛使用的假設檢驗類型: ——

  1. T校驗(學生T校驗)
  2. Z校驗
  3. ANOVA校驗
  4. 卡方檢驗

T—檢驗:t檢驗是一種推論統計量,用於確定在某些特徵中可能與兩組的均值之間是否存在顯著差異。它主要用於數據集,如通過翻轉硬幣100次記錄為結果的數據集,將遵循正態分佈並且可能具有未知的方差(鏈接:https://www.investopedia.com/terms/v/variance.asp)。T檢驗用作假設檢驗工具(鏈接:https://www.investopedia.com/terms/h/hypothesistesting.asp),其允許測試適用於群體的假設。

T檢驗有兩種類型:

  1. 單樣本t檢驗
  2. 雙樣本t檢驗


單樣本t檢驗:單樣本t檢驗確定樣本均值是否與已知或假設的總體均值具有統計學差異。單樣本t檢驗是參數檢驗。

例如:你有10個年齡,你正在檢查平均年齡是否為30歲。 (使用python查看下面的代碼)

from scipy.stats import ttest_1sampimport 
numpy as npages = np.genfromtxt
(“ages.csv”)print(ages)ages_mean = np.mean(ages)
print(ages_mean)tset, pval = ttest_1samp(ages, 30)
print(“p-values”,pval)if pval < 0.05: # alpha value is 0.05 or 5% print
(" we are rejecting null hypothesis")else:
print("we are accepting null hypothesis”)

上面代碼的結果如下:


使用Python進行機器學習的假設檢驗(附鏈接&代碼)


單樣本t測試結果

雙樣本t檢驗:獨立樣本t檢驗或雙樣本t檢驗比較兩個獨立組的平均值,以確定是否有統計證據表明相關的人口均值存在顯著差異。獨立樣本t檢驗是參數檢驗。該測試也稱為:獨立t檢驗。

示例:在week1和week2之間是否存在任何關聯(代碼在下面的python中給出)

from scipy.stats import ttest_indimport numpy as npweek1 = np.genfromtxt
("week1.csv", delimiter=",")
week2 = np.genfromtxt
("week2.csv", delimiter=",")print(week1)
print("week2 data :-\\n")print(week2)
week1_mean = np.mean(week1
)week2_mean = np.mean(week2)print
("week1 mean value:",week1_mean)print
("week2 mean value:",week2_mean)
week1_std = np.std(week1)week2_std =
np.std(week2)print("week1 std value:",week1_std)
print("week2 std value:",week2_std)
ttest,pval = ttest_ind(week1,week2)print
("p-value",pval)if pval <0.05: print
("we reject null hypothesis")else: print("we accept null hypothesis”)
使用Python進行機器學習的假設檢驗(附鏈接&代碼)


雙樣本t校驗結果

配對樣本t檢驗:配對樣本t檢驗也稱為依賴樣本t檢驗。這是一個單變量測試,測試2個相關變量之間的顯著差異。這方面的一個例子是,如果您在某些治療,病症或時間點之前和之後收集個人的血壓。

H0:表示兩個樣本之間的差異為0。

H1:兩個樣本之間的平均差異不是0。

執行下面的代碼可以得到同樣的結果。

import pandas as pd
from scipy import stats
df = pd.read_csv("blood_pressure.csv")
df[['bp_before','bp_after']].describe()
ttest,pval = stats.ttest_rel(df['bp_before'], df['bp_after'])
print(pval)
if pval<0.05:
print("reject null hypothesis")
else:
print("accept null hypothesis")

什麼時候可以運行Z校驗。

在統計學中使用幾種不同類型的校驗(即f檢驗,卡方檢驗,t檢驗)

(鏈接:https://www.statisticshowto.datascie

ncecentral.com/

probability——and——statistics/hypothesis——testing/f——test/

; https://www.statisticshowto.datasciencecentral.

com/probability——and——statistics/chi——square/https://www.statisticshowto.

datasciencecentral.com/

probability——and——statistics/t——test/ )。

在下列情況下,您將使用Z測試:

  • 您的樣本量大於30。(鏈接:
  • https://www.statisticshowto.datasciencecentral.com/probability——and——statistics/find——sample——size/)否則,請使用t檢驗。
  • 數據點應彼此獨立。(鏈接:
  • https://www.statisticshowto.datasciencecentral.com/probability——and——statistics/dependent——events——independent/)換句話說,一個數據點不相關或不影響另一個數據點。
  • 您的數據應該是正常分佈的。但是,對於大樣本量(超過30個),這並不總是重要的。
  • 您的數據應從人口中隨機選擇,每個項目都有相同的選擇機會。
  • 如果可能的話,樣本量應該相等。

再舉一個例子,我們使用z-test進行血壓測量,如156個單樣本Z檢驗。

import pandas as pd
from scipy import statsfrom statsmodels.stats
import weightstats as stestsztest ,pval = stests.ztest(df['bp_before'], x2=None, value=156)
print(float(pval))if pval<0.05:
print("reject null hypothesis")
else:
print("accept null hypothesis")

雙樣本Z檢驗 —— 在兩個樣本z檢驗中,類似於t檢驗,我們檢查兩個獨立的數據組並確定兩個組的樣本均值是否相等。

H0:兩組的平均值為0

H1:兩組的平均值不為0

例:我們檢查血液之後和血液數據之前的血液數據。(下面是python代碼)

ztest ,pval1 = stests.ztest(df['bp_before'],
x2=df['bp_after'],
value=0,alternative='two-sided')print(float(pval1))if pval<0.05:
print("reject null hypothesis")else: print("accept null hypothesis")

ANOVA(F-檢驗):t檢驗在處理兩組時效果很好,但有時我們想要同時比較兩組以上。例如,如果我們想根據種族等某些分類變量來測試選民年齡是否不同,我們必須比較每個級別的平均值或對變量進行分組。我們可以為每對組進行單獨的t檢驗,但是當你進行多次檢測時,你會增加誤報的可能性。方差分析或ANOVA

(鏈接:https://en.wikipedia.org/

wiki/Analysis_of_variance)是一種統計推斷測試,可讓您同時比較多個組。

F =組間變異性/組間變異性


"
使用Python進行機器學習的假設檢驗(附鏈接&代碼)

作者:Jose Garcia

翻譯:張睿毅

校對:張一豪

本文約3800字,建議閱讀10分鐘。

作者給出了假設檢驗的解讀與Python實現的詳細的假設檢驗中的主要操作。

也許所有機器學習的初學者,或者中級水平的學生,或者統計專業的學生,都聽說過這個術語,假設檢驗。

我將簡要介紹一下這個當我學習時給我帶來了麻煩的主題。我把所有這些概念放在一起,並使用python進行示例。

在我尋求更廣泛的事情之前要考慮一些問題 ——

什麼是假設檢驗?我們為什麼用它?什麼是假設的基本條件?什麼是假設檢驗的重要參數?

讓我們一個個地開始吧:

1、 什麼是假設檢驗?

假設檢驗是一種統計方法,用於使用實驗數據進行統計決策。假設檢驗基本上是我們對人口參數做出的假設。

例如:你說班裡的學生平均年齡是40歲,或者一個男生要比女生高。

我們假設所有這些例子都需要一些統計方法來證明這些。無論我們假設什麼是真的,我們都需要一些數學結論。

2、我們為什麼要用它?

假設檢驗是統計學中必不可少的過程。假設檢驗評估關於總體的兩個相互排斥的陳述,以確定樣本數據最佳支持哪個陳述。當我們說一個發現具有統計學意義時,這要歸功於一個假設檢驗。

3、什麼是假設的基本條件?

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


不同均值和方差下的正態分佈

假設的基礎是規範化和標準規範化

(鏈接https://en.wikipedia.org/wiki/Normalization_(statistics);https://stats.stackexchange.com/questions/10289/whats——the——difference——between——normalization——and——standardization)。我們所有的假設都圍繞這兩個術語的基礎。讓我們看看這些。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化的正態曲線圖像和數據分佈及每個部分的百分比

你一定想知道這兩個圖像之間有什麼區別,有人可能會說我找不到,而其他人看到的圖像會比較平坦,而不是陡峭的。好吧夥計這不是我想要表達的,首先你可以看到有不同的正態曲線所有那些正態曲線可以有不同的均值和方差,如第二張圖像,如果你注意到圖形是合理分佈的,總是均值= 0和方差= 1。當我們使用標準化的正態數據時,z—score的概念就出現了。

正態分佈

如果變量的分佈具有正態曲線的形狀——一個特殊的鐘形曲線,則該變量被稱為正態分佈或具有正態分佈。正態分佈圖稱為正態曲線,它具有以下所有屬性:1.均值,中位數和眾數是相等。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


正態分佈方程

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化正態分佈

標準正態分佈是平均值為0,標準差為1的正態分佈

4、哪些是假設檢驗的重要參數?

  • 零假設:

在推論統計中,零假設是一種普遍的說法或默認的觀點,即兩個測量現象之間沒有關係,或者分組間沒有關聯

換句話說,它是一個基本假設,或基於領域或問題知識。

示例:公司的生產力=50個單位/天等

  • 備擇假設:

另一種假設是假設檢驗中使用的假設與零假設相反。通常認為觀察是真實效果的結果(疊加了一定量的偶然的變化)

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


零假設與備擇假設

示例:公司生產≠50單位/每天等。

重要程度:指我們接受或拒絕無效假設的重要程度。接受或拒絕假設不可能100%準確,因此我們選擇通常為5%的重要程度。

這通常用alpha(數學符號)表示,通常為0.05或5%,這意味著您的輸出應該有95%的信心在每個樣本中給出類似的結果。

I型錯誤:當我們拒絕零假設時,儘管該假設是正確的。類型I錯誤由alpha表示。在假設檢驗中,顯示關鍵區域的正常曲線稱為α區域

II型錯誤:當我們接受零假設但它是錯誤的。II型錯誤用beta表示。在假設檢驗中,顯示接受區域的正常曲線稱為β區域。

單尾測試:統計假設的測試,其中拒絕區域僅在採樣分佈的一側,稱為單尾測試

例如:一所大學有≥4000名學生或數據科學≤80%採用的組織。

雙尾測試:雙尾測試是一種統計測試,其中分佈的關鍵區域是雙側的,並測試樣本是否大於或小於某個值範圍。如果被測試的樣本屬於任一關鍵區域,則接受替代假設而不是零假設。

例如:一所大學!= 4000名學生或數據科學!= 80%的組織採用

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


單尾和雙尾圖像

P值:P值或計算概率是當研究問題的零假設(H 0)為真時,找到觀察到的或更極端的結果的概率 —— “極端”程度的定義取決於假設如何被檢測。

如果您的P值小於選定的顯著性水平,那麼就拒絕原假設,即接受樣本提供合理的證據來支持備選假設。它並不意味著“有意義”或“重要”的差異;這是在考慮結果的真實相關性時決定的。

例如:你有一枚硬幣而你不知道這是否公平或棘手所以讓我們決定零和備擇假設

H0:硬幣是一個公平的硬幣。

H1:硬幣是一個狡猾的硬幣。並且alpha = 5%或0.05

現在讓我們擲硬幣並計算p值(概率值)。

第一次投擲硬幣,結果是尾部P值= 50%(頭部和尾部的概率相等)

第二次拋硬幣,結果是尾巴,現在p值= 50/2 = 25%

同樣地,我們連續6次投擲並得到P值= 1.5%的結果,但是我們將顯著性水平設置為95%表示我們允許的5%錯誤率,在這裡我們看到我們超出了那個水平,即我們的零假設不成立,所以我們需要拒絕並提出這個硬幣實際上是一個狡猾的硬幣。

自由度: 現在想象你對期望值沒有興趣,你對數據分析感興趣。您有一個包含10個值的數據集。如果你沒有估算任何東西,每個值都可以取任何數字,對吧?每個值都可以完全自由變化。但是假設您想使用單樣本t檢驗來測試10個值的樣本的總體平均值。你現在有一個約束——平均值的估計。究竟是什麼約束?通過定義均值,必須保持以下關係:數據中所有值的總和必須等於n x mean,其中n是數據集中的值的數量。

因此,如果數據集有10個值,則10個值的總和必須等於平均值x 10.如果10個值的平均值為3.5(您可以選擇任何數字),則此約束要求10個值的總和必須等於10 x 3.5 = 35。

使用該約束,數據集中的第一個值可以自由變化。無論它是什麼價值,所有10個數字的總和仍然可以具有35的值。第二個值也可以自由變化,因為無論你選擇什麼值,它仍然允許所有值的總和的可能性是35歲。

現在讓我們看一些廣泛使用的假設檢驗類型: ——

  1. T校驗(學生T校驗)
  2. Z校驗
  3. ANOVA校驗
  4. 卡方檢驗

T—檢驗:t檢驗是一種推論統計量,用於確定在某些特徵中可能與兩組的均值之間是否存在顯著差異。它主要用於數據集,如通過翻轉硬幣100次記錄為結果的數據集,將遵循正態分佈並且可能具有未知的方差(鏈接:https://www.investopedia.com/terms/v/variance.asp)。T檢驗用作假設檢驗工具(鏈接:https://www.investopedia.com/terms/h/hypothesistesting.asp),其允許測試適用於群體的假設。

T檢驗有兩種類型:

  1. 單樣本t檢驗
  2. 雙樣本t檢驗


單樣本t檢驗:單樣本t檢驗確定樣本均值是否與已知或假設的總體均值具有統計學差異。單樣本t檢驗是參數檢驗。

例如:你有10個年齡,你正在檢查平均年齡是否為30歲。 (使用python查看下面的代碼)

from scipy.stats import ttest_1sampimport 
numpy as npages = np.genfromtxt
(“ages.csv”)print(ages)ages_mean = np.mean(ages)
print(ages_mean)tset, pval = ttest_1samp(ages, 30)
print(“p-values”,pval)if pval < 0.05: # alpha value is 0.05 or 5% print
(" we are rejecting null hypothesis")else:
print("we are accepting null hypothesis”)

上面代碼的結果如下:


使用Python進行機器學習的假設檢驗(附鏈接&代碼)


單樣本t測試結果

雙樣本t檢驗:獨立樣本t檢驗或雙樣本t檢驗比較兩個獨立組的平均值,以確定是否有統計證據表明相關的人口均值存在顯著差異。獨立樣本t檢驗是參數檢驗。該測試也稱為:獨立t檢驗。

示例:在week1和week2之間是否存在任何關聯(代碼在下面的python中給出)

from scipy.stats import ttest_indimport numpy as npweek1 = np.genfromtxt
("week1.csv", delimiter=",")
week2 = np.genfromtxt
("week2.csv", delimiter=",")print(week1)
print("week2 data :-\\n")print(week2)
week1_mean = np.mean(week1
)week2_mean = np.mean(week2)print
("week1 mean value:",week1_mean)print
("week2 mean value:",week2_mean)
week1_std = np.std(week1)week2_std =
np.std(week2)print("week1 std value:",week1_std)
print("week2 std value:",week2_std)
ttest,pval = ttest_ind(week1,week2)print
("p-value",pval)if pval <0.05: print
("we reject null hypothesis")else: print("we accept null hypothesis”)
使用Python進行機器學習的假設檢驗(附鏈接&代碼)


雙樣本t校驗結果

配對樣本t檢驗:配對樣本t檢驗也稱為依賴樣本t檢驗。這是一個單變量測試,測試2個相關變量之間的顯著差異。這方面的一個例子是,如果您在某些治療,病症或時間點之前和之後收集個人的血壓。

H0:表示兩個樣本之間的差異為0。

H1:兩個樣本之間的平均差異不是0。

執行下面的代碼可以得到同樣的結果。

import pandas as pd
from scipy import stats
df = pd.read_csv("blood_pressure.csv")
df[['bp_before','bp_after']].describe()
ttest,pval = stats.ttest_rel(df['bp_before'], df['bp_after'])
print(pval)
if pval<0.05:
print("reject null hypothesis")
else:
print("accept null hypothesis")

什麼時候可以運行Z校驗。

在統計學中使用幾種不同類型的校驗(即f檢驗,卡方檢驗,t檢驗)

(鏈接:https://www.statisticshowto.datascie

ncecentral.com/

probability——and——statistics/hypothesis——testing/f——test/

; https://www.statisticshowto.datasciencecentral.

com/probability——and——statistics/chi——square/https://www.statisticshowto.

datasciencecentral.com/

probability——and——statistics/t——test/ )。

在下列情況下,您將使用Z測試:

  • 您的樣本量大於30。(鏈接:
  • https://www.statisticshowto.datasciencecentral.com/probability——and——statistics/find——sample——size/)否則,請使用t檢驗。
  • 數據點應彼此獨立。(鏈接:
  • https://www.statisticshowto.datasciencecentral.com/probability——and——statistics/dependent——events——independent/)換句話說,一個數據點不相關或不影響另一個數據點。
  • 您的數據應該是正常分佈的。但是,對於大樣本量(超過30個),這並不總是重要的。
  • 您的數據應從人口中隨機選擇,每個項目都有相同的選擇機會。
  • 如果可能的話,樣本量應該相等。

再舉一個例子,我們使用z-test進行血壓測量,如156個單樣本Z檢驗。

import pandas as pd
from scipy import statsfrom statsmodels.stats
import weightstats as stestsztest ,pval = stests.ztest(df['bp_before'], x2=None, value=156)
print(float(pval))if pval<0.05:
print("reject null hypothesis")
else:
print("accept null hypothesis")

雙樣本Z檢驗 —— 在兩個樣本z檢驗中,類似於t檢驗,我們檢查兩個獨立的數據組並確定兩個組的樣本均值是否相等。

H0:兩組的平均值為0

H1:兩組的平均值不為0

例:我們檢查血液之後和血液數據之前的血液數據。(下面是python代碼)

ztest ,pval1 = stests.ztest(df['bp_before'],
x2=df['bp_after'],
value=0,alternative='two-sided')print(float(pval1))if pval<0.05:
print("reject null hypothesis")else: print("accept null hypothesis")

ANOVA(F-檢驗):t檢驗在處理兩組時效果很好,但有時我們想要同時比較兩組以上。例如,如果我們想根據種族等某些分類變量來測試選民年齡是否不同,我們必須比較每個級別的平均值或對變量進行分組。我們可以為每對組進行單獨的t檢驗,但是當你進行多次檢測時,你會增加誤報的可能性。方差分析或ANOVA

(鏈接:https://en.wikipedia.org/

wiki/Analysis_of_variance)是一種統計推斷測試,可讓您同時比較多個組。

F =組間變異性/組間變異性


使用Python進行機器學習的假設檢驗(附鏈接&代碼)


F校驗或ANOVA實例圖

與z和t分佈不同,F分佈沒有任何負值,因為由於每個偏差的平方,組內變異和組內變異總是正的。

單向F檢驗(ANOVA):根據它們的平均相似度和f分數來判斷兩個或更多個組是否相似。

示例:有3種不同的植物類別及其重量,需要檢查所有3組是否相似(下面是python代碼)

df_anova = pd.read_csv('PlantGrowth.csv')
df_anova = df_anova[['weight','group']]grps = pd.unique(df_anova.group.values)
d_data = {grp:df_anova['weight'][df_anova.group == grp] for grp in grps}
F, p = stats.f_oneway(d_data['ctrl'], d_data['trt1'], d_data['trt2'])
print("p-value for significance is: ", p)
if p<0.05:
print("reject null hypothesis")
else:
print("accept null hypothesis")

雙向F檢驗: 雙向F檢驗是單向檢驗的擴展(鏈接:https://stattrek.com/Help/Glossary.aspx?

Target=Categorical%20variable),當我們有2個自變量和2個以上的組時使用它。雙向F檢驗並不能說明哪個變量占主導地位。如果我們需要檢查個體意義,則需要進行事後測試。

現在讓我們來看看平均作物產量(不是任何小組的平均作物產量),以及每個因子的平均作物產量,以及組合在一起的因子

import statsmodels.api as sm
from statsmodels.formula.api import olsdf_anova2 =
pd.read_csv
("https://raw.githubusercontent.com/Opensourcefordatascience/Data-sets/master/crop_yield.csv")
model = ols('Yield ~ C(Fert)*C(Water)'
, df_anova2).fit()print(f"Overall model F
({model.df_model: .0f},{model.df_resid: .0f}) = {model.fvalue: .3f}, p = {model.f_pvalue: .4f}")
res = sm.stats.anova_lm(model, typ= 2)res

卡方檢驗: 當您從單個總體中獲得兩個分類變量時

(鏈接:https://stattrek.com/Help/

Glossary.aspx?Target=Categorical%20variable),將應用此測試。它用於確定兩個變量之間是否存在顯著關聯。

例如,在選舉調查中,選民可能按性別(男性或女性)和投票偏好(民主黨,共和黨或獨立團體)進行分類。我們可以使用卡方檢驗來確定獨立性,以確定性別是否與投票偏好相關

以下為python代碼

df_chi = pd.read_csv('chi-test.csv')
contingency_table=pd.crosstab(df_chi["Gender"],df_chi["Shopping?"])
print('contingency_table :-\\n',contingency_table)
#Observed ValuesObserved_Values = contingency_table.values print
("Observed Values :
\\n",Observed_Values)b=stats.chi2_contingency(contingency_table)
Expected_Values = b[3]print
("Expected Values :-\\n",Expected_Values)
no_of_rows=len(contingency_table.iloc[0:2,0])
no_of_columns=len(contingency_table.iloc[0,0:2])ddof=(no_of_rows-1)*(no_of_columns-1)print
("Degree of Freedom:-",ddof
)alpha = 0.05from scipy.stats import chi2chi_square=sum([(o-e)
**2./e for o,e in zip(Observed_Values,Expected_Values)])
chi_square_statistic=chi_square[0]+chi_square[1]print
("chi-square statistic:-",chi_square_statistic)
critical_value=chi2.ppf(q=1-alpha,df=ddof)print
('critical_value:',critical_value)
#p-valuep_value=1-chi2.cdf(x=chi_square_statistic,df=ddof)
print('p-value:',p_value)print('Significance level: ',alpha)
print('Degree of Freedom: ',ddof)
print('chi-square statistic:',chi_square_statistic)
print('critical_value:',critical_value)print('p-value:',p_value)
if chi_square_statistic>=critical_value: print
("Reject H0,There is a relationship
between 2 categorical variables")
else: print("Retain H0,There is no relationship
between 2 categorical variables")
if p_value<=alpha: print
("Reject H0,There is a relationship
between 2 categorical variables")else: print
("Retain H0,There is no relationship between 2 categorical variables")

原文鏈接:

https://towardsdatascience.com/hypothesis-testing-in-machine-learning-using-python-a0dc89e169ce

編輯:於騰凱

校對:林亦霖


譯者簡介

"
使用Python進行機器學習的假設檢驗(附鏈接&代碼)

作者:Jose Garcia

翻譯:張睿毅

校對:張一豪

本文約3800字,建議閱讀10分鐘。

作者給出了假設檢驗的解讀與Python實現的詳細的假設檢驗中的主要操作。

也許所有機器學習的初學者,或者中級水平的學生,或者統計專業的學生,都聽說過這個術語,假設檢驗。

我將簡要介紹一下這個當我學習時給我帶來了麻煩的主題。我把所有這些概念放在一起,並使用python進行示例。

在我尋求更廣泛的事情之前要考慮一些問題 ——

什麼是假設檢驗?我們為什麼用它?什麼是假設的基本條件?什麼是假設檢驗的重要參數?

讓我們一個個地開始吧:

1、 什麼是假設檢驗?

假設檢驗是一種統計方法,用於使用實驗數據進行統計決策。假設檢驗基本上是我們對人口參數做出的假設。

例如:你說班裡的學生平均年齡是40歲,或者一個男生要比女生高。

我們假設所有這些例子都需要一些統計方法來證明這些。無論我們假設什麼是真的,我們都需要一些數學結論。

2、我們為什麼要用它?

假設檢驗是統計學中必不可少的過程。假設檢驗評估關於總體的兩個相互排斥的陳述,以確定樣本數據最佳支持哪個陳述。當我們說一個發現具有統計學意義時,這要歸功於一個假設檢驗。

3、什麼是假設的基本條件?

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


不同均值和方差下的正態分佈

假設的基礎是規範化和標準規範化

(鏈接https://en.wikipedia.org/wiki/Normalization_(statistics);https://stats.stackexchange.com/questions/10289/whats——the——difference——between——normalization——and——standardization)。我們所有的假設都圍繞這兩個術語的基礎。讓我們看看這些。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化的正態曲線圖像和數據分佈及每個部分的百分比

你一定想知道這兩個圖像之間有什麼區別,有人可能會說我找不到,而其他人看到的圖像會比較平坦,而不是陡峭的。好吧夥計這不是我想要表達的,首先你可以看到有不同的正態曲線所有那些正態曲線可以有不同的均值和方差,如第二張圖像,如果你注意到圖形是合理分佈的,總是均值= 0和方差= 1。當我們使用標準化的正態數據時,z—score的概念就出現了。

正態分佈

如果變量的分佈具有正態曲線的形狀——一個特殊的鐘形曲線,則該變量被稱為正態分佈或具有正態分佈。正態分佈圖稱為正態曲線,它具有以下所有屬性:1.均值,中位數和眾數是相等。

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


正態分佈方程

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


標準化正態分佈

標準正態分佈是平均值為0,標準差為1的正態分佈

4、哪些是假設檢驗的重要參數?

  • 零假設:

在推論統計中,零假設是一種普遍的說法或默認的觀點,即兩個測量現象之間沒有關係,或者分組間沒有關聯

換句話說,它是一個基本假設,或基於領域或問題知識。

示例:公司的生產力=50個單位/天等

  • 備擇假設:

另一種假設是假設檢驗中使用的假設與零假設相反。通常認為觀察是真實效果的結果(疊加了一定量的偶然的變化)

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


零假設與備擇假設

示例:公司生產≠50單位/每天等。

重要程度:指我們接受或拒絕無效假設的重要程度。接受或拒絕假設不可能100%準確,因此我們選擇通常為5%的重要程度。

這通常用alpha(數學符號)表示,通常為0.05或5%,這意味著您的輸出應該有95%的信心在每個樣本中給出類似的結果。

I型錯誤:當我們拒絕零假設時,儘管該假設是正確的。類型I錯誤由alpha表示。在假設檢驗中,顯示關鍵區域的正常曲線稱為α區域

II型錯誤:當我們接受零假設但它是錯誤的。II型錯誤用beta表示。在假設檢驗中,顯示接受區域的正常曲線稱為β區域。

單尾測試:統計假設的測試,其中拒絕區域僅在採樣分佈的一側,稱為單尾測試

例如:一所大學有≥4000名學生或數據科學≤80%採用的組織。

雙尾測試:雙尾測試是一種統計測試,其中分佈的關鍵區域是雙側的,並測試樣本是否大於或小於某個值範圍。如果被測試的樣本屬於任一關鍵區域,則接受替代假設而不是零假設。

例如:一所大學!= 4000名學生或數據科學!= 80%的組織採用

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


單尾和雙尾圖像

P值:P值或計算概率是當研究問題的零假設(H 0)為真時,找到觀察到的或更極端的結果的概率 —— “極端”程度的定義取決於假設如何被檢測。

如果您的P值小於選定的顯著性水平,那麼就拒絕原假設,即接受樣本提供合理的證據來支持備選假設。它並不意味著“有意義”或“重要”的差異;這是在考慮結果的真實相關性時決定的。

例如:你有一枚硬幣而你不知道這是否公平或棘手所以讓我們決定零和備擇假設

H0:硬幣是一個公平的硬幣。

H1:硬幣是一個狡猾的硬幣。並且alpha = 5%或0.05

現在讓我們擲硬幣並計算p值(概率值)。

第一次投擲硬幣,結果是尾部P值= 50%(頭部和尾部的概率相等)

第二次拋硬幣,結果是尾巴,現在p值= 50/2 = 25%

同樣地,我們連續6次投擲並得到P值= 1.5%的結果,但是我們將顯著性水平設置為95%表示我們允許的5%錯誤率,在這裡我們看到我們超出了那個水平,即我們的零假設不成立,所以我們需要拒絕並提出這個硬幣實際上是一個狡猾的硬幣。

自由度: 現在想象你對期望值沒有興趣,你對數據分析感興趣。您有一個包含10個值的數據集。如果你沒有估算任何東西,每個值都可以取任何數字,對吧?每個值都可以完全自由變化。但是假設您想使用單樣本t檢驗來測試10個值的樣本的總體平均值。你現在有一個約束——平均值的估計。究竟是什麼約束?通過定義均值,必須保持以下關係:數據中所有值的總和必須等於n x mean,其中n是數據集中的值的數量。

因此,如果數據集有10個值,則10個值的總和必須等於平均值x 10.如果10個值的平均值為3.5(您可以選擇任何數字),則此約束要求10個值的總和必須等於10 x 3.5 = 35。

使用該約束,數據集中的第一個值可以自由變化。無論它是什麼價值,所有10個數字的總和仍然可以具有35的值。第二個值也可以自由變化,因為無論你選擇什麼值,它仍然允許所有值的總和的可能性是35歲。

現在讓我們看一些廣泛使用的假設檢驗類型: ——

  1. T校驗(學生T校驗)
  2. Z校驗
  3. ANOVA校驗
  4. 卡方檢驗

T—檢驗:t檢驗是一種推論統計量,用於確定在某些特徵中可能與兩組的均值之間是否存在顯著差異。它主要用於數據集,如通過翻轉硬幣100次記錄為結果的數據集,將遵循正態分佈並且可能具有未知的方差(鏈接:https://www.investopedia.com/terms/v/variance.asp)。T檢驗用作假設檢驗工具(鏈接:https://www.investopedia.com/terms/h/hypothesistesting.asp),其允許測試適用於群體的假設。

T檢驗有兩種類型:

  1. 單樣本t檢驗
  2. 雙樣本t檢驗


單樣本t檢驗:單樣本t檢驗確定樣本均值是否與已知或假設的總體均值具有統計學差異。單樣本t檢驗是參數檢驗。

例如:你有10個年齡,你正在檢查平均年齡是否為30歲。 (使用python查看下面的代碼)

from scipy.stats import ttest_1sampimport 
numpy as npages = np.genfromtxt
(“ages.csv”)print(ages)ages_mean = np.mean(ages)
print(ages_mean)tset, pval = ttest_1samp(ages, 30)
print(“p-values”,pval)if pval < 0.05: # alpha value is 0.05 or 5% print
(" we are rejecting null hypothesis")else:
print("we are accepting null hypothesis”)

上面代碼的結果如下:


使用Python進行機器學習的假設檢驗(附鏈接&代碼)


單樣本t測試結果

雙樣本t檢驗:獨立樣本t檢驗或雙樣本t檢驗比較兩個獨立組的平均值,以確定是否有統計證據表明相關的人口均值存在顯著差異。獨立樣本t檢驗是參數檢驗。該測試也稱為:獨立t檢驗。

示例:在week1和week2之間是否存在任何關聯(代碼在下面的python中給出)

from scipy.stats import ttest_indimport numpy as npweek1 = np.genfromtxt
("week1.csv", delimiter=",")
week2 = np.genfromtxt
("week2.csv", delimiter=",")print(week1)
print("week2 data :-\\n")print(week2)
week1_mean = np.mean(week1
)week2_mean = np.mean(week2)print
("week1 mean value:",week1_mean)print
("week2 mean value:",week2_mean)
week1_std = np.std(week1)week2_std =
np.std(week2)print("week1 std value:",week1_std)
print("week2 std value:",week2_std)
ttest,pval = ttest_ind(week1,week2)print
("p-value",pval)if pval <0.05: print
("we reject null hypothesis")else: print("we accept null hypothesis”)
使用Python進行機器學習的假設檢驗(附鏈接&代碼)


雙樣本t校驗結果

配對樣本t檢驗:配對樣本t檢驗也稱為依賴樣本t檢驗。這是一個單變量測試,測試2個相關變量之間的顯著差異。這方面的一個例子是,如果您在某些治療,病症或時間點之前和之後收集個人的血壓。

H0:表示兩個樣本之間的差異為0。

H1:兩個樣本之間的平均差異不是0。

執行下面的代碼可以得到同樣的結果。

import pandas as pd
from scipy import stats
df = pd.read_csv("blood_pressure.csv")
df[['bp_before','bp_after']].describe()
ttest,pval = stats.ttest_rel(df['bp_before'], df['bp_after'])
print(pval)
if pval<0.05:
print("reject null hypothesis")
else:
print("accept null hypothesis")

什麼時候可以運行Z校驗。

在統計學中使用幾種不同類型的校驗(即f檢驗,卡方檢驗,t檢驗)

(鏈接:https://www.statisticshowto.datascie

ncecentral.com/

probability——and——statistics/hypothesis——testing/f——test/

; https://www.statisticshowto.datasciencecentral.

com/probability——and——statistics/chi——square/https://www.statisticshowto.

datasciencecentral.com/

probability——and——statistics/t——test/ )。

在下列情況下,您將使用Z測試:

  • 您的樣本量大於30。(鏈接:
  • https://www.statisticshowto.datasciencecentral.com/probability——and——statistics/find——sample——size/)否則,請使用t檢驗。
  • 數據點應彼此獨立。(鏈接:
  • https://www.statisticshowto.datasciencecentral.com/probability——and——statistics/dependent——events——independent/)換句話說,一個數據點不相關或不影響另一個數據點。
  • 您的數據應該是正常分佈的。但是,對於大樣本量(超過30個),這並不總是重要的。
  • 您的數據應從人口中隨機選擇,每個項目都有相同的選擇機會。
  • 如果可能的話,樣本量應該相等。

再舉一個例子,我們使用z-test進行血壓測量,如156個單樣本Z檢驗。

import pandas as pd
from scipy import statsfrom statsmodels.stats
import weightstats as stestsztest ,pval = stests.ztest(df['bp_before'], x2=None, value=156)
print(float(pval))if pval<0.05:
print("reject null hypothesis")
else:
print("accept null hypothesis")

雙樣本Z檢驗 —— 在兩個樣本z檢驗中,類似於t檢驗,我們檢查兩個獨立的數據組並確定兩個組的樣本均值是否相等。

H0:兩組的平均值為0

H1:兩組的平均值不為0

例:我們檢查血液之後和血液數據之前的血液數據。(下面是python代碼)

ztest ,pval1 = stests.ztest(df['bp_before'],
x2=df['bp_after'],
value=0,alternative='two-sided')print(float(pval1))if pval<0.05:
print("reject null hypothesis")else: print("accept null hypothesis")

ANOVA(F-檢驗):t檢驗在處理兩組時效果很好,但有時我們想要同時比較兩組以上。例如,如果我們想根據種族等某些分類變量來測試選民年齡是否不同,我們必須比較每個級別的平均值或對變量進行分組。我們可以為每對組進行單獨的t檢驗,但是當你進行多次檢測時,你會增加誤報的可能性。方差分析或ANOVA

(鏈接:https://en.wikipedia.org/

wiki/Analysis_of_variance)是一種統計推斷測試,可讓您同時比較多個組。

F =組間變異性/組間變異性


使用Python進行機器學習的假設檢驗(附鏈接&代碼)


F校驗或ANOVA實例圖

與z和t分佈不同,F分佈沒有任何負值,因為由於每個偏差的平方,組內變異和組內變異總是正的。

單向F檢驗(ANOVA):根據它們的平均相似度和f分數來判斷兩個或更多個組是否相似。

示例:有3種不同的植物類別及其重量,需要檢查所有3組是否相似(下面是python代碼)

df_anova = pd.read_csv('PlantGrowth.csv')
df_anova = df_anova[['weight','group']]grps = pd.unique(df_anova.group.values)
d_data = {grp:df_anova['weight'][df_anova.group == grp] for grp in grps}
F, p = stats.f_oneway(d_data['ctrl'], d_data['trt1'], d_data['trt2'])
print("p-value for significance is: ", p)
if p<0.05:
print("reject null hypothesis")
else:
print("accept null hypothesis")

雙向F檢驗: 雙向F檢驗是單向檢驗的擴展(鏈接:https://stattrek.com/Help/Glossary.aspx?

Target=Categorical%20variable),當我們有2個自變量和2個以上的組時使用它。雙向F檢驗並不能說明哪個變量占主導地位。如果我們需要檢查個體意義,則需要進行事後測試。

現在讓我們來看看平均作物產量(不是任何小組的平均作物產量),以及每個因子的平均作物產量,以及組合在一起的因子

import statsmodels.api as sm
from statsmodels.formula.api import olsdf_anova2 =
pd.read_csv
("https://raw.githubusercontent.com/Opensourcefordatascience/Data-sets/master/crop_yield.csv")
model = ols('Yield ~ C(Fert)*C(Water)'
, df_anova2).fit()print(f"Overall model F
({model.df_model: .0f},{model.df_resid: .0f}) = {model.fvalue: .3f}, p = {model.f_pvalue: .4f}")
res = sm.stats.anova_lm(model, typ= 2)res

卡方檢驗: 當您從單個總體中獲得兩個分類變量時

(鏈接:https://stattrek.com/Help/

Glossary.aspx?Target=Categorical%20variable),將應用此測試。它用於確定兩個變量之間是否存在顯著關聯。

例如,在選舉調查中,選民可能按性別(男性或女性)和投票偏好(民主黨,共和黨或獨立團體)進行分類。我們可以使用卡方檢驗來確定獨立性,以確定性別是否與投票偏好相關

以下為python代碼

df_chi = pd.read_csv('chi-test.csv')
contingency_table=pd.crosstab(df_chi["Gender"],df_chi["Shopping?"])
print('contingency_table :-\\n',contingency_table)
#Observed ValuesObserved_Values = contingency_table.values print
("Observed Values :
\\n",Observed_Values)b=stats.chi2_contingency(contingency_table)
Expected_Values = b[3]print
("Expected Values :-\\n",Expected_Values)
no_of_rows=len(contingency_table.iloc[0:2,0])
no_of_columns=len(contingency_table.iloc[0,0:2])ddof=(no_of_rows-1)*(no_of_columns-1)print
("Degree of Freedom:-",ddof
)alpha = 0.05from scipy.stats import chi2chi_square=sum([(o-e)
**2./e for o,e in zip(Observed_Values,Expected_Values)])
chi_square_statistic=chi_square[0]+chi_square[1]print
("chi-square statistic:-",chi_square_statistic)
critical_value=chi2.ppf(q=1-alpha,df=ddof)print
('critical_value:',critical_value)
#p-valuep_value=1-chi2.cdf(x=chi_square_statistic,df=ddof)
print('p-value:',p_value)print('Significance level: ',alpha)
print('Degree of Freedom: ',ddof)
print('chi-square statistic:',chi_square_statistic)
print('critical_value:',critical_value)print('p-value:',p_value)
if chi_square_statistic>=critical_value: print
("Reject H0,There is a relationship
between 2 categorical variables")
else: print("Retain H0,There is no relationship
between 2 categorical variables")
if p_value<=alpha: print
("Reject H0,There is a relationship
between 2 categorical variables")else: print
("Retain H0,There is no relationship between 2 categorical variables")

原文鏈接:

https://towardsdatascience.com/hypothesis-testing-in-machine-learning-using-python-a0dc89e169ce

編輯:於騰凱

校對:林亦霖


譯者簡介

使用Python進行機器學習的假設檢驗(附鏈接&代碼)


張睿毅,北京郵電大學大二物聯網在讀。我是一個愛自由的人。在郵電大學讀第一年書我就四處跑去蹭課,折騰整一年驚覺,與其在當下焦慮,不如在前輩中沉澱。於是在大二以來,堅持讀書,不敢稍歇。資本主義國家的科學觀不斷刷新我的認知框架,同時因為出國考試很早出分,也更早地感受到自己才是那個一直被束縛著的人。太多真英雄在社會上各自閃耀著光芒。這才開始,立志終身向遇到的每一個人學習。做一個純粹的計算機科學裡面的小學生。喜歡算法,數據挖掘,圖像識別,自然語言處理,神經網絡,人工智能等方向。

— 完 —

關注清華-青島數據科學研究院官方微信公眾平臺“THU數據派”及姊妹號“數據派THU”獲取更多講座福利及優質內容。

"

相關推薦

推薦中...