數據的正態性檢驗與數據轉換

注意:① 此公眾號有關統計分析方法的介紹與案例演示是基於stata軟件完成,你也可以在stata軟件中完成這些操作,在理解原理後,你還可以在其它統計軟件中完成這些任務。② 寫公眾號文章時,我更加傾向於使用stata命令而不是菜單截圖的方式來展示分析過程。③ 如果您不具備stata的基礎知識,同時想要學習,可點擊文末閱讀原文查看我的在線課程。

正文開始

稍微熟悉統計學的人都知道,許多統計方法只有在變量服從正態分佈時才能表現最佳。比如我們經常使用的參數檢驗,方差分析,線性迴歸分析 等。所以在做統計分析時檢驗變量的正態性是很多建模和統計分析過程的必備步驟。

那麼通常有哪些方法可以用來檢測數據的正態性呢?檢測出數據不符合正態分佈,又該如何對數據進行變換以使其滿足正態分佈的要求呢?

我們帶著這兩個問題,且看我通過案例的形式讓你掌握數據的正態性檢驗和非正態數據變換的魔幻技能~

首先,下圖直觀展示了以上兩個問題的解決方案。

数据的正态性检验与数据转换

接著我們以案例的形式來說明這兩個問題。

首先我們載入數據集,並對這個數據集中的數值型變量elcap繪製莖葉圖,直方圖和Q-Q圖,完成這些任務的代碼如下:

数据的正态性检验与数据转换

這是得到的莖葉圖,發現數據呈現出一種偏態分佈,並且有一個極大異常值。

数据的正态性检验与数据转换

得到的直方圖也似乎顯示出數據的非正態性。

数据的正态性检验与数据转换

分位-正態Q-Q顯示出,數據中存在一個明顯異常值,且數據呈現出一定的偏態分佈。

数据的正态性检验与数据转换

以上是圖形檢驗的結果,圖形的好處是直觀,壞處就是,看完三個圖,我們還是沒有絕對的把握說這個數據不是正態分佈。那接著我們來做統計顯著性檢驗。

数据的正态性检验与数据转换

看一下結果,統計檢驗結果為:p < 0.05,有95%的把握拒絕原假設,原假設是“此數據的分佈與正態分佈相同”,所以結論就是此數據的分佈顯著與正態分佈不同。

数据的正态性检验与数据转换

那麼數據不滿足正態分佈,我們就需要對數據進行轉換,希望變換後的數據符合正態分佈。

数据的正态性检验与数据转换

驚喜的發現,轉換後的兩個變量都是符合正態分佈的,如果最終要建模,我們可以選擇p值更大,轉換效果更好的對數轉換後的變量進行建模。

数据的正态性检验与数据转换

只能進行這兩種轉換嗎?顯然不是,這裡只是列出了兩種常見的轉換方式。我們可以使用很多函數進行轉換。stata非常友好的提供了三個非常好用的集成命令,可以一次自動輸出多種轉換後的變量的正態分佈檢驗結果。

数据的正态性检验与数据转换

第一個命令輸出多種轉換後的統計檢驗結果,只要是P(chi2) 大於0.05,其對應的轉換後的變量都是正態分佈的變量。這裡有平方根(square root) ,對數(log), 平方根倒數( 1/(square root)),選擇其中P值最大的對數轉換,參與下一步建模。

数据的正态性检验与数据转换

第二個命令輸出轉換後的直方圖,通過直方圖,我們也可以觀察到,對數轉換和平方根轉換效果較好。但是圖形還是沒有上面直接看P值來的直接。還有一種Q-Q圖,我這裡就不展示了。

数据的正态性检验与数据转换

對任何數據,你都可以嘗試使用Box-Cox轉換,使用如下命令進行這種轉換:

数据的正态性检验与数据转换

對轉換後的變量進行檢驗,這裡只輸出統計檢驗結果,Box-Cox轉換不出所料,其轉換效果是最好的(P值最大)。

数据的正态性检验与数据转换

OK,本文系統向大家介紹瞭如何檢查數據的正態性,以及如何將非正態數據轉換為正態數據。如果本文內容對您有幫助,請幫我分享,轉發,點贊或讚賞。

注:本文演示使用的數據文件以及stata程序代碼節選自我的在線課程《stata統計分析》,感興趣的朋友可點擊閱讀原文學習該課程。


分享到:


相關文章: