MATLAB 檢驗資料正態分佈及程式碼實現
上篇簡要介紹了正態分佈檢測的必要性和主要分析方法,此篇主要介紹如何通過MATLAB判斷分析資料正態特性。
1. 主要方法
MATLAB檢測資料正態特性主要通過數值測定和圖形分析,其中數值測定指通過JB等假設檢驗方法進行測定分析資料,圖形分析方法是指通過分析資料正態擬合程度判斷數是否符合正態分佈,主要有Q-Q圖、直方圖以及normplot工具箱。
2.程式碼實現
(1)假設檢驗
JB: H= jbtest (X)
H = jbtest (X,alpha)
[h, p, jbstat, cv] = jbtest (X,alpha)
其中,alpha為顯著水平(預設0.005)
h 為測試結果,如果h=0,則認為X服從正態分佈,如果 h=1,則否定 X服從正態分佈;
p 為接受假設的概率,p越接近於0,可拒絕正態分佈假設;
CV為是否拒絕原假設的臨界值
其他檢驗方法為:
- kstest(Kolmogorov-Smirnow)
- lillietest(Lilliefors test)
對於其他方法不再分析。
(2)圖形分析
- 直方圖:hist(X,M)
直方圖hist函式中X為被分析資料,可以是單列也可以是多多列,為方便分析顯示一般為單列,M表示將X有序劃分入標量M所指定數目的矩形圖中。
- normplot函式: normplot(X)
normplot函式直接繪製分析資料的正態概率圖形,其中樣本資料用藍色“+”表示,標準正態線用紅色“-”,判斷標準為:資料越接近於紅色線,其符合正態分佈程度越高,一般情況不會和直線重合。
- qqplot:qqplot(x)
qqplot(x)顯示樣本資料x的分位數與正態分佈的理論分位數之間的分位數圖。 如果x的分佈是正態的,則資料圖顯示為線性。後面有學者提出可用於判斷不同分佈型別的gqqplot工具箱,其實現程式碼為:gqqplot(X,'normal'),其中 normal表示正態分佈,也可跟根據分析要求選擇 'gamma'等常見分析型別。
3.舉例分析
首先為直方圖,圖中資料為一批樣本某指標含量分佈,所得直方圖橫軸為變數區間、縱軸為設定箱形區間變數個數,由圖可知該指標含量不符合正態分佈。
第二個為normplot,其中橫軸為變數區間,縱軸為累計概率分佈(CDF),紅色點劃線為根據分析資料均值和方差構建的正式正態分佈線,藍色點為分析樣本點,越接近於直線說明樣本正態特性越好,由圖可知,分析資料尾部遠離直線,且中間大量樣本分佈處(14.5)樣本低於直線,因此該分析資料正態性差,或者不服從正態分佈。
第三個為qqplot,該圖的橫軸表示理論分位變數分佈,縱軸辨識實際輸入變數分位數分佈,直線為y=x,對比方法為藍色點分佈在直線上表示服從正態分佈,由圖可知該資料不服從正態分佈,結合上圖發現,qqplot檢驗正態分佈更加直觀,但是具體接近程度還需要結合數值檢測方法實現。
4. 後續
對於非正態分佈,目前有部分方法可以將非正態分佈資料轉換為近似正態分佈,後期有機會再寫一下個人學習結果。
完---2020.9.30
相關文章
- 多元統計分析06:多元正態分佈的假設檢驗(2)
- 正態分佈簡述
- 正態分佈的用法
- Matlab實驗資料處理程式大彙總Matlab
- 正態分佈函式值函式
- 資料並非都是正態分佈:三種常見的統計分佈及其應用
- 基於圖資料庫 NebulaGraph 實現的欺詐檢測方案及程式碼示例資料庫
- 多元統計分析04:多元正態分佈的抽樣分佈
- 資料分析處理之PCA OLSR PCR PLSR(NIPALS)及其Matlab程式碼實現PCAMatlab
- 從變分編碼、資訊瓶頸到正態分佈:論遺忘的重要性
- 差分進化演算法介紹及matlab實現演算法Matlab
- NumPy 正態分佈與 Seaborn 視覺化指南視覺化
- 統計公差分析--正態分佈基本概念
- 基於YOLOv4的目標檢測系統(附MATLAB程式碼+GUI實現)YOLOMatlabGUI
- web動態驗證碼的實現Web
- JSP資料互動實現過程解析及示例程式碼JS
- CRC校驗原理簡介及C程式碼實現說明C程式
- DES原理及程式碼實現
- 如何實現 mysql 匯出資料,驗證頁面正確性?MySql
- Redis 實現分佈鎖Redis
- 玩轉matlab之一維 gauss 數值積分公式及matlab原始碼Matlab公式原始碼
- 正態分佈的應用——基於描述性統計與分佈的推論
- 動態分佈與靜態分佈的區別
- 數值積分公式及龍貝格(Romberg)演算法實現matlab公式演算法Matlab
- 安裝spark//python中os.path.abspath及os.path.join以及正態分佈PPFSparkPython
- 量子圖形加密演算法的MATLAB程式碼實現加密演算法Matlab
- 實現【檢視更多】功能的程式碼
- 資料結構 - 圖之程式碼實現資料結構
- 瀑布流程式碼實現及思路
- BiLSTM介紹及程式碼實現
- CNN介紹及程式碼實現CNN
- 高階資料結構---赫(哈)夫曼樹及java程式碼實現資料結構Java
- 資料檢驗器
- angular髒檢查原理及虛擬碼實現Angular
- TCP 的連線建立與關閉狀態及資料傳輸通訊過程【含有 PHP 測試實驗程式碼】TCPPHP
- 【CV/Matlab系列】一種改進的影像顯著性檢測方法及實現Matlab
- 計量經濟學(十)——正態性檢驗(Normality Test)ORM
- 影片直播原始碼,前端canvas動態驗證碼實現原始碼前端Canvas