最常用的的17種假設(shè)檢驗(附Python實例)
常用的假設(shè)檢驗
在統(tǒng)計學(xué)中,存在著數(shù)百種假設(shè)檢驗。而在數(shù)據(jù)分析、機器學(xué)習(xí)項目中,只有一小部分較常使用。本文介紹了17種常用的假設(shè)檢驗,包括適用場景及使用Python API的例子。讓我們一起來學(xué)習(xí)吧!
目錄
1. 正態(tài)分布檢驗
1.1 Shapiro-Wilk Test(W 檢驗)
1.2 D’Agostino’s Test
1.3 Anderson-Darling Test
2. 相關(guān)性檢驗
2.1 Pearson相關(guān)系數(shù)
2.2 Spearman等級相關(guān)
2.3 Kendall等級相關(guān)
2.4 Chi-Squared Test卡方檢驗
3. 參數(shù)檢驗
3.1 學(xué)生t檢驗
3.2 配對樣本的t檢驗
3.3 方差分析ANOVA
3.4 重復(fù)觀測的方差分析
4. 非參數(shù)檢驗
4.1 Mann-Whitney U Test
4.2 Wilcoxon Signed-Rank Test
4.3 Kruskal-Wallis H Test
4.4 Friedman Test
5. 時間序列的平穩(wěn)性檢驗
5.1 Augmented Dickey-Fuller Unit Root Test
5.2 Kwiatkowski-Phillips-Schmidt-Shin
1. 正態(tài)分布檢驗
1.1 Shapiro-Wilk Test(W 檢驗)
用于檢驗樣本數(shù)據(jù)是否來自服從正態(tài)分布的總體。
在實際應(yīng)用中,W 檢驗被認(rèn)為是一個可靠的正態(tài)性檢驗,但是也有人認(rèn)為該檢驗更適用于較小的數(shù)據(jù)樣本(數(shù)千個觀測值以內(nèi))。
使用前提:
各樣本觀察值為獨立同分布的
原假設(shè):樣本數(shù)據(jù)服從正態(tài)分布
Python實現(xiàn)代碼:
#?Shapiro-Wilk?Normality?Test
from?scipy.stats?import?shapiro
data?=?[0.873,?2.817,?0.121,?-0.945,?-0.055,?-1.436,?0.360,?-1.478,?-1.637,?-1.869]
stat,?p?=?shapiro(data)
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('不能拒絕原假設(shè),樣本數(shù)據(jù)服從正態(tài)分布')
else:
????print('不服從正態(tài)分布')
1.2 D’Agostino’s Test
用于檢驗樣本數(shù)據(jù)是否來自服從正態(tài)分布的總體。
D’Agostino’s Test是通過計算樣本數(shù)據(jù)的峰度和偏度,來判斷其分布是否偏離正態(tài)分布。
偏度是對數(shù)據(jù)分布對稱性的測度,衡量數(shù)據(jù)分布是否左偏或右偏。 峰度是對數(shù)據(jù)分布平峰或尖峰程度的測度,它是一種簡單而常用的正態(tài)性統(tǒng)計檢驗量。
使用前提:
各樣本觀察值為獨立同分布的
原假設(shè):樣本數(shù)據(jù)服從正態(tài)分布
Python實現(xiàn)代碼:
#?D'Agostino's?K^2?Normality?Test
from?scipy.stats?import?normaltest
data?=?[0.873,?2.817,?0.121,?-0.945,?-0.055,?-1.436,?0.360,?-1.478,?-1.637,?-1.869]
stat,?p?=?normaltest(data)
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('不能拒絕原假設(shè),樣本數(shù)據(jù)服從正態(tài)分布')
else:
????print('不服從正態(tài)分布')
1.3 Anderson-Darling Test
用于檢驗樣本數(shù)據(jù)是否服從某一已知分布。
該檢驗修改自一種更復(fù)雜的非參數(shù)的擬合良好的檢驗統(tǒng)計(Kolmogorov-Smirnov Test)。SciPy中的anderson()函數(shù)實現(xiàn)了Anderson-Darling檢驗,函數(shù)參數(shù)為樣本數(shù)據(jù)及要檢驗的分布名稱,默認(rèn)情況下,為'norm'正態(tài)分布,還支持對'expon'指數(shù)分布,'logistic'分布,以及'gumbel'耿貝爾分布的檢驗,它會返回一個包含不同顯著性水平下的p值的列表,而不是一個單一的p值,因此這可以更全面地解釋結(jié)果。
使用前提:
各樣本觀察值為獨立同分布的
原假設(shè):樣本數(shù)據(jù)服從某一已知分布
Python實現(xiàn)代碼:
#?Anderson-Darling?Normality?Test
from?scipy.stats?import?anderson
data?=?[0.873,?2.817,?0.121,?-0.945,?-0.055,?-1.436,?0.360,?-1.478,?-1.637,?-1.869]
result?=?anderson(data)
print('stat=%.3f'?%?(result.statistic))
for?i?in?range(len(result.critical_values)):
????sl,?cv?=?result.significance_level[i],?result.critical_values[i]
????if?result.statistic?????????print('顯著性水平為%.2f時,P值為%.1f,不能拒絕原假設(shè),樣本數(shù)據(jù)服從正態(tài)分布'?%?(sl/100,?cv))
????else:
????????print('顯著性水平為%.2f時,P值為%.1f,?拒絕原假設(shè),樣本數(shù)據(jù)不服從正態(tài)分布'?%?(sl/100,?cv))
#?stat=0.424
#?顯著性水平為0.15時,P值為0.5,不能拒絕原假設(shè),樣本數(shù)據(jù)服從正態(tài)分布
#?顯著性水平為0.10時,P值為0.6,不能拒絕原假設(shè),樣本數(shù)據(jù)服從正態(tài)分布
#?顯著性水平為0.05時,P值為0.7,不能拒絕原假設(shè),樣本數(shù)據(jù)服從正態(tài)分布
#?顯著性水平為0.03時,P值為0.8,不能拒絕原假設(shè),樣本數(shù)據(jù)服從正態(tài)分布
#?顯著性水平為0.01時,P值為0.9,不能拒絕原假設(shè),樣本數(shù)據(jù)服從正態(tài)分布
2. 相關(guān)性檢驗
2.1 Pearson相關(guān)系數(shù)
用于檢驗兩樣本數(shù)據(jù)之間線性關(guān)系的強度。
該檢驗將兩個變量之間的協(xié)方差進(jìn)行歸一化處理以給出可解釋的分?jǐn)?shù),為一個介于-1到1之間的值,-1表示完全負(fù)相關(guān),1表示完全正相關(guān),0表示沒有相關(guān)性。
使用前提:
各樣本觀察值為獨立同分布的 樣本數(shù)據(jù)服從正態(tài)分布 每個樣本觀測值的方差相等
原假設(shè):兩變量相互獨立
Python實現(xiàn)代碼:
#?Pearson's?Correlation?test
from?scipy.stats?import?pearsonr
data1?=?[0.873,?2.817,?0.121,?-0.945,?-0.055,?-1.436,?0.360,?-1.478,?-1.637,?-1.869]
data2?=?[0.353,?3.517,?0.125,?-7.545,?-0.555,?-1.536,?3.350,?-1.578,?-3.537,?-1.579]
stat,?p?=?pearsonr(data1,?data2)
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('兩變量相互獨立')
else:
????print('兩變量可能存在線性相關(guān)關(guān)系')
2.2 Spearman等級相關(guān)
用于檢驗兩變量是否具有單調(diào)關(guān)系。
當(dāng)兩變量因非線性關(guān)系相關(guān),或者不服從正態(tài)分布時,Spearman相關(guān)系數(shù)可以用來反映變量間的相關(guān)性強度。如果存在線性關(guān)系,也可以使用這種方法來檢驗,但是可能導(dǎo)致計算出的相關(guān)系數(shù)較低。
Spearman不是使用樣本數(shù)據(jù)本身的協(xié)方差和標(biāo)準(zhǔn)差來計算相關(guān)系數(shù)的,而是根據(jù)樣本值的相對秩次來計算統(tǒng)計量,這是非參數(shù)統(tǒng)計中常用的方法。
使用前提:
各樣本觀察值為獨立同分布的 各樣本數(shù)據(jù)可定序
原假設(shè):兩變量相互獨立
Python實現(xiàn)代碼:
#?Spearman's?Rank?Correlation?Test
from?scipy.stats?import?spearmanr
data1?=?[0.873,?2.817,?0.121,?-0.945,?-0.055,?-1.436,?0.360,?-1.478,?-1.637,?-1.869]
data2?=?[0.353,?3.517,?0.125,?-7.545,?-0.555,?-1.536,?3.350,?-1.578,?-3.537,?-1.579]
stat,?p?=?spearmanr(data1,?data2)
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('兩變量相互獨立')
else:
????print('兩變量可能存在相關(guān)關(guān)系')
2.3 Kendall等級相關(guān)
用于檢驗兩變量是否具有單調(diào)關(guān)系。
使用前提:
各樣本觀察值為獨立同分布的 各樣本數(shù)據(jù)可定序
原假設(shè):兩變量相互獨立
Python實現(xiàn)代碼:
#?Kendall's?Rank?Correlation?Test
from?scipy.stats?import?kendalltau
data1?=?[0.873,?2.817,?0.121,?-0.945,?-0.055,?-1.436,?0.360,?-1.478,?-1.637,?-1.869]
data2?=?[0.353,?3.517,?0.125,?-7.545,?-0.555,?-1.536,?3.350,?-1.578,?-3.537,?-1.579]
stat,?p?=?kendalltau(data1,?data2)
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('兩變量相互獨立')
else:
????print('兩變量可能存在相關(guān)關(guān)系')
2.4 Chi-Squared Test卡方檢驗
用于檢驗兩分類變量是否相關(guān)。
卡方檢驗的零假設(shè)是一個分類變量的觀測頻數(shù)與該分類變量的期望頻數(shù)相吻合。檢驗統(tǒng)計量服從卡方分布。
使用前提:
用于計算兩變量的列聯(lián)表的觀測值是獨立的 列聯(lián)表的每個單元格的期望計數(shù)不小于5
原假設(shè):兩變量相互獨立
Python實現(xiàn)代碼:
#?Chi-squared?test?with?similar?proportions
from?scipy.stats?import?chi2_contingency
from?scipy.stats?import?chi2
#?列聯(lián)表
table?=?[[10,?20,?30],
????????[6,??9,??17]]
print('列聯(lián)表')
print(table)
stat,?p,?dof,?expected?=?chi2_contingency(table)
print('自由度dof=%d'?%?dof)
print('期望分布')
print(expected)
#?[[10.43478261?18.91304348?30.65217391]
#??[?5.56521739?10.08695652?16.34782609]]
#?采用統(tǒng)計量推斷
prob?=?0.95
critical?=?chi2.ppf(prob,?dof)
print('probability=%.3f,?critical=%.3f,?stat=%.3f'?%?(prob,?critical,?stat))
if?abs(stat)?>=?critical:
????print('拒絕原假設(shè),兩變量存在相關(guān)關(guān)系')
else:
????print('不能拒絕原假設(shè),兩變量相互獨立')
#?采用p值推斷
alpha?=?1.0?-?prob
print('significance=%.3f,?p=%.3f'?%?(alpha,?p))
if?p?<=?alpha:
????print('拒絕原假設(shè),兩變量存在相關(guān)關(guān)系')
else:
????print('不能拒絕原假設(shè),兩變量相互獨立')
3. 參數(shù)檢驗
3.1 學(xué)生t檢驗
用于檢驗兩獨立樣本數(shù)據(jù)的均值是否存在顯著差異。
使用前提:
各樣本觀察值為獨立同分布的 樣本數(shù)據(jù)服從正態(tài)分布 每個樣本觀測值的方差相等
原假設(shè):兩樣本集的均值相同
Python實現(xiàn)代碼:
#?Student's?t-test
from?scipy.stats?import?ttest_ind
data1?=?[0.873,?2.817,?0.121,?-0.945,?-0.055,?-1.436,?0.360,?-1.478,?-1.637,?-1.869]
data2?=?[1.142,?-0.432,?-0.938,?-0.729,?-0.846,?-0.157,?0.500,?1.183,?-1.075,?-0.169]
stat,?p?=?ttest_ind(data1,?data2)
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('不能拒絕原假設(shè),兩樣本集分布相同')
else:
????print('拒絕原假設(shè),樣本集分布可能不同')
3.2 配對樣本的t檢驗
用于檢驗兩配對樣本的均值是否存在顯著差異。
使用前提:
各樣本觀察值為獨立同分布的 樣本數(shù)據(jù)服從正態(tài)分布 每個樣本觀測值的方差相等 樣本的數(shù)據(jù)是一一對應(yīng)的關(guān)系
原假設(shè):各樣本集的均值相同
Python實現(xiàn)代碼:
#?Paired?Student's?t-test
from?scipy.stats?import?ttest_rel
data1?=?[0.873,?2.817,?0.121,?-0.945,?-0.055,?-1.436,?0.360,?-1.478,?-1.637,?-1.869]
data2?=?[1.142,?-0.432,?-0.938,?-0.729,?-0.846,?-0.157,?0.500,?1.183,?-1.075,?-0.169]
stat,?p?=?ttest_rel(data1,?data2)
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('不能拒絕原假設(shè),兩樣本集分布相同')
else:
????print('拒絕原假設(shè),兩樣本集分布可能不同')
3.3 方差分析ANOVA
用于檢驗兩個及以上獨立樣本數(shù)據(jù)的均值是否存在顯著差異。
使用前提:
各樣本觀察值為獨立同分布的 樣本數(shù)據(jù)服從正態(tài)分布 每個樣本觀測值的方差相等
原假設(shè):各樣本集均值相同
Python實現(xiàn)代碼:
#?Analysis?of?Variance?Test
from?scipy.stats?import?f_oneway
data1?=?[0.873,?2.817,?0.121,?-0.945,?-0.055,?-1.436,?0.360,?-1.478,?-1.637,?-1.869]
data2?=?[1.142,?-0.432,?-0.938,?-0.729,?-0.846,?-0.157,?0.500,?1.183,?-1.075,?-0.169]
data3?=?[-0.208,?0.696,?0.928,?-1.148,?-0.213,?0.229,?0.137,?0.269,?-0.870,?-1.204]
stat,?p?=?f_oneway(data1,?data2,?data3)
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('不能拒絕原假設(shè),樣本集分布相同')
else:
????print('拒絕原假設(shè),樣本集分布可能不同')
3.4 重復(fù)觀測的方差分析
用于檢驗兩或多配對樣本的均值是否存在顯著差異。
使用前提:
各樣本觀察值為獨立同分布的 樣本數(shù)據(jù)服從正態(tài)分布 每個樣本觀測值的方差相等 樣本的數(shù)據(jù)是一一對應(yīng)的關(guān)系
Python中Scipy暫不支持該檢驗
4. 非參數(shù)檢驗
4.1 Mann-Whitney U Test
用于檢驗兩獨立樣本分布是否相同。該檢驗的原理是,將兩樣本集合并起來,一起排序,然后計算兩樣本的值是隨機混合排序的,還是聚集的。秩序隨機則代表兩樣本集分布無差異,而出現(xiàn)樣本值聚集情況則表明有差異。為了使檢驗有效,要求每個樣本數(shù)據(jù)至少有20個觀測值。
使用前提:
各樣本觀察值為獨立同分布的 各樣本集中數(shù)據(jù)可定序
原假設(shè):兩樣本集分布相同
Python實現(xiàn)代碼:
#?Mann-Whitney?U?Test
from?scipy.stats?import?mannwhitneyu
data1?=?[0.873,?2.817,?0.121,?-0.945,?-0.055,?-1.436,?0.360,?-1.478,?-1.637,?-1.869]
data2?=?[1.142,?-0.432,?-0.938,?-0.729,?-0.846,?-0.157,?0.500,?1.183,?-1.075,?-0.169]
stat,?p?=?mannwhitneyu(data1,?data2)
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('不能拒絕原假設(shè),兩樣本集分布相同')
else:
????print('拒絕原假設(shè),樣本集分布可能不同')
4.2 Wilcoxon Signed-Rank Test
用于檢驗兩配對樣本分布是否相同。
樣本不獨立,因此不能使用Mann-Whitney U檢驗,而是使用Wilcoxon符號秩檢驗。這相當(dāng)于配對樣本的學(xué)生t檢驗,但是適用于定序數(shù)據(jù),而不是服從正態(tài)分布的實測數(shù)據(jù)。
使用前提:
各樣本觀察值為獨立同分布的 各樣本集中數(shù)據(jù)可定序 樣本的數(shù)據(jù)是一一對應(yīng)的關(guān)系
原假設(shè):兩樣本集分布相同
Python實現(xiàn)代碼:
#?Wilcoxon?Signed-Rank?Test
from?scipy.stats?import?wilcoxon
data1?=?[0.873,?2.817,?0.121,?-0.945,?-0.055,?-1.436,?0.360,?-1.478,?-1.637,?-1.869]
data2?=?[1.142,?-0.432,?-0.938,?-0.729,?-0.846,?-0.157,?0.500,?1.183,?-1.075,?-0.169]
stat,?p?=?wilcoxon(data1,?data2)
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('不能拒絕原假設(shè),兩樣本集分布相同')
else:
????print('拒絕原假設(shè),樣本集分布可能不同')
4.3 Kruskal-Wallis H Test
用于檢驗兩個及以上獨立樣本的分布是否相同。
Kruskal-Wallis 檢驗是單因素方差分析檢驗的非參數(shù)版本,可以用來確定兩個以上的獨立樣本是否有不同的分布,可以被認(rèn)為是Mann-Whitney U檢驗的一般化。該檢驗的零假設(shè)是“所有樣本數(shù)據(jù)從同一個分布中抽取的”,若拒絕原假設(shè),則表明有足夠證據(jù)證明至少有一個樣本與其他樣本不同,但是該假設(shè)并不能確定具體是哪幾個不同。因此,如果需要確定,可再使用Mann-Whitney檢驗進(jìn)行兩兩對比。
使用前提:
各樣本觀察值為獨立同分布的 各樣本集中數(shù)據(jù)可定序
原假設(shè):各樣本集的分布相同 備擇假設(shè):至少有一個樣本集與其他樣本不同
Python實現(xiàn)代碼:
#?Kruskal-Wallis?H?Test
from?scipy.stats?import?kruskal
data1?=?[0.873,?2.817,?0.121,?-0.945,?-0.055,?-1.436,?0.360,?-1.478,?-1.637,?-1.869]
data2?=?[1.142,?-0.432,?-0.938,?-0.729,?-0.846,?-0.157,?0.500,?1.183,?-1.075,?-0.169]
data3?=?[-0.208,?0.696,?0.928,?-1.148,?-0.213,?0.229,?0.137,?0.269,?-0.870,?-1.204]
stat,?p?=?kruskal(data1,?data2,?data3)
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('不能拒絕原假設(shè),樣本集分布相同')
else:
????print('拒絕原假設(shè),樣本集分布可能不同')
4.4 Friedman Test
用于檢驗兩個及以上配對樣本的分布是否相同。Friedman Test是重復(fù)測量方差分析的非參數(shù)版本,需要每組至少有10個樣本,當(dāng)?shù)贸鲲@著性結(jié)果,表明至少有一個樣本與其他樣本存在差異。
使用前提:
各樣本觀察值為獨立同分布的 各樣本集中數(shù)據(jù)可定序 樣本的數(shù)據(jù)是一一對應(yīng)的關(guān)系
原假設(shè):各樣本集的分布相同
Python實現(xiàn)代碼:
#?Friedman?Test
from?scipy.stats?import?friedmanchisquare
data1?=?[0.873,?2.817,?0.121,?-0.945,?-0.055,?-1.436,?0.360,?-1.478,?-1.637,?-1.869]
data2?=?[1.142,?-0.432,?-0.938,?-0.729,?-0.846,?-0.157,?0.500,?1.183,?-1.075,?-0.169]
data3?=?[-0.208,?0.696,?0.928,?-1.148,?-0.213,?0.229,?0.137,?0.269,?-0.870,?-1.204]
stat,?p?=?friedmanchisquare(data1,?data2,?data3)
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('不能拒絕原假設(shè),樣本集分布相同')
else:
????print('拒絕原假設(shè),樣本集分布可能不同')
5. 時間序列的平穩(wěn)性檢驗
下面是針對時間序列數(shù)據(jù)的平穩(wěn)性檢驗。直、當(dāng)數(shù)據(jù)沒有呈現(xiàn)明顯的模式特征的話(趨勢性、季節(jié)性),可認(rèn)為它是平穩(wěn)的。平穩(wěn)序列中各觀察值在某個固定水平上波動,雖然在不同時間段波動程度不同,但是并不存在某種規(guī)律,可認(rèn)為是隨機的。
5.1 Augmented Dickey-Fuller Unit Root Test
用于檢驗時間序列是否具有單位根,例如是否具有趨勢或者更普遍的自回歸。單位根是時間序列的一種特性,使時間序列具有非平穩(wěn)性。單位根的存在意味著時間序列是非平穩(wěn)的。
使用前提:
觀察值在時間上是有序的
原假設(shè):存在一個單位根,序列是非平穩(wěn)的 備擇假設(shè):不存在單位根,序列平穩(wěn) (注意:該檢驗的原假設(shè)與下一個檢驗的假設(shè)是不同的;如果p值小于顯著性水平,認(rèn)為該時間序列平穩(wěn))
Python實現(xiàn)代碼:
#?Augmented?Dickey-Fuller?unit?root?test
from?statsmodels.tsa.stattools?import?adfuller
data?=?[0,?1,?2,?3,?4,?5,?6,?7,?8,?9]
stat,?p,?lags,?obs,?crit,?t?=?adfuller(data)
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('時間序列是不平穩(wěn)的')
else:
????print('時間序列平穩(wěn)')
5.2 Kwiatkowski-Phillips-Schmidt-Shin
用于檢驗時間序列在確定性趨勢上的平穩(wěn)性。
使用前提:
觀察值在時間上是有序的
Python實現(xiàn)代碼:
注意,在默認(rèn)情況下,該函數(shù)參數(shù)regression='c',代表
原假設(shè):時間序列是平穩(wěn)的。(圍繞一個常數(shù))
備擇假設(shè):時間序列是不平穩(wěn)的。
#?Kwiatkowski-Phillips-Schmidt-Shin?test
#?The?data?is?stationary?around?a?constant?(default).
from?statsmodels.tsa.stattools?import?kpss
data?=?[0,?1,?2,?3,?4,?5,?6,?7,?8,?9]
stat,?p,?lags,?crit?=?kpss(data,?regression='c')
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('時間序列是平穩(wěn)的')
else:
????print('時間序列是不平穩(wěn)的')
#?stat=0.410,?p=0.073
#?時間序列是平穩(wěn)的
而使參數(shù)regression='ct',可檢驗時間序列在確定趨勢上的平穩(wěn)性。
#?Kwiatkowski-Phillips-Schmidt-Shin?test
#?The?data?is?stationary?around?a?trend
from?statsmodels.tsa.stattools?import?kpss
data?=?[0,?1,?2,?3,?4,?5,?6,?7,?8,?9]
stat,?p,?lags,?crit?=?kpss(data,?regression='ct')
print('stat=%.3f,?p=%.3f'?%?(stat,?p))
if?p?>?0.05:
????print('時間序列是趨勢穩(wěn)定的')
else:
????print('時間序列是趨勢不穩(wěn)定的')
#?stat=0.433,?p=0.010
#?時間序列是趨勢不穩(wěn)定的
參考資料:
https://machinelearningmastery.com/statistical-hypothesis-tests-in-python-cheat-sheet/

推薦閱讀
歡迎長按掃碼關(guān)注「數(shù)據(jù)管道」
