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

2021-01-09 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,我們可以可視化我們的模型如何將回歸平面與數據匹配。

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

相關焦點

  • 值 多元線性回歸模型專題及常見問題 - CSDN
    多元線性回歸模型通常用來研究一個應變量依賴多個自變量的變化關係,如果二者的以來關係可以用線性形式來刻畫,則可以建立多元線性模型來進行分析。1.模型簡介1.1模型的結構多元線性回歸模型通常用來描述變量y和x之間的隨機線性關係,即:
  • eviews 線性回歸模型 - CSDN
    分享經典書籍: A Modern Approach to Regression with R.pdf  連結: https://pan.baidu.com/s/14NJt7CrOpUUe2hYyrJn_rg  提取碼: 7fv6  多元線性回歸
  • 的方法 線性回歸方程檢驗專題及常見問題 - CSDN
    在總變差中,一部分變差可以用設定的回歸方程解釋,稱之為回歸變差;另一部分變差是回歸方程不能解釋的,稱為剩餘變差,它們之間有下面等式:如果在總變差Y中,回歸變差所佔的比例越大,則說明Y值隨X值的變化越顯著,或者說X解釋Y的能力越強。反之,回歸變差在總變差中所佔比例越小,則說明Y值隨X值的變化越不顯著,或者說X解釋Y的能力越差。
  • python多重線性回歸
    上篇文章《簡單而強大的線性回歸詳解》(點擊跳轉)詳細介紹了線性回歸分析方程、損失方程及求解、模型評估指標等內容,其中在推導多元線性回歸使用最小二乘法的求解原理時,對損失函數求導得到參數向量 的方程式上式中有解,即能夠得到最後一步的前提條件是存在逆矩陣,而逆矩陣存在的充分必要條件是特徵矩陣不存在多重共線性。
  • 入門| 貝葉斯線性回歸方法的解釋和優點
    本文對比了頻率線性回歸和貝葉斯線性回歸兩種方法,並對後者進行了詳細的介紹,分析了貝葉斯線性回歸的優點和直觀特徵。我認為貝葉斯學派和頻率學派之間的紛爭是「可遠觀而不可褻玩」的學術爭論之一。與其熱衷於站隊,我認為同時學習這兩種統計推斷方法並且將它們應用到恰當的場景之下會更加富有成效。
  • 創建模型,從停止死記硬背開始
    由於回歸是大多數機器學習研究的起點,這意味著你可能在還沒意識到的情況下,就已經在做統計假設檢驗了。在本文中,我將通過舉例說明如何從回歸的角度來考慮常見的統計檢驗,從而集中討論統計檢驗的最後一步。二、快速回顧線性回歸在線性回歸中,我們建立特徵x和響應變量y之間關係的線性模型。
  • CFA教材輔導:測試多元回歸的顯著性/修正R方
    測試多元回歸的顯著性之前,我們說明了如何分別對回歸係數進行假設檢驗。如果我們現在想測試整個回歸的顯著性應該怎麼辦?作為一個整體,自變量是否有助於解釋因變量?為了解決這個問題,我們檢驗了回歸中所有斜率係數同時等於0的原假設。
  • 一文教你全面掌握用Python實現線性回歸
    因此,假設在一個線性方程中,自變量x可以解釋因變量,那麼變化比例就高, R 將接近1。反之,則接近0。多元線性回歸理論在現實生活中,不會出現一個自變量預測因變量的情況。所以,線性回歸模型是一次只分析一個自變量嗎?當然不是了,實際情況中採取多元線性回歸。
  • spss 方法 線性回歸專題及常見問題 - CSDN
    二.解析在進行影響失能老年人照護需求的單因素分析時,根據資料情況選擇t檢驗、方差分析或秩和檢驗。以照護需求得分為因變量,以可能為影響失能老年人照護需求得分的因素為自變量,採用多元線性回歸篩選出影響失能老年人選擇照護服務需求的因素。本例納入的自變量有年齡、經濟來源、健康自評、失能程度、慢性病患病種類、慢性疼痛、跌倒經歷,賦值方式如表1:
  • 廣義線性模型在生命表死亡率修勻中的應用
    可以看出,這種近似估計即為權重為W的標準多元線性回歸模型的加權最小二乘估計。  類似於線性回歸模型,Wald統計量只需要估計非約束模型。因為:    3.3.2 兩種回歸模型的檢驗及評價  按照本文第2部分給出的檢驗方法,表2給出了兩種回歸模型的檢驗結果。
  • 入門| 從線性回歸到無監督學習,數據科學家需要掌握的十大統計技術
    統計學系側重模型及其可解釋性,以及精度和不確定性。二者之間的區別越來越模糊。1. 線性回歸在統計學中,線性回歸通過擬合因變量和自變量之間的最佳線性關係來預測目標變量。最佳擬合通過儘量縮小預測的線性表達式和實際觀察結果間的距離總和來實現。沒有其他位置比該形狀生成的錯誤更少,從這個角度來看,該形狀的擬合是「最佳」。線性回歸的兩個主要類型是簡單線性回歸和多元線性回歸。簡單線性回歸使用一個自變量通過擬合最佳線性關係來預測因變量的變化情況。
  • 回歸系列(一)|怎樣正確地理解線性回歸
    作者:丁點helper 來源:丁點幫你線性回歸,可能是統計學上運用最廣泛的一類方法了,之所以說它是一類方法,是因為它包括了我們熟知的各種模型:簡單線性回歸、多重線性回歸、Logistic回歸等等。確實如此,線性回歸,尤其是一般線性模型(一個Y,多個X)使用起來沒什麼障礙,但大家是否完全理解清楚了所有應該掌握的內容(非數學計算)可能有待思考,這個系列的文章我們以「線性回歸」為主題,希望能讓大家對這個問題的認識能再全面一丁點。
  • 7種執行簡單的線性回歸的分析與討論!
    【IT168 資訊】對於無數的數據科學家來說,線性回歸是許多統計建模和預測分析項目的起點。擬合的重要性,無論是準確的還是快速的,對於大數據集的線性模型都不能被誇大。隨著Python迅速成為實際的程式語言的一大選擇,關鍵是數據科學家必須意識到他或她可以使用的各種方法來快速將線性模型擬合到一個相當大的數據集,並評估每個特徵在過程、結果中的重要性。
  • R語言從入門到精通:Day12--R語言統計--回歸分析
    回歸分析在現代統計學中非常重要,本次教程內容安排如下:  首先:看一看如何擬合和解釋回歸模型,然後回顧一系列鑑別模型潛在問題的方法,並學習如何解決它們;  其次:我們將探究變量選擇問題(對於所有可用的預測變量,如何確定哪些變量包含在最終的模型中?)
  • 關於「時間序列回歸」,這些你必須知道的事!
    通過對線性模型的訓練,可以較好的得到模型中各個變量之間的關係。 常用的線性模型有:線性回歸、多項式回歸、嶺回歸、套索回歸等等,下面為大家簡單介紹。 圖 | 線性回歸擬合樣本點示意圖 多元線性回歸與一元線性回歸的區別在於,多元線性回歸有大於 1 個自變量,而一元線性回歸只有 1 個自變量
  • 似然比檢驗 - CSDN
    ,為了檢驗 ,對這兩組均值向量進行檢驗(此處LRT其實等價於Hotelling's T2檢驗)。均值向量的問題,其實本質上是線性假設(線性約束)問題,並且也可以用作回歸係數的假設檢驗。這些問題可以轉換為均值的線性約束問題進行求解。這些內容的具體介紹請參考《應用多元統計分析》。下面僅介紹使用似然比檢驗評估模型的適合度。 評估模型的適合度似然比檢驗用來評估兩個模型中那個模型更適合當前數據分析。
  • 大數據分析模型有哪幾種類型
    這會立即造成學習模型的可擴展性不足,乃至許多那時候優化算法結果會無效。因而,人們必須減少層面總數並減少層面間共線性危害。   數據降維也稱為數據歸約或數據約減。它的目的就是為了減少數據計算和建模中涉及的維數。有兩種數據降維思想:一種是基於特徵選擇的降維,另一種是基於維度變換的降維。
  • 方差-協方差法VaR計量模型選擇
    在VaR的計算中,波動性模型和估值模型是其核心和難點。不同的波動性模型和估值模型構成了VaR計算的不同方法。實際金融數據具有一些基本特徵,如尖峰厚尾性、波動集聚及爆發性、自相關及序列相關性等,模型的提出或改進都是基於這些基本特徵的。      下面就實際應用中對金融數據波動性和相關性建模的幾種典型方法做簡要介紹。
  • 詳解線性回歸、樸素貝葉斯、隨機森林在R和Python中的...
    線性回歸(Linear Regression)線性回歸常用於根據連續變量估計實際數值(房屋成本、電話呼叫次數、總銷售額等)。在此,我們通過擬合一條最佳直線來建立自變量和因變量之間的關係。這條最佳擬合直線被稱為回歸線,用線性方程Y= a *X + b 來表示。回顧童年經歷能幫你更好地理解線性回歸。