多元線性回歸與模型診斷

2021-02-19 金學智庫

一、多元線性回歸

1.多元線性回歸的基本表達式

註:額外的假設條件

①解釋變量之間不能存在太強的線性相關關係(一般ρ<0.7)

②其他條件與一元線性回歸類似。

2.回歸方程的模型擬合度

在進行回歸模型之前,我們可以計算總的波動誤差如下:

    在運用回歸模型後,總誤差可以分解為以下兩種:

    1)不能解釋變量誤差(誤差項的平方)

    2)被回歸方程可以解釋的誤差

根據以上解釋我們可以整理出以下方差分析表:


df自由度

SS

MSS(方差)

Explained可以解釋的誤差

k

ESS

ESS/k

Residual 誤差項

n-k-1

RSS

RSS/(n-k-1)

Total 總誤差

n-1

TSS


       3)擬合判定係數R方

註:一元線性回歸的R方比較特殊,為相關係數的平方:

通常情況下R方越大,說明模型擬合的解釋力度越好,但有時通過不斷增加解釋變量可以相應提高R方,這時候擬合效果並不一定是最好,所以提出以下修正R方來進行判斷:


3.回歸方程的推論

①置信區間(同一元線性回歸類似)

②假設檢驗(同一元線性回歸類似)

③聯合假設檢驗

通常F檢驗被用於檢測多元線性回歸的解釋變量斜率是否同時等於0:

判斷準則:如果F(T檢驗計算值)>F(關鍵值),則拒絕原假設H0.

Python案例分析:

#導入cv模塊import numpy as npimport matplotlib as mplimport matplotlib.pyplot as pltimport pandas as pddata=pd.read_excel('D:/歐晨的金學智庫/線性回歸案例.xlsx',header=0,index_col=0)data.head()

import statsmodels.api as sm model3 = sm.OLS(data['weight'],sm.add_constant(data[['age','height']]))result = model3.fit()result.summary()  print(result.summary())

分析:經過調整的R方=0.639,擬合係數一般,並不是特別好。

F統計量=26.67(檢驗解釋變量係數是否全為0?),P-value=4.05*10-7,非常小,拒絕原假設;

常數項估計-140.762,P值很小,說明截距項顯著,不為0;

age項估計-0.0485,P值較大>0.05,說明age項不顯著,可以嘗試剔除該解釋變量;

height項1.1973,P值很小,說明height項顯著,不為0。

二、模型診斷

1.自變量選擇偏差的權衡

(1)丟失重要變量

(2)加入無關變量

變量係數的估計偏差(大樣本,無關變量會收斂於0)

增加了模型參數估計的不確定性

增加了R方的值,但是使得調整的R方減小

(3)兩種合理估計線性回歸係數的方法

①一般情況模型變量的選擇方法

a.將所有變量加入進行回歸;

b.移除擬合效果最差的一個變量(尤其是不顯著的變量);

c.移除後繼續採用線性回歸模型進行擬合,再次移除不顯著的變量;

d.重複以上步驟,直至所有變量的擬合結果都顯著;

註:通常選擇顯著性α在1%~0.1%(相應t值至少為2.57或3.29)

Python案例分析:在上述案例中,我們得到age項不顯著,可以剔除該解釋變量,只用height進行線性回歸:

import statsmodels.api as sm model1 = sm.OLS(data['weight'], sm.add_constant(data['height']))result = model1.fit()result.summary()  print(result.summary())

分析:經過調整的R方=0.652>0.639,說明剔除age變量後,擬合效果更好。剩餘的截距項和身高的P值均很小,說明顯著不為0,所以應當保留。 

②K折交叉檢驗

    a.確定模型數量(有n個解釋變量——每個變量選擇有或無,通常有2^n個模型)

    b.將數據分成相等數量的k個集合,其中k-1個集合作為訓練集擬合回歸方程,剩下的1個集合作為驗證集;重複進行交叉擬合驗證(總計有k次)。

    c.每個模型都採用b的方式進行驗證。

    d.計算每個模型的總的殘差項(驗證k次)的和,選擇殘差項和或其均值最小的一組模型最為最優模型。

Python案例分析:依舊使用以上案例,有2個解釋變量,所以應當有2^2=4個模型,我們排除解釋變量均為0的情況,來做3個模型的K折交叉檢驗:

