Python KS檢驗以及其餘非引數檢驗的實現

2021-10-25 06:22:11 字數 3657 閱讀 4583

4 其餘的非引數檢驗

5 參考

定義:檢驗乙個分布f(x)與理論分布g(x)【比如正態分佈】是否一致,或兩個觀測值分布是否有顯著差異的檢驗方法

根據定義,ks檢驗可以分為兩大類:

對應的原假設和備擇假設分別為:

第一種:

h0:指定數列服從特定分布

h1:指定數列不服從特定分布

第二種:

h0:兩個數列分布一致

h1:兩個數列分布不一致

檢驗統計量:

d = max|f(x)-g(x)|

當實際檢驗統計量d>d(n,α) 則拒絕原假設,否則不拒絕;或者使用p值進行判斷

from scipy.stats import kstest

import numpy as np

x = np.random.normal(0,

1,1000

)test_stat = kstest(x,

'norm'

)test_stat

kstestresult(statistic=0.03366055793439415, pvalue=0.2026106842514801)
p值大於顯著性水平,不拒絕原假設,說明指定數列服從正態分佈

from scipy.stats import kstest

import numpy as np

x = np.random.binomial(0,

1,1000

)test_stat = kstest(x,

'norm'

)test_stat

kstestresult(statistic=0.5, pvalue=1.064517291557782e-231)
p值小於顯著性水平,拒絕原假設,說明指定數列不服從正態分佈

from scipy.stats import ks_2samp

beta=np.random.beta(7,

5,1000

)norm=np.random.normal(0,

1,1000

)ks_2samp(beta,norm)

kstestresult(statistic=0.573, pvalue=5.500890404235437e-152)
p值小於顯著性水平,拒絕原假設,說明兩個數列分布不一致

from scipy.stats import ks_2samp

beta=np.random.beta(7,

5,1000

)norm=np.random.beta(7,

5,1000

)ks_2samp(beta,norm)

kstestresult(statistic=0.048, pvalue=0.19957365535779528)
p值大於顯著性水平,不拒絕原假設,說明兩個數列分布一致

from scipy import stats

x =[1,

3,5,

7,9]

y =[2,

4,6,

8,10]

stats.wilcoxon(x,y)

wilcoxonresult(statistic=0.0, pvalue=0.0625)
p值大於顯著性水平,不拒絕原假設,說明兩個數列在當前顯著性水平下中位數一致

from scipy import stats

x =[

1.26

,0.34

,0.70

,1.75

,50.57

,1.55

,0.08

,0.42

,0.50

,3.20

,0.15

,0.49

,0.95

,0.24

,1.37

,0.17

,6.98

,0.10

,0.94

,0.38

]y =

[2.37

,2.16

,14.82

,1.73

,41.04

,0.23

,1.32

,2.91

,39.41

,0.11

,27.44

,4.51

,0.51

,4.50

,0.18

,14.68

,4.66

,1.30

,2.06

,1.19

]stats.wilcoxon(x,y)

wilcoxonresult(statistic=58.0, pvalue=0.082550048828125)
stats.ttest_ind(x, y)
ttest_indresult(statistic=-1.2494667131530823, pvalue=0.2191358879608406)
t檢驗和w檢驗都不拒絕原假設,認為兩總體均值和中位數相等

from scipy import stats

x =[1,

3,5,

7,9]

y =[2,

4,6,

8,10]

stats.kruskal(x, y)

kruskalresult(statistic=0.2727272727272734, pvalue=0.6015081344405895)
p值大於顯著性水平,不拒絕原假設,說明兩組數列在當前顯著性水平下中位數一致

from scipy import stats

x =[1,

3,5,

7,9]

y =[2,

4,6,

8,10]

stats.mannwhitneyu(x, y)

mannwhitneyuresult(statistic=10.0, pvalue=0.33805165701157347)
p值大於顯著性水平,不拒絕原假設,說明兩組數列在當前顯著性水平下中位數一致

引數檢驗與非引數檢驗

引數檢驗 parameter test 全稱引數假設檢驗,是指對引數平均值 方差進行的統計檢驗。引數檢驗是推斷統計的重要組成部分。當總體分布已知 如總體為正態分佈 根據樣本資料對總體分布的統計引數進行推斷。非引數檢驗 nonparametric tests 是統計分析方法的重要組成部分,它與引數檢驗...

提高非引數檢驗功效的潛在方法

有 見參考資料 指出,某些小樣本情況下kolmogorov smirnov檢驗可能優於wilcoxon檢驗。嚴格來說,wilcoxon檢驗和ks檢驗的功效對比需多次重複模擬進行評估,此處不再贅述 見參考資料的 本文僅以乙個簡單的典型示例呈現。筆者根據wilcoxon的特點和ks檢驗的優勢 對分布敏感...

R語言與非引數檢驗之單樣本位置檢驗

學習筆記 學習書目 統計學 從資料到結論 吳喜之 很多檢驗都假定了總體的背景分布,但也有些檢驗沒有假定總體分布的具體形式,這些檢驗多根據資料觀測值的相對大小建立檢驗統計量,然後找到在零假設下這些統計量的分布,並且看這些統計量的資料實現是否在零假設下屬於小概率事件。這種和資料本身的總體分布無關的檢驗稱...