Python数据分析与挖掘——回归模型的假设检验
模型的顯著性檢驗是指構成因變量的線性組合是否有效,即整個模型中是否至少存在一個自變量能夠真正影響到因變量的波動。該檢驗是用來衡量模型的整體效應。回歸系數的顯著性檢驗是為了說明單個自變量在模型中是否有效,即自變量對因變量是否具有重要意義。這種檢驗則是出于對單個變量的肯定與否。
模型的顯著性檢驗和回歸系數的顯著性檢驗分別使用統計學中的F檢驗法和t檢驗法,接下來將介紹有關F檢驗和t檢驗的理論知識和實踐操作。
1. 模型的顯著性檢驗——F檢驗
在統計學中,有關假設檢驗的問題,都有一套成熟的步驟。首先來看一下如何應用F檢驗法完成模型的顯著性檢驗,具體的檢驗步驟如下:
(1)提出問題的原假設和備擇假設。
(2)在原假設的條件下,構造統計量F。
(3)根據樣本信息,計算統計量的值。
(4)對比統計量的值和理論F分布的值,如果計算的統計量值超過理論的值,則拒絕原假設,否則需接受原假設。
下面將按照上述四個步驟對構造的多元線性回歸模型進行F檢驗,進一步確定該模型是否可用,詳細操作步驟如下:
步驟一:提出假設
H0為原假設,該假設認為模型的所有偏回歸系數全為0,即認為沒有一個自變量可以構成因變量的線性組合;
H1為備擇假設,正好是原假設的對立面,即p個自變量中,至少有一個變量可以構成因變量的線性組合。
就F檢驗而言,研究者往往是更加希望通過數據來推翻原假設H0,而接受備擇假設H1的結論。
步驟二:構造統計量
為了使讀者理解F統計量的構造過程,可以先觀看下圖,然后掌握總的離差平方和、回歸離差平方和與誤差平方和的概念與差異。
如上公式所示,公式中:
ESS稱為誤差平方和,衡量的是因變量的實際值與預測值之間的離差平方和,會隨著模型的變化而變動(因為模型的變化會導致預測值的變動);
RSS為回歸離差平方和,衡量的是因變量的預測值與實際均值之間的離差平方和,同樣會隨著模型的變化而變動;
TSS為總的離差平方和,衡量的是因變量的值與其均值之間的離差平方和,而其值并不會隨模型的變化而變動,即它是一個固定值。
根據統計計算,這三個離差平方和之間存在這樣的等式關系:TSS=ESS+RSS。
由于TSS的值不會隨模型的變化而變動,因此ESS與RSS之間存在嚴格的負向關系,即ESS的降低會導致RSS的增加。正如Python數據分析與挖掘——線性回歸預測模型所介紹的內容,線性回歸模型的參數求解是依據誤差平方和最小的理論,如果根據線性回歸模型得到的ESS值達到最小,那么對應的RSS值就會達到最大,進而RSS與ESS的商也會達到最大。
按照這個邏輯,便可以構造F統計量,該統計量可以表示成回歸離差平方和RSS與誤差平方和ESS的公式:
其中,p和n-p-1分別為RSS和ESS的自由度。模型擬合得越好,ESS就會越小,RSS則會越大,得到的F統計量也就越大。
步驟三:計算統計量
下面按照F統計量的公式,運用Python計算該統計量的值,詳細的計算過程可見下方代碼:
結果:
F的統計量的值: 174.6372171663537為了驗證手工計算的結果是否正確,可以通過fvalue“方法”直接獲得模型的F統計量值,如下結果所示,經過對比發現,手工計算的結果與模型自帶的F統計量值完全一致:
import pandas as pd from sklearn import model_selection import statsmodels.api as smProfit = pd.read_excel(r'Predict to Profit.xlsx') train, test = model_selection.train_test_split(Profit, test_size=0.2, random_state=1234) model = sm.formula.ols('Profit ~ RD_Spend + Administration + Marketing_Spend + C(State)', data=train).fit() print(model.fvalue)結果:
174.63721715703537步驟四:對比結果下結論
最后一步所要做的是對比F統計量的值與理論F分布的值,如果讀者手中有F分布表,可以根據置信水平(0.05)和自由度(5,34)查看對應的分布值。為了簡單起見,這里直接調用Python函數計算理論分布值:
結果:
F分布的理論值為: 2.502635007415366如上結果所示,在原假設的前提下,計算出來的F統計量值174.64遠遠大于F分布的理論值2.50,所以應當拒絕原假設,即認為多元線性回歸模型是顯著的,也就是說回歸模型的偏回歸系數都不全為0。
回歸系數的顯著性檢驗——t檢驗
模型通過了顯著性檢驗,只能說明關于因變量的線性組合是合理的,但并不能說明每個自變量對因變量都具有顯著意義,所以還需要對模型的回歸系數做顯著性檢驗。關于系數的顯著性檢驗,需要使用t檢驗法,構造t統計量。接下來按照模型顯著性檢驗的四個步驟,對偏回歸系數進行顯著性檢驗。
步驟一:提出假設
如前文所提,t檢驗的出發點就是驗證每一個自變量是否能夠成為影響因變量的重要因素。t檢驗的原假設是假定第 j 變量的偏回歸系數為0,即認為該變量不是因變量的影響因素;而備擇假設則是相反的假定,認為第 j 變量是影響因變量的重要因素。
步驟二:構造統計量
步驟三:計算統計量
如果讀者對 t 統計量值的計算比較感興趣,可以使用如上公式完成統計量的計算,這里就不手工計算了。為了方便起見,可以直接調用summary“方法”,輸出線性回歸模型的各項指標值:
結果:
OLS Regression Results ============================================================================== Dep. Variable: Profit R-squared: 0.964 Model: OLS Adj. R-squared: 0.958 Method: Least Squares F-statistic: 174.6 Date: Sun, 28 Feb 2021 Prob (F-statistic): 9.74e-23 Time: 12:27:30 Log-Likelihood: -401.20 No. Observations: 39 AIC: 814.4 Df Residuals: 33 BIC: 824.4 Df Model: 5 Covariance Type: nonrobust ========================================================================================coef std err t P>|t| [0.025 0.975] ---------------------------------------------------------------------------------------- Intercept 5.858e+04 6690.704 8.756 0.000 4.5e+04 7.22e+04 C(State)[T.Florida] 927.3944 3084.857 0.301 0.766 -5348.795 7203.584 C(State)[T.New York] -513.4683 3043.160 -0.169 0.867 -6704.824 5677.887 RD_Spend 0.8035 0.040 19.988 0.000 0.722 0.885 Administration -0.0578 0.051 -1.133 0.265 -0.162 0.046 Marketing_Spend 0.0138 0.015 0.930 0.359 -0.016 0.044 ============================================================================== Omnibus: 1.721 Durbin-Watson: 1.896 Prob(Omnibus): 0.423 Jarque-Bera (JB): 1.148 Skew: 0.096 Prob(JB): 0.563 Kurtosis: 2.182 Cond. No. 1.56e+06 ==============================================================================Notes: [1] Standard Errors assume that the covariance matrix of the errors is correctly specified. [2] The condition number is large, 1.56e+06. This might indicate that there are strong multicollinearity or other numerical problems.如上結果所示,模型的概覽信息包含三個部分:
第一部分主要是有關模型的信息,例如模型的判決系數R2,用來衡量自變量對因變量的解釋程度、模型的 F 統計量值,用來檢驗模型的顯著性、模型的信息準則AIC或BIC,用來對比模型擬合效果的好壞等;
第二部分主要包含偏回歸系數的信息,例如回歸系數的估計值Coef、t 統計量值、回歸系數的置信區間等;
第三部分主要涉及模型誤差項 ε 的有關信息,例如用于檢驗誤差項獨立性的杜賓-瓦特森統計量Durbin-Watson、用于衡量誤差項是否服從正態分布的JB統計量以及有關誤差項偏度Skew和峰度Kurtosis的計算值等。
步驟四:對比結果下結論
在第二部分的內容中,含有每個偏回歸系數的 t 統計量值,它的計算就是由估計值coef和標準誤std err的商所得的。同時,每個 t 統計量值都對應了概率值p,用來判別統計量是否顯著的直接辦法,通常概率值p小于0.05時表示拒絕原假設。從返回的結果可知,只有截距項Intercept和研發成本RD_Spend對應的p值小于0.05,才說明其余變量都沒有通過系數的顯著性檢驗,即在模型中這些變量不是影響利潤的重要因素。
總結
以上是生活随笔為你收集整理的Python数据分析与挖掘——回归模型的假设检验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑公司Windows7 Ghost 2
- 下一篇: PHP网约车H5打车系统源码 分为乘客端