多元線性回歸的模型解釋、假設檢驗、特徵選擇

2020-12-04 deephub

線性回歸是最流行和討論最多的模型之一,它無疑是深入機器學習(ML)的入門之路。這種簡單、直接的建模方法值得學習,這是進入ML的第一步。

在繼續討論之前,讓我們回顧一下線性回歸可以大致分為兩類。

簡單線性回歸:當只有一個輸入變量時,它是線性回歸最簡單的形式。

多元線性回歸:這是一種線性回歸的形式,當有兩個或多個預測因子時使用。

我們將看到多個輸入變量如何共同影響輸出變量,同時還將了解計算與簡單LR模型的不同之處。我們還將使用Python構建一個回歸模型。

最後,我們將深入學習線性回歸,學習共線性、假設檢驗、特徵選擇等內容。

現在有人可能會想,我們也可以用簡單的線性回歸來分別研究我們對所有自變量的輸出。

為什麼需要線性回歸

從多個輸入變量預測結果。但是,真的是這樣嗎?

考慮到這一點,假設你要估算你想買的房子的價格。你知道建築面積,房子的年代,離你工作地點的距離,這個地方的犯罪率等等。

現在,這些因素中的一些將會對房價產生積極的影響。例如,面積越大,價格越高。另一方面,工作場所的距離和犯罪率等因素會對你對房子的估計產生負面影響。

簡單線性回歸的缺點:當我們只對一個結果感興趣時,運行單獨的簡單線性回歸會導致不同的結果。除此之外,可能還有一個輸入變量本身與其他一些預測器相關或依賴於其他一些預測器。這可能會導致錯誤的預測和不滿意的結果。

這就是多元線性回歸發揮作用的地方。

數學公式

這裡,Y是輸出變量,X項是相應的輸入變量。注意,這個方程只是簡單線性回歸的延伸,和每個指標都有相應的斜率係數(β)。

β的第一個參數(βo)是攔截常數和Y的值是在缺乏預測(我。e當所有X項都為0時),它在給定的回歸問題中可能有意義,也可能有意義,也可能沒有意義。它通常在回歸的直線/平面上提供一個相關的推動。

可視化數據

我們將使用南加州大學馬歇爾商學院網站上的廣告數據。你可以在這裡下載。

廣告數據集包括產品在200個不同市場的銷售情況,以及三種不同媒體(電視、廣播和報紙)的廣告預算。它是這樣的

第一行數據顯示,電視、廣播和報紙的廣告預算分別為230.1k美元、37.8k美元和69.2k美元,相應的銷售量為22.1k(或22.1萬)。

在簡單的線性回歸中,我們可以看到在不使用其他兩種媒體的情況下,每一種廣告媒體是如何影響銷售的。然而,在實踐中,這三者可能會共同影響淨銷售額。我們沒有考慮這些媒體對銷售的綜合影響。

多元線性回歸通過在一個表達式中考慮所有變量來解決這個問題。因此,我們的線性回歸模型現在可以表示為:

發現這些常數的值(β)是什麼回歸模型通過最小化誤差函數,擬合最好的行或超平面(根據輸入變量的數量)。這是通過最小化殘差平方和( Residual Sum of Squares)來實現的,殘差平方和是通過將實際結果和預測結果之間的差異平方得到的。

普通最小二乘法

因為這種方法求最小平方和,所以也稱為普通最小二乘法(OLS)。在Python中,有兩種主要的方法來實現OLS算法。

SciKit Learn:只需從Sklearn包中導入線性回歸模塊並將模型與數據匹配即可。這個方法非常簡單,您可以在下面看到如何使用它。

from sklearn.linear_model import LinearRegressionmodel = LinearRegression()model.fit(data.drop('sales', axis=1), data.sales)

StatsModels:另一種方法是使用StatsModels包來實現OLS。Statsmodels是一個Python包,允許對數據執行各種統計測試。我們將在這裡使用它,以便您可以了解這個很棒的Python庫,因為它將在後面的部分中對我們有幫助。

建立模型並解釋係數

# Importing required librariesimport pandas as pdimport statsmodels.formula.api as sm# Loading data - You can give the complete path to your data heread = pd.read_csv("Advertising.csv")# Fitting the OLS on datamodel = sm.ols('sales ~ TV + radio + newspaper', ad).fit()print(model.params)

輸出

Intercept 2.938889TV 0.045765radio 0.188530newspaper -0.001037

Scikit Learn運行回歸模型是最簡單的方式,並且可以使用模型找到上面的參數。coef_ & model.intercept_。

現在我們有了這些值,如何解釋它們呢?

如果我們確定電視和報紙的預算,那麼增加1000美元的廣播預算將導致銷售增加189個單位(0.189*1000)。同樣地,通過固定廣播和報紙,我們推斷電視預算每增加1000美元,產品大約增加46個單位。然而,對於報紙預算來說,由於係數幾乎可以忽略不計(接近於零),很明顯報紙並沒有影響銷售。事實上,它在0的負的一邊(-0.001),如果幅度足夠大,可能意味著這個代理是導致銷售下降。但我們不能以如此微不足道的價值做出這種推斷。如果我們僅使用報紙預算與銷售進行簡單的線性回歸,我們將觀察到係數值約為0.055,這與我們上面看到的相比是非常顯著的。為什麼會這樣呢?

共線性

ad.corr()

讓我們用熱圖把這些數字形象化。

這裡黑色的方塊表示相關性很強(接近於1),而較亮的方塊表示相關性較弱(接近於0)。這就是為什麼所有的對角線都是深藍色的,因為一個變量與它自己是完全相關的。

值得注意的是報紙和廣播的相關性是0。35。這表明報紙和廣播預算之間的關係是公平的。因此,可以推斷出→當產品的廣播預算增加時,在報紙上的花費也有增加的趨勢。

這稱為共線性,指的是兩個或多個輸入變量是線性相關的情況。

因此,儘管多元回歸模型對報紙的銷售沒有影響,但是由於這種多重共線性和其他輸入變量的缺失,簡單回歸模型仍然對報紙的銷售有影響。

我們理解了線性回歸,我們建立了模型,甚至解釋了結果。到目前為止我們學的是線性回歸的基礎。然而,在處理實際問題時,我們通常會超越這一點,統計分析我們的模型,並在需要時進行必要的更改。

預測因子的假設檢驗

在運行多元線性回歸時應該回答的一個基本問題是,至少有一個預測器在預測輸出時是否有用。

我們發現,電視、廣播和報紙這三個預測因子與銷售額之間存在不同程度的線性關係。但是,如果這種關係只是偶然發生的,並且沒有因為任何預測因素而對銷售產生實際影響呢?

該模型只能給我們數字,以在響應變量和預測因子之間建立足夠緊密的線性關係。然而,它無法證明這些關係的可信性。

我們從統計數據中獲得幫助,並做一些被稱為假設檢驗的事情。我們首先建立一個零假設和一個相應的備擇假設。

因為我們的目標是找到至少一個預測器在預測輸出時是否有用,所以我們在某種程度上希望至少有一個係數(不是截距)是非零的,這不僅僅是由於隨機的機會,而是由於實際原因。為此,我們首先形成一個零假設:所有係數都等於零。

多元線性回歸的一般零假設

廣告數據的零假設

因此,備擇假設是:至少有一個係數不為零。通過發現有力的統計證據來拒絕原假設,從而證明了這一點

假設檢驗採用F-statistic進行。這個統計數據的公式包含殘差平方和(RSS)和總平方和(TSS),我們不需要擔心這一點,因為Statsmodels包會處理這個問題。我們在上面擬合的OLS模型的總結包含了所有這些統計數據的總結,可以用這行簡單的代碼得到:

print(model.summary2())

如果F-statistic的值等於或非常接近1,那麼結果是支持零假設的,我們不能拒絕它。

但是我們可以看到,F-statistic比1大很多倍,因此為零假設(所有係數都為零)提供了有力的證據。因此,我們拒絕原假設,並相信至少有一個預測器在預測輸出時是有用的。

注意,當預測因子(p)的數量很大,或者p大於數據樣本的數量(n)時,f統計量是不合適的。

因此,我們可以說,在這三家廣告代理商中,至少有一家在預測銷售額方面是有用的。

但是哪一個或哪兩個是重要的呢?它們都重要嗎?為了找到這一點,我們將執行特徵選擇或變量選擇。一種方法是嘗試所有可能的組合。

Only TVOnly radioOnly newspaperTV & radioTV & newspaperradio & newspaperTV, radio & newspaper在這裡,嘗試所有7種組合仍然是可行的,但是如果有更多的預測因子,組合的數量將呈指數增長。例如,通過在我們的案例研究中再增加一個預測因子,總組合數將變為15。想像一下有一打預測器。因此,我們需要更有效的方法來執行特性選擇。

特徵選擇

做特徵選擇的兩種最流行的方法是:

正向選擇:我們從一個沒有任何預測器的模型開始,只使用截距項。然後,我們對每個預測器執行簡單的線性回歸,以找到最佳執行器(最低RSS)。然後我們添加另一個變量,並再次通過計算最低的RSS(殘差平方和)來檢查最佳的2變量組合。然後選擇最佳的3變量組合,以此類推。當滿足某種停止規則時,停止該方法。

逆向選擇:我們從模型中的所有變量開始,然後刪除統計意義最小的變量(更大的p值:檢查上面的模型摘要,找到變量的p值)。重複此操作,直到達到停止規則為止。例如,我們可以在模型分數沒有進一步提高的時候停止。

在這篇文章中,我將介紹向前選擇方法。首先,讓我們了解如何選擇或拒絕添加的變量。

我們要使用2種方法來評估我們的新模型:RSS和R。

我們已經熟悉RSS,它是殘差平方和,通過將實際輸出和預測結果之間的差平方來計算。它應該是模型表現良好的最小值。R方差的程度的測量數據是用模型來解釋。

數學上,它是實際結果和預測結果之間相關性的平方。R接近1表明模型是好的和解釋方差數據。接近於零的值表示模型很差。

# Defining a function to evaluate a modeldef evaluateModel(model):print("RSS = ", ((ad.sales - model.predict())**2).sum()) print("R2 = ", model.rsquared)

讓我們首先使用單個預測器逐個評估模型,從TV開始。

# For TVmodel_TV = sm.ols('sales ~ TV', ad).fit()evaluateModel(model_TV)

RSS = 2102.5305831313512R^2 = 0.611875050850071

# For radiomodel_radio = sm.ols('sales ~ radio', ad).fit()evaluateModel(model_radio)

RSS = 3618.479549025088R^2 = 0.33203245544529525

# For newspapermodel_newspaper = sm.ols('sales ~ newspaper', ad).fit()evaluateModel(model_newspaper)

RSS = 5134.804544111939R^2 = 0.05212044544430516

我們觀察到modelTV, RSS和R最小值是最在所有的模型。因此,我們選擇modelTV作為向前基礎模型。現在,我們將逐個添加廣播和報紙,並檢查新值。

# For TV & radiomodel_TV_radio = sm.ols('sales ~ TV + radio', ad).fit()evaluateModel(model_TV_radio)

RSS = 556.9139800676184R^2 = 0.8971942610828957

正如我們所看到的,我們的價值觀有了巨大的進步。RSS下降和R進一步增加,model_TV相比。這是個好兆頭。現在我們來看看電視和報紙。

# For TV & newspapermodel_TV_radio = sm.ols('sales ~ TV + newspaper', ad).fit()evaluateModel(model_TV_newspaper)

RSS = 1918.5618118968275R^2 = 0.6458354938293271

報紙的加入也提高了報紙的價值,但不如廣播的價值高。因此,在這一步,我們將繼續電視和廣播模型,並將觀察當我們添加報紙到這個模型的差異

# For TV, radio & newspapermodel_all = sm.ols('sales ~ TV + radio + newspaper', ad).fit()evaluateModel(model_all)

RSS = 556.8252629021872R^2 = 0.8972106381789522

這些值沒有任何顯著的改進。因此,有必要不添加報紙,並最終確定模型與電視和廣播作為選定的功能。所以我們最終的模型可以表示為:

在3D圖形中繪製變量TV、radio和sales,我們可以可視化我們的模型如何將回歸平面與數據匹配。

希望看完這篇文章後你會對多元線性回歸有一個新的理解

