使用K-S檢驗一個數列是否服從正態分佈、兩個數列是否服從相同的分佈

 

假設檢驗的基本思想:python

       若對整體的某個假設是真實的,那麼不利於或者不能支持這一假設的事件A在一次試驗中是幾乎不可能發生的。若是事件A真的發生了,則有理由懷疑這一假設的真實性,從而拒絕該假設。dom

實質分析:spa

        假設檢驗實質上是對原假設是否正確進行檢驗,所以檢驗過程當中要使原假設獲得維護,使之不輕易被拒絕;否認原假設必須有充分的理由。同時,當原假設被接受時,也只能認爲否認該假設的根據不充分,而不是認爲它絕對正確。code

 

一、檢驗指定的數列是否服從正態分佈orm

藉助假設檢驗的思想,利用K-S檢驗能夠對數列的性質進行檢驗,看代碼:blog

from scipy.stats import kstest
import numpy as np
 
x = np.random.normal(0,1,1000)
test_stat = kstest(x, 'norm')

 

 

首先生成1000個服從N(0,1)標準正態分佈的隨機數,在使用k-s檢驗該數據是否服從正態分佈,提出假設:x從正態分佈。事件

最終返回的結果,p-value=0.76584491300591395,比指定的顯著水平(假設爲5%)大,則咱們不能拒絕假設:x服從正態分佈。ip

這並非說x服從正態分佈必定是正確的,而是說沒有充分的證據證實x不服從正態分佈。所以咱們的假設被接受,認爲x服從正態分佈。ci

若是p-value小於咱們指定的顯著性水平,則咱們能夠確定的拒絕提出的假設,認爲x確定不服從正態分佈,這個拒絕是絕對正確的。class

 

二、檢驗指定的兩個數列是否服從相同分佈

from scipy.stats import ks_2samp
beta=np.random.beta(7,5,1000)
norm=np.random.normal(0,1,1000)
ks_2samp(beta,norm)

  

 
 

咱們先分別使用beta分佈和normal分佈產生兩個樣本大小爲1000的數列,使用ks_2samp檢驗兩個數列是否來自同一個樣本,提出假設:beta和norm服從相同的分佈。

最終返回的結果,p-value=4.7405805465370525e-159,比指定的顯著水平(假設爲5%)小,則咱們徹底能夠拒絕假設:beta和norm不服從同一分佈。

相關文章
相關標籤/搜索