應用於機器學習的15個統計假設測試速查指南,附 Python程式碼

儘管在日常開發中會用到數以百計的統計假設測試,但在機器學習實際專案中可能只需要使用到其中一小部分。

在本文中,將涵括最流行的Python API的機器學習專案統計假設測試的備忘單。

每項統計測試均以下述統一的方式給出,包括:

測試名稱

測試檢測內容

測試的關鍵假設

如何解釋測試結果

用於測試的Python API。

注:當涉及到資料的預期分佈或樣本大小這樣的假設時,即使在不滿足假設的情況下,給定測試的結果雖然可能會不盡如人意,但是也不會無法使用。

通常,資料樣本域必須足夠大,以便能夠分析出它們的分佈。

在某些情況下,可以對資料進行校正以滿足假設,例如:可以透過刪除異常值將接近正態分佈修正為正態分佈,或在樣本有不同方差時使用對自由度的修正。

最後,可能會對某一特定問題進行多項測試,例如:正態化。有時不能用統計資料直接得出清晰的答案,測試後得到的答案卻是機率。為此,可以利用不同的方式考慮同一問題,得出不同的答案。所以,對於某些資料問題,需要進行多個不同的測試。

在我的新書中會涉及:統計假設檢驗、重取樣方法,估計統計和非引數方法,並附有有29個進階教程和完整的原始碼。讓我們開始吧。

更新於2018年11月:增加了對所涉測試的詳細論述。

15個 Python統計假設測試(備忘單)

教程概述

本教程分為以下四部分:

1.正態性測試

1。 Shapiro-Wilk測試

2。 D’Agostino’s K^2測試

3。 Anderson-Darling測試

2. 相關性測試

1。 Pearson相關係數

2。Spearmans序相關性

3 Kendall序相關性

4 Chi-Squared測試。

3 引數統計假設測試

1。學生t測試

2。配對學生t測試

3。方差分析測試(ANOVA)

4。重複測量方差分析(ANOVA)測試

4.非引數統計假設測試

1。Mann-Whitney U測試

2。Wilcoxon帶符號序測試

3。Kruskal-Wallis H測試

4。Friedman測試

1。 正態性測試

本節所列出的統計測試,可以利用它們來檢查資料是否為高斯分佈。

Shapiro-Wilk測試

測試資料樣本是否為高斯分佈。

假設:

各樣本中的觀察資料獨立同分布(iid)。

解釋:

H0:樣本為高斯分佈。

H1:樣本為非高斯分佈。

Python程式碼。

15個 Python統計假設測試(備忘單)

詳細資訊請參考:

scipy。stats。shapiro

維基百科:Shapiro-Wilk 測試

D’Agostino’s K^2 測試

測試資料樣本是否為高斯分佈。

假設:

各樣本中的觀察資料獨立同分布(iid)。

解釋

H0:樣本為高斯分佈。

H1:樣本為非高斯分佈。

Python程式碼

15個 Python統計假設測試(備忘單)

詳細資訊請參考:

scipy。stats。normaltest

維基百科:D’Agostino’s $K$-squared 測試

Anderson-Darling測試

測試資料樣本是否為高斯分佈。

假設

·各樣本中的觀察資料獨立同分布(iid)。

解釋

H0:樣本為高斯分佈。

H1:樣本為非高斯分佈。

Python程式碼

15個 Python統計假設測試(備忘單)

詳細資訊請參考:

scipy。stats。anderson

維基百科:Anderson-Darling測試

2。 相關性測試

本節所列出的統計測試,可利用它們來檢查兩個樣本是否相關。

Pearson相關係數

檢驗兩個樣本是否線性相關。

假設:

·各樣本中的觀察資料獨同分布(iid)。

·各樣本中的觀測資料呈正態分佈。

·各樣本的觀測資料有相同的方差。

解釋

·H0:兩個樣本之間相互獨立。

·H1:樣本之間存在依存關係。

Python程式碼

15個 Python統計假設測試(備忘單)

詳細資訊請參考:

scipy。stats。pearsonr

維基百科:Pearson相關係數

Spearman序相關性

測試兩個樣本是否存在單調關係。

假設

·各樣本中的觀察資料獨立同分布(iid)。

·各樣本中的觀測資料可以進行排序。

解釋

·H0:兩個樣本之間相互獨立。

·H1:樣本之間存在依存關係。

Python程式碼

15個 Python統計假設測試(備忘單)

詳細資訊請參考:

scipy。stats。spearmanr

維基百科:Spearman序相關係數

Kendall序相關性

測試兩個樣本是否存在單調關係。

假設

各樣本中的觀察資料獨立同分布(iid)。

各樣本中的觀測資料都可以進行排序。

解釋

H0:兩個樣本之間相互獨立。

H1:樣本之間存在依存關係。

Python程式碼。

15個 Python統計假設測試(備忘單)

詳細資訊請參考:

scipy。stats。kendalltau

維基百科Kendall序相關係數

Chi-Squared測試

測試兩個範疇變數是相關的還是獨立的。

假設

·計算相依表時使用的觀察資料是獨立的。

·相依表的每個單元格中至少有25個例子。