y=data.weightX1=data[['age','height']]from sklearn.linear_model import LinearRegression lm = LinearRegression()from sklearn.model_selection import cross_val_score scores1 = cross_val_score(lm, X1, y, cv=10)  print (scores1)

分析:上面的scores都是負數,為什麼均方誤差會出現負數的情況呢?因為這裡的mean_squared_error是一種損失函數,優化的目標的使其最小化,而分類準確率是一種獎勵函數,優化的目標是使其最大化,因而選擇只用height做變量。

print('用age,height做自變量:',np.sqrt(-scores1.mean()))np.sqrt(-scores1.mean())X2=data[['age']]scores2 = cross_val_score(lm, X2, y, cv=10)print('只用age做自變量:',np.sqrt(-scores2.mean()))X3=data[['height']]scores3 = cross_val_score(lm, X3, y, cv=10)print('只用height做自變量:',np.sqrt(-scores3.mean()))lm.fit(X3,y)

print('intercept_:%.3f' % lm.intercept_)print('coef_:%.3f' % lm.coef_)

2.殘差的異方差性

    如果殘差項的方差恆定不變(即為常數),則通常認定為同方差性,反之如果方差一直在變動並未恆定則認定為有異方差性。

註:如果存在異方差性進行線性回歸,則回歸係數的假設檢驗以及置信區間的估計通常是有偏差的。

 

採用懷特檢驗法來驗證異方差性:

例如檢驗有2個自變量的線性回歸方程:

 

②將自變量和自變量之間的組合與殘差的平方建立回歸模型檢驗

如果數據滿足同方差性,則殘差項的平方無法被任何自變量變量解釋,即註:殘差項的方程的檢驗統計量的解釋力度記為nR2(即第②步中計算),其檢驗分布為卡方分布(自由度為——k(k+3)/2)

Python案例分析:依舊以weight~age+height為例

import statsmodels.api as sm model3 = sm.OLS(data['weight'],sm.add_constant(data[['age','height']]))result3 = model3.fit()sm.stats.diagnostic.het_white(result3.resid, exog = result3.model.exog)

分析:

第一個為:LM統計量值

第二個為:響應的p值,0.53遠大於顯著性水平0.05,因此接受原假設,即殘差方差是一個常數

第三個為:F統計量值,用來檢驗殘差平方項與自變量之間是否獨立,如果獨立則表明殘差方差齊性

第四個為:F統計量對應的p值,也是遠大於0.05的,因此進一步驗證了殘差方差的齊性。

3.多重共線性

    自變量之間存在相關係數=1的情況,即一個自變量可以被另一個自變量完全解釋,完全替代。

4.繪製殘差圖與異常值

殘差圖即自變量與殘差之間的散點圖,異常值即偏離正常中心值較大的奇異點。

我們以上節一元線性回歸的案例的身高與體重的回歸結果殘差圖為例:

很明顯上圖中對應x在170的時候存在異常值。

 

異常值的判斷:庫克距離(Cook’sdistance)

Python案例分析:

import statsmodels.api as sm model3 = sm.OLS(data['weight'],sm.add_constant(data[['age','height']]))result3 = model3.fit()fig, ax = plt.subplots(figsize=(19.2, 14.4))fig = sm.graphics.influence_plot(result3, ax=ax, criterion="cooks")plt.grid()

分析:由上圖可以得到,第7個數據是偏離較遠的,氣泡很大。

真實數據如下:

