15個 Python統計假設測試(備忘單)
應用於機器學習的15個統計假設測試速查指南,附 Python程式碼
儘管在日常開發中會用到數以百計的統計假設測試,但在機器學習實際專案中可能只需要使用到其中一小部分。
在本文中,將涵括最流行的Python API的機器學習專案統計假設測試的備忘單。
每項統計測試均以下述統一的方式給出,包括:
測試名稱
測試檢測內容
測試的關鍵假設
如何解釋測試結果
用於測試的Python API。
注:當涉及到資料的預期分佈或樣本大小這樣的假設時,即使在不滿足假設的情況下,給定測試的結果雖然可能會不盡如人意,但是也不會無法使用。
通常,資料樣本域必須足夠大,以便能夠分析出它們的分佈。
在某些情況下,可以對資料進行校正以滿足假設,例如:可以透過刪除異常值將接近正態分佈修正為正態分佈,或在樣本有不同方差時使用對自由度的修正。
最後,可能會對某一特定問題進行多項測試,例如:正態化。有時不能用統計資料直接得出清晰的答案,測試後得到的答案卻是機率。為此,可以利用不同的方式考慮同一問題,得出不同的答案。所以,對於某些資料問題,需要進行多個不同的測試。
在我的新書中會涉及:統計假設檢驗、重取樣方法,估計統計和非引數方法,並附有有29個進階教程和完整的原始碼。讓我們開始吧。
更新於2018年11月:增加了對所涉測試的詳細論述。
教程概述
本教程分為以下四部分:
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程式碼。
詳細資訊請參考:
scipy。stats。shapiro
維基百科:Shapiro-Wilk 測試
D’Agostino’s K^2 測試
測試資料樣本是否為高斯分佈。
假設:
各樣本中的觀察資料獨立同分布(iid)。
解釋
H0:樣本為高斯分佈。
H1:樣本為非高斯分佈。
Python程式碼
詳細資訊請參考:
scipy。stats。normaltest
維基百科:D’Agostino’s $K$-squared 測試
Anderson-Darling測試
測試資料樣本是否為高斯分佈。
假設
·各樣本中的觀察資料獨立同分布(iid)。
解釋
H0:樣本為高斯分佈。
H1:樣本為非高斯分佈。
Python程式碼
詳細資訊請參考:
scipy。stats。anderson
維基百科:Anderson-Darling測試
2。 相關性測試
本節所列出的統計測試,可利用它們來檢查兩個樣本是否相關。
Pearson相關係數
檢驗兩個樣本是否線性相關。
假設:
·各樣本中的觀察資料獨同分布(iid)。
·各樣本中的觀測資料呈正態分佈。
·各樣本的觀測資料有相同的方差。
解釋
·H0:兩個樣本之間相互獨立。
·H1:樣本之間存在依存關係。
Python程式碼
詳細資訊請參考:
scipy。stats。pearsonr
維基百科:Pearson相關係數
Spearman序相關性
測試兩個樣本是否存在單調關係。
假設
·各樣本中的觀察資料獨立同分布(iid)。
·各樣本中的觀測資料可以進行排序。
解釋
·H0:兩個樣本之間相互獨立。
·H1:樣本之間存在依存關係。
Python程式碼
詳細資訊請參考:
scipy。stats。spearmanr
維基百科:Spearman序相關係數
Kendall序相關性
測試兩個樣本是否存在單調關係。
假設
各樣本中的觀察資料獨立同分布(iid)。
各樣本中的觀測資料都可以進行排序。
解釋
H0:兩個樣本之間相互獨立。
H1:樣本之間存在依存關係。
Python程式碼。
詳細資訊請參考:
scipy。stats。kendalltau
維基百科Kendall序相關係數
Chi-Squared測試
測試兩個範疇變數是相關的還是獨立的。
假設
·計算相依表時使用的觀察資料是獨立的。
·相依表的每個單元格中至少有25個例子。
解釋
·H0:兩個樣本之間相互獨立。
·H1:樣本之間存在依存關係。
Python程式碼
詳細資訊請參考:
scipy。stats。chi2_contingency
維基百科:Chi-Squared測試
3。 引數統計假設測試
本節列出了可用於比較資料樣本的統計測試。
學生t測試
測試兩個獨立樣本的均值是否有顯著不同。
假設
·各樣本中的觀察結果獨立同分布(IID)。
·各個樣本中的觀察資料呈正態分佈。
·各樣本中的觀察資料具有相同的方差。
解釋
·H0:樣本的均值相等。
·H1:樣本的均值不等。
Python程式碼
詳細資訊請參考:
scipy。stats。ttest_ind
維基百科:Student’s t-test測試
成對的學生t測試
測試兩個樣本對的均值是否存在顯著性差異。
假設
·各樣本中的觀測資料是獨立同分布的(Iid)。
·各樣本中的觀測資料呈正態分佈。
·各樣本的觀測資料有相同的方差。
·各樣本的觀測資料成對出現。
解釋
·H0:樣本的均值相等。
·H1:樣本的均值不等。
Python程式碼
詳細資訊請參考:
scipy。stats。ttest_rel
維基百科:Student’s t-test測試
方差分析(ANOVA)測試
測試兩個或多個獨立樣本的均值是否存在顯著性差異。
假設
·各樣本中的觀測資料獨立同分布 (Iid)。
各樣本中的觀測資料呈正態分佈。
各樣本的觀測資料有相同的方差。
解釋
·H0:樣本的均值相等。
·H1:一個或多個樣本的均值不等。
Python程式碼
重複測量方差分析(ANOVA)測試
測試兩個或更多樣本對的均值是否存在顯著性差異。
假設
各樣本中的觀測資料獨立同分布 (Iid)。
各樣本中的觀測資料呈正態分佈。
各樣本的觀測資料有相同的方差。
各樣本的觀測資料成對。
解釋
·H0:樣本的均值相等。
·H1:一個或多個樣本的均值不等。
Python程式碼
目前Python不支援這種測試。
詳細資訊請參考:
·維基百科:方差分析
4。 非引數統計假設測試
MannWhitney U測試。
測試兩個獨立樣本的分佈是否相等。
假設
·各樣本中的觀測資料為獨立同分布的(Iid)。
·可對各樣本中的觀察資料進行排序。
解釋
·H0:樣本之間同分布。
·H1:樣本之間分佈不同。
Python程式碼
詳細資訊請參考:
scipy。stats。mannwhitneyu
維基百科:Mann-Whitney U 測試
Wilcoxon帶符號 –序測試
測試樣本對的分佈是否相等。
假設:
各樣本中的觀測資料為獨立同分布 (Iid)。
可對各樣本中的觀察資料進行排序。
各樣本的觀察資料是成對的。
解釋
H0:樣本之間同分布。
H1:樣本之間的分佈不等。
Python程式碼。
詳細資訊請參考:
scipy。stats。wilcoxon
維基百科 signed-rank 測試
Kruskal-Wallis H 測試
測試兩個或多個獨立樣本的分佈是否相等。
假設
·各樣本中的觀察資料獨立同分布(IID)。
·可對各樣本中的觀察資料進行排序。
解釋:
·H0:所有樣本同分布。
·H1:一個或多個樣本的分佈不相同。
Python程式碼
詳細資訊請參考:
scipy。stats。kruskal
維基百科Kruskal-Wallis方差分析
Friedman 測試
測試兩對或多對樣本的分佈是否相等。
假設
·各樣本中的觀察資料獨立同分布(IID)。
·可對各樣本中的觀察資料進行排序。
·各樣本的觀測資料成對。
解釋
·H0:所有樣本同分布。
·H1:一個或多個樣本的分佈不同。
Python程式碼
詳細資訊請參考:
scipy。stats。friedmanchisquare
維基百科Friedman測試
課外閱讀
如果想深入瞭解本專題的話,本節給出了更多關於本主題的參考資料。
·Python正態測試通論
·如何利用相關性來理解變數之間的關係?
如何利用Python進行的引數統計測試?
統計假設測試通論
總結
在本教程中,對機器學習專案中可能需要用到的重要的統計假設測試做了介紹。
具體而言,透過本文可以瞭解到:
在不同應用環境下使用到的不同種類的測試,如:正態性檢查、變數之間的關係和樣本之間的差異。
每個測試的關鍵假設以及如何解釋測試結果。
·如何使用Python API實現該測試。
還有問題嗎?
可在下面的評論中提出你的問題,我會盡量作答。
我是否遺漏了一項重要的統計測試?或者遺漏了列表中的測試的關鍵假設?請在下面的評論中告訴我。