基於python的異方差檢驗 講講異方差的檢驗

2021-10-11 12:43:26 字數 1032 閱讀 1221

我們前面講了異方差,也講了怎麼用圖示法來判斷是否有異方差,這一篇來講講怎麼用統計的方法來判斷有沒有異方差。

關於檢驗異方差的統計方法有很多,我們這一節只講比較普遍且比較常用的white test(懷特檢驗)。

假設現在我們做了如下的回歸方程:

如果要用懷特檢驗檢驗上述方程有沒有異方差,主要分以下幾個步驟:

1.step1:

對方程進行普通的ols估計,可以得到方程的殘差ui。

2.step2:

以第一步估計估計出來的殘差作為y,構造如下方程:

上面構造的方程看起來比較複雜,但主要是由三部分組成:原方程的解釋變數、解釋變數的平方、解釋變數之間的互動項。

方程構造好以後對方程進行估計求解。

3.step3:

再回想一下什麼是異方差,就是殘差項與某乙個或某一些x之間有相關性是不是。

那如果step2中的方程中每乙個係數都為0,是不是說明殘差與任意x都是無關的,我們把這個稱為原假設;反之,只要有乙個係數不為0,就說明殘差與x有關,也就是存在異方差,我們把這個稱為備擇假設。

在原假設成立的情況下,可以得知step2中方程的r^2乘以樣本容量n服從自由度等於step2回歸方程中的變數數的卡方分布。

在服從卡方分布的前提下就可以根據與卡方分布的臨界值來比較來判斷原假設是否成立。

4.step4:

如果計算出來的nr^2顯著高於選定顯著性水平(p_value值)的卡方臨界值,則需要拒絕原假設,也就是方程存在異方差。

如果存在異方差時,還可以檢視step2方程的估計結果中每個變數的顯著性情況,進而確定是哪個變數引起的異方差。

需要注意的是,如果模型中包含多個變數時,此時引進多個變數的互動項會大大降低方程的自由度,所以看情況可以選擇不加。

當然,以上過程也不需要我們自己去實現,python也是有現成的包可以呼叫:

statsmodels.stats.diagnostic.spec_white(resid,exog)

resid表示原方程的殘差,exog表示要構step2中的方程形式。通過上面的函式最後會輸出卡方值、對應的p_value以及自由度。

異方差 Python實現

借鑑一位博主的文章,結合兩篇,用於實現python 本人親測,可以跑通。這位博主的 字母有連一起的,以下是我親測的 import pandas as pd import numpy as np from patsy import dmatrices from statsmodels.stats.ou...

python方差齊性檢驗 講講如何來檢驗方差齊性

1.前言 我們在方差分析裡面有講過,方差分析有乙個很重要的前提就是叫方差齊性。這一篇來講講如何來檢驗方差齊性。先講講什麼是方差齊性,方差齊性是指不同組間的總體方差是一樣的。那為什麼方差分析的前提是要組間的總體方差保持一致呢?先想想方差分析是做什麼呢?方差分析是用來比較多組之間均值是否存在顯著差異。那...

用Python檢驗幾組資料的方差是否相等

有時我們會遇到判定兩組資料的均值或方差是否相等,我們可以利用t 檢驗判斷均值是否相等 如何進行t 檢驗 而對於方差,我們同樣有檢驗方法,要比用t 檢驗判斷均值是否相等簡單的多。我們用的就是scipy.stats.levene 只需往裡輸入我們要檢驗的資料即可,不過必須是一維的。最後結果輸出檢驗統計量...