解釋

·H0:兩個樣本之間相互獨立。

·H1:樣本之間存在依存關係。

Python程式碼

15個 Python統計假設測試(備忘單)

詳細資訊請參考:

scipy。stats。chi2_contingency

維基百科:Chi-Squared測試

3。 引數統計假設測試

本節列出了可用於比較資料樣本的統計測試。

學生t測試

測試兩個獨立樣本的均值是否有顯著不同。

假設

·各樣本中的觀察結果獨立同分布(IID)。

·各個樣本中的觀察資料呈正態分佈。

·各樣本中的觀察資料具有相同的方差。

解釋

·H0:樣本的均值相等。

·H1:樣本的均值不等。

Python程式碼

15個 Python統計假設測試(備忘單)

詳細資訊請參考:

scipy。stats。ttest_ind

維基百科:Student’s t-test測試

成對的學生t測試

測試兩個樣本對的均值是否存在顯著性差異。

假設

·各樣本中的觀測資料是獨立同分布的(Iid)。

·各樣本中的觀測資料呈正態分佈。

·各樣本的觀測資料有相同的方差。

·各樣本的觀測資料成對出現。

解釋

·H0:樣本的均值相等。

·H1:樣本的均值不等。

Python程式碼

15個 Python統計假設測試(備忘單)

詳細資訊請參考:

scipy。stats。ttest_rel

維基百科:Student’s t-test測試

方差分析(ANOVA)測試

測試兩個或多個獨立樣本的均值是否存在顯著性差異。

假設

·各樣本中的觀測資料獨立同分布 (Iid)。

各樣本中的觀測資料呈正態分佈。

各樣本的觀測資料有相同的方差。

解釋

·H0:樣本的均值相等。

·H1:一個或多個樣本的均值不等。

Python程式碼

15個 Python統計假設測試(備忘單)

重複測量方差分析(ANOVA)測試

測試兩個或更多樣本對的均值是否存在顯著性差異。

假設

各樣本中的觀測資料獨立同分布 (Iid)。

各樣本中的觀測資料呈正態分佈。

各樣本的觀測資料有相同的方差。

各樣本的觀測資料成對。

解釋

·H0:樣本的均值相等。

·H1:一個或多個樣本的均值不等。

Python程式碼

目前Python不支援這種測試。

詳細資訊請參考:

·維基百科:方差分析

4。 非引數統計假設測試

MannWhitney U測試。

測試兩個獨立樣本的分佈是否相等。

假設

·各樣本中的觀測資料為獨立同分布的(Iid)。

·可對各樣本中的觀察資料進行排序。

解釋

·H0:樣本之間同分布。

·H1:樣本之間分佈不同。

Python程式碼

15個 Python統計假設測試(備忘單)

詳細資訊請參考:

scipy。stats。mannwhitneyu

維基百科:Mann-Whitney U 測試

Wilcoxon帶符號 –序測試

測試樣本對的分佈是否相等。

假設:

各樣本中的觀測資料為獨立同分布 (Iid)。

可對各樣本中的觀察資料進行排序。

各樣本的觀察資料是成對的。

解釋

H0:樣本之間同分布。

H1:樣本之間的分佈不等。

Python程式碼。

15個 Python統計假設測試(備忘單)

詳細資訊請參考:

scipy。stats。wilcoxon

維基百科 signed-rank 測試

Kruskal-Wallis H 測試

測試兩個或多個獨立樣本的分佈是否相等。

假設

·各樣本中的觀察資料獨立同分布(IID)。

·可對各樣本中的觀察資料進行排序。

解釋:

·H0:所有樣本同分布。

·H1:一個或多個樣本的分佈不相同。

Python程式碼

15個 Python統計假設測試(備忘單)

詳細資訊請參考:

scipy。stats。kruskal

維基百科Kruskal-Wallis方差分析

Friedman 測試

測試兩對或多對樣本的分佈是否相等。

假設

·各樣本中的觀察資料獨立同分布(IID)。

·可對各樣本中的觀察資料進行排序。

·各樣本的觀測資料成對。

解釋

·H0:所有樣本同分布。

·H1:一個或多個樣本的分佈不同。

Python程式碼

15個 Python統計假設測試(備忘單)

詳細資訊請參考:

scipy。stats。friedmanchisquare

維基百科Friedman測試

課外閱讀

如果想深入瞭解本專題的話,本節給出了更多關於本主題的參考資料。

·Python正態測試通論

·如何利用相關性來理解變數之間的關係?

如何利用Python進行的引數統計測試?

統計假設測試通論

總結

在本教程中,對機器學習專案中可能需要用到的重要的統計假設測試做了介紹。

具體而言,透過本文可以瞭解到:

在不同應用環境下使用到的不同種類的測試,如:正態性檢查、變數之間的關係和樣本之間的差異。

每個測試的關鍵假設以及如何解釋測試結果。

·如何使用Python API實現該測試。

還有問題嗎?

可在下面的評論中提出你的問題,我會盡量作答。

我是否遺漏了一項重要的統計測試?或者遺漏了列表中的測試的關鍵假設?請在下面的評論中告訴我。