相關焦點

  • 值 多元線性回歸模型專題及常見問題 - CSDN
    多元線性回歸模型通常用來研究一個應變量依賴多個自變量的變化關係,如果二者的以來關係可以用線性形式來刻畫,則可以建立多元線性模型來進行分析。1.模型簡介1.1模型的結構多元線性回歸模型通常用來描述變量y和x之間的隨機線性關係,即:
  • spss多元線性回歸模型專題及常見問題 - CSDN
    多元線性回歸,主要是研究一個因變量與多個自變量之間的相關關係,跟一元回歸原理差不多,區別在於影響因素(自變量)更多些而已,例如:一元線性回歸方程 為:    毫無疑問,多元線性回歸方程應該為:   今天跟大家一起討論一下,SPSS---多元線性回歸的具體操作過程,下面以教程教程數據為例,分析汽車特徵與汽車銷售量之間的關係。通過分析汽車特徵跟汽車銷售量的關係,建立擬合多元線性回歸模型。數據如下圖所示:
  • 原理+代碼|Python實戰多元線性回歸模型
    其中多元共線性這個問題將貫穿所有的機器學習模型,所以本文會「將原理知識穿插於代碼段中」,爭取以不一樣的視角來敘述和講解「如何更好的構建和優化多元線性回歸模型」。,這裡需要轉換一下,而多元線性回歸模型中類別變量的轉換最常用的方法之一便是將其轉化成虛擬變量。
  • 零基礎的同學如何用stata做多元線性回歸模型?
    上一期,我們分享了如何用stata做一元線性回歸模型,不知道同學們學的怎麼樣呢?有沒有自己動手操作一遍呢?這一期:我們將學習如何用stata做多元線性回歸模型!這些是小王(邀請者)最近學習計量時的一些心得和體會,希望能與大家一起分享。
  • 【線性回歸】多變量分析:多元回歸分析
    實際上大部分學習統計分析和市場研究的人的都會用回歸分析,操作也是比較簡單的,但能夠知道多元回歸分析的適用條件或是如何將回歸應用於實踐,可能還要真正領會回歸分析的基本思想和一些實際應用手法!下面我們就來談談多元回歸分析,這張圖是利用多元線性回歸製作的策略分析圖,你可以理解X軸是重要性,Y軸是表現;首先,多元回歸分析應該強調是多元線性回歸分析!
  • 多元線性回歸的模型解釋、假設檢驗、特徵選擇
    線性回歸是最流行和討論最多的模型之一,它無疑是深入機器學習(ML)的入門之路。這種簡單、直接的建模方法值得學習,這是進入ML的第一步。在繼續討論之前,讓我們回顧一下線性回歸可以大致分為兩類。簡單線性回歸:當只有一個輸入變量時,它是線性回歸最簡單的形式。
  • r語言多元線性回歸相關性_多元線性回歸調整相關性 - CSDN
    多元線性回歸多元線性回歸的核心問題:應該選擇哪些變量???RSS(殘差平方和)與R2  (相關係數的平方)選擇法:遍歷所有可能的組合,選出使RSS最小,R2  最大的模型。
  • 多元線性回歸預測spss - CSDN
    回歸一直是個很重要的主題。因為在數據分析的領域裡邊,模型重要的也是主要的作用包括兩個方面,一是發現,一是預測。而很多時候我們就要通過回歸來進行預測。關於回歸的知識點也許不一定比參數檢驗,非參數檢驗多,但是複雜度卻絕對在其上。回歸主要包括線性回歸,非線性回歸以及分類回歸。本文主要討論多元線性回歸(包括一般多元回歸,含有虛擬變量的多元回歸,以及一點廣義差分的知識)。
  • 逐步回歸分析調整後r2和模型的顯著性f值_多元線性回歸方程的顯著...
    (2)相關分析主要是描述兩個變量之間相關關係的密切程度;回歸分析不僅可以揭示變量X對變量Y的影響程度,還可以根據回歸模型進行預測。回歸分析模型主要包括線性回歸及非線性回歸兩種。線性回歸又分為簡單線性回歸、多重線性回歸;而非線性回歸,需要進行對數轉化等方式,將其轉化為線性回歸的形式進行研究。
  • 多元線性逐步回歸分析
    一、方法簡述多元逐步回歸有3種篩選自變量的方法:(1)向前法:這種算法SPSS會建立由一個自變量開始,每次引入一個偏回歸平方和最大且具有統計學意義的自變量,由少到多,直到無具有統計學意義的因素可以代入方程為止,此法也可能納入部分無意義變量;(2)向後法:這種算法SPSS會先建立一個全因素的回歸方程,再逐步剔除一個偏回歸平方和最小且無統計學意義的自變量
  • r語言 多元回歸模型_r語言多元回歸模型殘差分析 - CSDN
    1、多元線性回歸模型1.1多元回歸模型與多元回歸方程設因變量為y,k個自變量分別為,描述因變量y如何依賴於自變量和誤差項ε的方程稱為多元回歸模型。其一般形式可表示為:式中,為模型的參數,ε為隨機誤差項。
  • 美賽真題回顧-多元線性回歸模型預測全球海平面上升幅度
    基於前面收集的數據和已有結果, 這裡將建立多元線性回歸模型來預測由於北極冰雪融化 (主要是格陵蘭冰蓋和北極海冰的融化) 所導致的全球海平 面上升幅度。如圖 1-16 所示為使用多元線性回歸模型對海平面上升幅度進行預測的流程。
  • 機器學習之多元線性回歸模型梯度下降公式與代碼實現(篇二)
    上一篇我們介紹了線性回歸的概述和最小二乘的介紹,對簡單的一元線性方程模型手推了公式和python代碼的實現。機器學習之線性回歸模型詳細手推公式與代碼實現(篇一)今天這一篇來介紹多元線性回歸模型多元線性回歸模型介紹在回歸分析中,如果有兩個或兩個以上的自變量,就稱為多元回歸
  • 多元線性回歸spss結果分析_spss多元線性回歸分析結果分析 - CSDN
    通過查閱北京統計局出示的有關數據以及閱讀相關文獻,搜集北京市近15年的統計資料,基於SPSS多元線性回歸中的逐步回歸分析法,建立回歸模型。
  • 多元線性回歸分析:納入多元回歸自變量的確定及求解多元回歸方程
    許栩原創專欄《從入門到高手:線性回歸分析詳解》第五章,多元線性回歸分析:如何求解多元線性回歸方程。在前面的章節中我講到,實際需求預測場景中,通常,影響需求的因素不止一個,對需求影響的因素可能多種多樣,也就是說自變量多種多樣,很少能用單一的變量(也即一元線性回歸分析)來做好需求預測。這時,我們需要用到多元線性回歸分析。回歸分析在需求預測的應用,也主要是多元線性回歸分析。對需求預測而言,多元線性回歸更具有實用性和有效性。
  • 簡單線性回歸模型
    3 求解線性回歸模型函數3.1 極大似然法最小二乘法和極大似然法都可以用來求解線性回歸模型,我們在往期文章中討論過最小二乘法,這裡對似然法進行簡單介紹。3.2 R求解線性回歸模型我們可以利用現有軟體進行模型求解。
  • 多元線性回歸模型很難?5分鐘學會數據錄入、軟體操作、結果分析
    多元線性回歸模型是一元線性回歸模型的升級版,目標是利用兩個或兩個以上的不同變量值來預測一個變量值。因此,為了探究這些因素是否可以預測顧客的購買意願,此時就需要建立多元線性回歸模型來研究這些變量間的關係。例子引入某個超市決定研究產品價格、品牌形象、促銷力度和顧客購買意願的關係,從而提升顧客的購買意願。為此,超市專門對店內會員顧客進行問卷調查,收集到25個顧客的數據。
  • [PRML]線性回歸模型--線性基函數模型
    這通常稱為線性回歸(linear regression)。,這個暗示了模型的限制。參數的線性化會簡化這類模型的計算,但也會導致一些限制。『tanh』函數的線性組合。在監督學習中如回歸和分類,我們不是尋找輸入變量的分布模型。
  • R相關與回歸學習筆記(三十五)——樣條函數變換、線性可加模型(一)
    雖然在用lm()作多元回歸時可以用ns()、poly()等函數引入非線性成分, 但需要指定複雜度參數。 對可加模型R相關與回歸學習筆記(八)——回歸診斷(三)R相關與回歸學習筆記(九)——預測區間、控制、多元線性回歸模型R相關與回歸學習筆記(十)——參數估計、R的多元回歸程序(一)R相關與回歸學習筆記(十一)——模型的檢驗R相關與回歸學習筆記(十二)——線性關係檢驗、單個斜率項的顯著性檢驗R相關與回歸學習筆記(十三)——回歸自變量篩選
  • spss多元線性回歸專題及常見問題 - CSDN
    本文收集整理關於spss多元線性回歸結果解讀的相關議題,使用內容導航快速到達。內容導航:Q1:請高手幫忙分析下SPSS的多元線性回歸結果吧~急啊~~~你的回歸方法是直接進入法擬合優度R方等於0.678,表示自變量可以解釋因變量的67.8%變化,說明擬合優度還可以。