Python正態性檢驗

2021-08-02 02:51:06 字數 2178 閱讀 1252

在對資料建模前,很多時候我們需要對資料做正態性檢驗,進而通過檢驗結果確定下一步的分析方案。下面介紹 python 中常用的幾種正態性檢驗方法:

kstest 是乙個很強大的檢驗模組,除了正態性檢驗,還能檢驗 scipy.stats 中的其他資料分布型別

對於正態性檢驗,我們只需要手動設定三個引數即可:

>>> 

import numpy as np

>>>

from scipy.stats import kstest

>>> x = np.linspace(-15, 15, 9)

>>> kstest(x, 'norm')

(0.44435602715924361, 0.038850142705171065)

輸出結果中第乙個為統計數,第二個為p值

具體見官方文件 scipy.stats.kstest

與 kstest 不同,shapiro 是專門用來做正態性檢驗的模組

注意:shapiro 不適合做樣本數>5000的正態性檢驗,檢驗結果的p值可能不準確

scipy.stats.shapiro(x, a=none, reta=false)

一般我們只用 x 引數就行,x 即待檢驗的資料

>>> 

from scipy import stats

>>> np.random.seed(12345678)

>>> x = stats.norm.rvs(loc=5, scale=3, size=100)

>>> stats.shapiro(x)

(0.9772805571556091, 0.08144091814756393)

輸出結果中第乙個為統計數,第二個為p值

具體見官方文件 scipy.stats.shapiro

normaltest 也是專門做正態性檢驗的模組

scipy.stats.normaltest(a, axis=0, nan_policy=』propagate』)

這裡的三個引數都有必要看一下:

>>> 

import numpy as np

>>>

from scipy.stats import normaltest

>>> x = np.random.randn(10, 20)

>>> normaltest(x, axis=none)

>>> normaltestresult(statistic=0.3582062593239369, pvalue=0.83601967652440512)

輸出結果中第乙個為統計數,第二個為p值

具體見官方文件 scipy.stats.normaltest

anderson 是修改版的 kstest,說是增強版也不為過。也可以做多種分布的檢驗,預設的檢驗時正態性檢驗。

scipy.stats.anderson(x, dist=』norm』)

引數這裡就不多說了,但對輸出結果說明一下:

anderson 有三個輸出值,第乙個為統計數,第二個為評判值,第三個為顯著性水平, 評判值與顯著性水平對應

對於正態性檢驗,顯著性水平為:15%, 10%, 5%, 2.5%, 1%

>>> 

import numpy as np

>>>

from scipy.stats import anderson

>>> x = np.linspace(-15, 15, 9)

>>> anderson(x)

>>> andersonresult(statistic=0.13676646631470213, critical_values=array([ 0.507, 0.578, 0.693, 0.808, 0.961]), significance_level=array([ 15. , 10. , 5. , 2.5, 1. ]))

具體見官方文件 scipy.stats.anderson

正態性檢驗

安德森 達令檢驗樣本資料是否來自特定分布,包括分布 norm expon gumbel extreme1 or logistic 原假設 h0 樣本服從特定分布 備擇假設 h1 樣本不服從特定分布 返回 anderson 有三個輸出值,第乙個為統計數,第二個為評判值,第三個為顯著性水平,評判值與顯著...

SAS 單變數正態性檢驗

其中w normal為shapiro wilk正態性檢驗統計量,pr顯著性水平 當n 2000時正態性檢驗用shapiro wilk統計量 當n 2000時用kolmogorov d統計量 在檢驗中,我們的零假設是變數服從正態分佈,如果test for normality 檢驗結果的p值小於0.05...

MATLAB正態性分布檢驗(final)

正態性分布檢驗 c.s.ruan x figure hist x 頻數直方圖 肉眼看是否左右對稱,中間多,兩邊少 figure histfit x 正態曲線擬合 normfit x 正態性檢驗 離散點是否分布在一條直線上,表明樣本來自正態分佈,否則是非正態分佈 引數估計 muhat,sigmahat...