日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正态性检验

發布時間:2023/12/19 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正态性检验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

總第177篇/張俊紅

在前面的文章中講過,很多模型的假設條件都是數據是服從正態分布的。這篇文章主要講講如何判斷數據是否符合正態分布。主要分為兩種方法:描述統計方法和統計檢驗方法。

01.描述統計方法

描述統計就是用描述的數字或圖表來判斷數據是否符合正態分布。常用的方法有Q-Q圖、P-P圖、直方圖、莖葉圖。

1.1 Q-Q圖

此Q-Q非用于聊天的QQ,Q是quantile的縮寫,即分位數。分位數就是將數據從小到大排序,然后切成100份,看不同位置處的值。比如中位數,就是中間位置的值。

Q-Q圖的x軸為分位數,y軸為分位數對應的樣本值。x-y是散點圖的形式,通過散點圖可以擬合出一條直線,如果這條直線是從左下角到右上角的一條直線,則可以判斷數據符合正態分布,否則則不可以。

擬合出來的這條直線和正態分布之間有什么關系呢?為什么可以根據這條直線來判斷數據是否符合正態分布呢。

我們先來想一下正態分布的特征,正態分布的x軸為樣本值,從左到右x是逐漸增大的,y軸是每個樣本值對應的出現的概率。概率值先上升后下降,且在中間位置達到最高。

可以把Q-Q圖中的y軸理解成正態分布中的x軸,如果擬合出來的直線是45度,可以保證中位數兩邊的數值分布是一樣的,即正態分布中基于中位數左右對稱。

在Python中可以使用如下代碼來繪制Q-Q圖:

from?scipy?import?stats fig?=?plt.figure() res?=?stats.probplot(x,?plot=plt) plt.show()

與Q-Q圖類似的是P-P圖,兩者的區別是前者的y軸是具體的分位數對應的樣本值,而后者是累計概率。

1.2 直方圖

直方圖分為兩種,一種是頻率分布直方圖,一種是頻數分布直方圖。頻數就是樣本值出現的次數,頻率是某個值出現的次數與所有樣本值出現總次數的比值。

在Python中我們可以使用如下代碼來繪制頻數分布直方圖:

import?matplotlib.pyplot?as?plt plt.hist(x,bins?=?10)

可以使用如下代碼來繪制頻率分布直方圖:

import?seaborn?as?sns sns.distplot(x)

與直方圖類似的還有莖葉圖,莖葉圖是類似于表格形式去表示每個值出現的頻次。

02.統計檢驗方法

講完了描述統計的方法,我們來看一下統計檢驗的方法。統計檢驗的方法主要有SW檢驗、KS檢驗、AD檢驗、W檢驗。

SW檢驗中的S就是偏度,W就是峰度,峰度和偏度與正態的關系我們在前面的文章有講過,沒看過的同學可以去看看:你到底偏哪邊的?

2.1 KS檢驗

KS檢驗是基于樣本累積分布函數來進行判斷的。可以用于判斷某個樣本集是否符合某個已知分布,也可以用于檢驗兩個樣本之間的顯著性差異。

如果是判斷某個樣本是否符合某個已知分布,比如正態分布,則需要先計算出標準正態分布的累計分布函數,然后在計算樣本集的累計分布函數。兩個函數之間在不同的取值處會有不同的差值。我們只需要找出來差值最大的那個點D。然后基于樣本集的樣本數和顯著性水平找到差值邊界值(類似于t檢驗的邊界值)。判斷邊界值和D的關系,如果D小于邊界值,則可以認為樣本的分布符合已知分布,否則不可以。

PDF( probability density function):概率密度函數。
CDF( cumulative distribution function):累積分布函數,是概率密度函數的積分。

在Python中有現成的包可以直接用于KS檢驗:

from?scipy.stats?import?kstest kstest(x,cdf?=?"norm")

x表示待檢驗的樣本集,cdf用來指明要判斷的已知分布類型,有:‘norm’,’expon’,’logistic’,’gumbel’,’gumbel_l’, gumbel_r’,
‘extreme1’值可以選,其中norm表示正態分布檢驗。

kstest會返回兩個值:D和對應的p_value值。

2.2 AD檢驗

AD檢驗是在KS基礎上進行改造的,KS檢驗只考慮了兩個分布之間差值最大的那個點,但是這容易受異常值的影響。AD檢驗考慮了分布上每個點處的差值。

在Python中可以用如下代碼:

from?scipy.stats?import?anderson anderson(x,?dist='norm')

x為待檢驗的樣本集,dist用來指明已知分布的類型。可選值與ks檢驗中可選值一致。

上面代碼會返回三個結果:?第一個為統計值,第二個為評判值,第三個為每個評判值對應的顯著性水平

AD檢驗和anderson有啥關系呢?anderson發明了AD檢驗。

2.3 W檢驗

W檢驗(Shapiro-Wilk的簡稱)是基于兩個分布的相關性來進行判斷,會得出一個類似于皮爾遜相關系數的值。值越大,說明兩個分布越相關,越符合某個分布。

在Python中的實現代碼如下:

from?scipy.stats?import?shapiro shapiro(x)

上面的代碼會返回兩個結果:W值和其對應的p_value。

shapiro是專門用于正態性檢驗的,所以不需要指明分布類型。且 shapiro 不適合做樣本數>5000的正態性檢驗。

03.非正態數據的處理辦法

一般數據不是正態就是偏態,如果偏態不嚴重可以對數據取平方根來進行轉換。如果偏態很嚴重,則可以對數據進行對數轉換。轉換方法在偏態文章中也有講過。


你還可以看:

聊聊置信度與置信區間

統計學的假設檢驗

一元線性回歸分析

方差分析

多因素方差分析

卡方檢驗講解

多重比較法-LSD

多元回歸分析

總結

以上是生活随笔為你收集整理的正态性检验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。