相關焦點

  • 多元線性回歸與模型診斷
    多元線性回歸的基本表達式②假設檢驗(同一元線性回歸類似)③聯合假設檢驗通常F檢驗被用於檢測多元線性回歸的解釋變量斜率是否同時等於0:②K折交叉檢驗    a.確定模型數量(有n個解釋變量——每個變量選擇有或無,通常有2^n個模型)    b.將數據分成相等數量的k個集合,其中k-1個集合作為訓練集擬合回歸方程,剩下的1個集合作為驗證集;重複進行交叉擬合驗證(總計有k次)。    c.每個模型都採用b的方式進行驗證。
  • spss多元線性回歸模型專題及常見問題 - CSDN
    多元線性回歸,主要是研究一個因變量與多個自變量之間的相關關係,跟一元回歸原理差不多,區別在於影響因素(自變量)更多些而已,例如:一元線性回歸方程 為: 代表隨機誤差, 其中隨機誤差分為:可解釋的誤差 和 不可解釋的誤差,隨機誤差必須滿足以下四個條件,多元線性方程才有意義(一元線性方程也一樣)1:服成正太分布,即指:隨機誤差
  • 【線性回歸】多變量分析:多元回歸分析
    下面我們就來談談多元回歸分析,這張圖是利用多元線性回歸製作的策略分析圖,你可以理解X軸是重要性,Y軸是表現;首先,多元回歸分析應該強調是多元線性回歸分析!第四:如果你用線性回歸方式去解釋過去,你只能朝著一個趨勢繼續,但未來對過去的偏離有無數種可能性;第五:線性回歸方程納入的自變量越多,越應該能夠反應現實,但解釋起來就越困難;
  • 多元線性回歸t檢驗專題及常見問題 - CSDN
    多元線性回歸模型通常用來研究一個應變量依賴多個自變量的變化關係,如果二者的以來關係可以用線性形式來刻畫,則可以建立多元線性模型來進行分析。1.t檢驗t檢驗是對單個變量係數的顯著性檢驗,一般看p值; 如果p值小於0.05表示該自變量對因變量解釋性很強。
  • 原理+代碼|Python實戰多元線性回歸模型
    ,這裡需要轉換一下,而多元線性回歸模型中類別變量的轉換最常用的方法之一便是將其轉化成虛擬變量。再次建模後,發現模型精度大大提升,但潛在的多元共線性問題也隨之顯現出來在解釋模型中虛擬變量的係數之前,我們先消除模型中多元共線性的影響,因為在排除共線性後,模型中的各個自變量的係數又會改變,最終的多元線性回歸模型的等式又會不一樣。
  • 一元回歸t檢驗與f檢驗_多元回歸模型的r檢驗f檢驗與t檢驗 - CSDN
    y=a0+b1x1+b2x2+…+bkxk+誤差(方程A) 把方程A叫做(多元)回歸方程或者(多元)回歸模型。a0是y截距,b1,b2,…,bk是回歸係數。當k=l時,只有1個說明變量,叫做一元回歸方程。根據最小平方法求解最小誤差平方和,非求出y截距和回歸係數。
  • 線性回歸的統計假設 - CSDN
    在用多元線性回歸模型進行統計推斷之前,我們需要知道該模型的基礎假設。假設我們有n個因變量Y及自變量X1,X2,...,Xk的值,我們想推斷多元回歸方程Yi= b0 + b1X1i + b2X2i + ... + bkXki +εi。
  • 線性回歸假設檢驗專題及常見問題 - CSDN
    實際上使用左面的函數定義損失函數也能得到一個線性模型,只是並不是我們常說的線性回歸模型而已。所以:損失函數是機器學習模型的核心。(即使相同的模型形式,不同的損失函數對應著不同模型的效果)。如果把模型看成是人工智慧,那麼損失函數就是它的三觀。
  • r語言 多元回歸模型_r語言多元回歸模型殘差分析 - CSDN
    1、多元線性回歸模型1.1多元回歸模型與多元回歸方程設因變量為y,k個自變量分別為,描述因變量y如何依賴於自變量和誤差項ε的方程稱為多元回歸模型。其一般形式可表示為:式中,為模型的參數,ε為隨機誤差項。
  • 多元線性回歸預測spss - CSDN
    回歸一直是個很重要的主題。因為在數據分析的領域裡邊,模型重要的也是主要的作用包括兩個方面,一是發現,一是預測。而很多時候我們就要通過回歸來進行預測。關於回歸的知識點也許不一定比參數檢驗,非參數檢驗多,但是複雜度卻絕對在其上。回歸主要包括線性回歸,非線性回歸以及分類回歸。本文主要討論多元線性回歸(包括一般多元回歸,含有虛擬變量的多元回歸,以及一點廣義差分的知識)。
  • 逐步回歸分析調整後r2和模型的顯著性f值_多元線性回歸方程的顯著...
    簡單線性回歸主要採用R²衡量模型擬合效果,而調整後R²用於修正因自變量個數的增加而導致模型擬合效果過高的情況,它多用于衡量多重線性回歸分析模型的擬合效果。線性回歸方差分析表的主要作用是通過F檢驗來判斷回歸模型的回歸效果,即檢驗因變量與所有自變量之間的線性關係是否顯著,用線性模型來描述它們之間的關係是否恰當。
  • 回歸係數顯著性t檢驗_多元線性回歸方程及回歸係數的顯著性檢驗...
    【可解釋的方差】     MSM( Mean of Squares for Model)  = SSR /DFM第五:線性回歸和方差分析1、方差分析中的分析變量實際上就是線性回歸中的因變量,方差分析中的分組變量就是線性回歸中的自變量。
  • 值 多元線性回歸模型專題及常見問題 - CSDN
    多元線性回歸模型通常用來研究一個應變量依賴多個自變量的變化關係,如果二者的以來關係可以用線性形式來刻畫,則可以建立多元線性模型來進行分析。1.模型簡介1.1模型的結構多元線性回歸模型通常用來描述變量y和x之間的隨機線性關係,即:
  • r語言多元線性回歸相關性_多元線性回歸調整相關性 - CSDN
    多元線性回歸多元線性回歸的核心問題:應該選擇哪些變量???RSS(殘差平方和)與R2  (相關係數的平方)選擇法:遍歷所有可能的組合,選出使RSS最小,R2  最大的模型。
  • 零基礎的同學如何用stata做多元線性回歸模型?
    上一期,我們分享了如何用stata做一元線性回歸模型,不知道同學們學的怎麼樣呢?有沒有自己動手操作一遍呢?這一期:我們將學習如何用stata做多元線性回歸模型!這些是小王(邀請者)最近學習計量時的一些心得和體會,希望能與大家一起分享。
  • 一文讀懂多元回歸分析
    回歸分析的基本思想是:雖然自變量和因變量之間沒有嚴格的、確定性的函數關係,但可以設法找出最能代表它們之間關係的數學表達形式。二、多元回歸線性分析的運用 具體地說,多元線性回歸分析主要解決以下幾方面的問題。
  • 多元線性逐步回歸分析
    一、方法簡述多元逐步回歸有3種篩選自變量的方法:(1)向前法:這種算法SPSS會建立由一個自變量開始,每次引入一個偏回歸平方和最大且具有統計學意義的自變量,由少到多,直到無具有統計學意義的因素可以代入方程為止,此法也可能納入部分無意義變量;(2)向後法:這種算法SPSS會先建立一個全因素的回歸方程,再逐步剔除一個偏回歸平方和最小且無統計學意義的自變量
  • [PRML]線性回歸模型--線性基函數模型
    這通常稱為線性回歸(linear regression)。,這個暗示了模型的限制。『tanh』函數的線性組合。在監督學習中如回歸和分類,我們不是尋找輸入變量的分布模型。3 最小二乘幾何考慮最小二乘解的幾何解釋。
  • spss多元線性回歸專題及常見問題 - CSDN
    本文收集整理關於spss多元線性回歸結果解讀的相關議題,使用內容導航快速到達。內容導航:Q1:請高手幫忙分析下SPSS的多元線性回歸結果吧~急啊~~~你的回歸方法是直接進入法擬合優度R方等於0.678,表示自變量可以解釋因變量的67.8%變化,說明擬合優度還可以。
  • 多元f檢驗_多元線性回歸方程f檢驗 - CSDN
    【回歸分析】[5]--多元線性回歸對參數的F檢驗(c).係數存在線性關係  思想:            利用條件得到簡化模型,用簡化模型與原模型比較,若兩者誤差相差不大,則使用簡化模型