多元線性回歸、逐步回歸、邏輯回歸的總結

2021-03-02 柯同學

最近對線性回歸很感興趣,前面用Python從底層一步一個腳印用兩種方法實現了回歸擬合。在這個高級語言層出不窮的年代,這樣做顯然不明智,所以我考慮用優秀的數據分析工具——R語言(不敢說最優秀,雖然心裡是這麼想的,我怕有人要罵我!)做回歸分析。包括簡單多變量回歸、逐步回歸、邏輯回歸!

對了,上次,用Python寫的兩篇回歸擬合分別是:

基於最小二乘法的——線性回歸擬合(一)

基於梯度下降法的——線性回歸擬合(二)

多元回歸分析,生活中用的很多,因為一個因素可能與很多其它因素有關!言歸正傳,這裡考慮用R語言裡面的相關函數做回歸分析。

需要的用到的知識儲備:

下面分別從普通多元線性回歸、逐步回歸、邏輯回歸進行介紹。前面用Python實現的只是一元回歸,由於R語言實現線性回歸很方便,所以我會著重介紹原理。

多元線性回歸

不論是單變量還是多元線性回歸分析,他們都是直接或間接(有時候需要通過變量代換)程線性的關係。我們需要找到一個通用的線性模型來描述這種關係,在我們可以接受的誤差範圍內對數據進行預測或者發現規律。


多元線性回歸理論基礎

對於一組變量數據,如果我們不管是通過畫散點圖還是其它方法,知道了一個變量與其它變量程很強線性關係。我們就需要知道,到底是什麼樣的關係,關係係數是多少。通常是用經典的最小二乘法,因為這樣算出的確實是最優的係數,可以保證殘差平方和最小的優化目標。

對於一個因變量y,有一組自變量X = (x1,x2,...,xk),x1,x2,...,xk,eps是列向量,考慮它們之間有如下線性關係:


當然了,這裡X = (x1,x2,...,xk),y都是給的一組數據,就像這樣


那麼,對每一組(比如第一行)數據,就有如下關係:


目標函數為殘差平方和的關於係數beta0,beta1,...,betak的多元二次函數,我們希望找到一組係數使得目標函數值最小,即誤差最小。目標函數如下:

學過數學分析或者高等數學的人都知道,這只要關於beta0,beta1,...,betak分別求偏導數,得到k+1方程,再求出零點即可。

我們用矩陣表示各個變量如下:

那麼,學過高等代數(數學專業)或者線性代數(工科)都知道,因變量與自變量關係可以表示為:

中間推導過程這裡不在贅述了,最終係數向量表達式為:

關於多元線性回歸的理論就到這裡,有興趣可以參考:線性回歸導論(機械工業出版社 王辰勇 譯)

多元線性回歸的R語言實現

這裡用R語言裡面的常用數據集iris來說明,這個數據集包含五個指標,我們這裡先只用前面四個:花萼長度、花萼寬度、花瓣長度、花瓣寬度,進行多元線性回歸分析。

數據預處理

大家都知道,為了消除不同變量量綱或者數量級不一致,做數據標準化的數據預處理是有必要的。用到的R語言函數是scale(),這個函數的機理具體公式如下:

R語言實現如下:

標準化後數據選擇前六行我們看一下:

> head(sl.sc)

     Sepal.Length

[1,]   -0.8976739

[2,]   -1.1392005

[3,]   -1.3807271

[4,]   -1.5014904

[5,]   -1.0184372

[6,]   -0.5353840

下面構建多元線性回歸

我們用花萼標準化後的數據sl.sc與其它三個變量做線性回歸,先做有常數項的多元回歸。

lm.sc <- lm(sl.sc~sw.sc+pl.sc+pw.sc)

summary(lm.sc)

summary(lm.sc)給出了線性回歸的相關信息,各個係數Residuals給出了殘差的5分位數,Estimate、Std. Error、t value、Pr(>|t|)分別給出了自變量係數、標準誤、t值和p值,Multiple R-squared:  0.8586, Adjusted R-squared:  0.8557分別給出了R方與修正的R方,這裡 R-squared:  0.8557表示這個線性回歸模型可以解釋85.57的原數據,還是不錯的,後面就不再解釋這幾個指標的意思了。可以看出無論是每個係數還是總體的p-value都遠遠小於0.05,給出了三顆星***的等級,但是如圖藍色方框是常數項的值是-1.176e-16,太小了,p值是1,告訴我們常數項可以不用,這些數據是過原點的線性關係。

去掉常數項的多元回歸,不同的是,減一表示不要常數項

lm.sc <- lm(sl.sc~sw.sc+pl.sc+pw.sc-1)

summary(lm.sc)

模型詳細情況:

顯然,去掉後R方,F值沒有明顯變換,係數等級都是三顆星,表明去掉常數項確實在不影響模型情況下簡化了模型。

我們來看一下殘差圖與QQ圖:

plot(lm.sc,1,col = 'orange',main = '殘差圖')

plot(lm.sc,2,col = 'orange',main = 'QQ圖')

通過殘差圖與QQ圖也可以明顯看出這個不帶常數項的線性回歸模型是不錯的。

逐步回歸

逐步回歸的基本思想是將變量逐個引入模型,每引入一個解釋變量後都要進行F檢驗,並對已經選入的解釋變量逐個進行t檢驗,當原來引入的解釋變量由於後面解釋變量的引入變得不再顯著時,則將其刪除。以確保每次引入新的變量之前回歸方程中只包含顯著性變量。這是一個反覆的過程,直到既沒有顯著的解釋變量選入回歸方程,也沒有不顯著的解釋變量從回歸方程中剔除為止。以保證最後所得到的解釋變量集是最優、最簡單的。

逐步回歸最常用的挑選準則有修正復相關係數、預測平方和、Cp和AIC等,這裡用AIC準則,對於含有P個自變量的回歸方程,n為觀測值(樣本)個數,AIC越小越好,具體計算公式為:

使用R語言構建逐步回歸模型

知道原理後,我們試圖從三個自變量中篩選出兩個,首先看一下上述模型的AIC

step(lm.sc)

顯然,三個變量時AIC是最小的,這裡為了說明問題,實在要剔除一個變量的話,當然要剔除第一個。因為我們發現剔除pw.sc時AIC為-272.06,如果剔除pl.scAIC就為-181.26,而AIC越小越好,所以就剔除變量pw.sc吧。

lm.new <- lm(sl.sc~sw.sc+pl.sc-1)

summary(lm.new)

R方稍微減小了一點,因為三個變量AIC最小(即模型最優),提出後肯定會減小的。這裡為了說明問題才強行提出一個。

邏輯回歸

在介紹邏輯回歸前我們先介紹什麼是啞變量,其實,R語言用的多的人都知道iris這個數據集有5列,第五列是花的分類:setosa、versicolor、 virginica。那麼花萼長度是否與花的分類有關呢?一般是有的。增加三列,我們考慮引入0~1變量,那麼對於屬於setosa的,記為1,versicolor、 virginica位置記為0,同理就多了3列,這裡的0,1就是啞變量。還是為了減少變量,簡化模型,我們只增加2列versicolor和 virginica,這樣versicolor、 virginica位置都為0時,就屬於setosa這個分類,versicolor位置為1時就為versicolor這個分類。0,1是邏輯變量,線性回歸引入了邏輯變量,故稱為邏輯回歸。

下面就進行R語言實現,要不看一下iris數據集長什麼樣:

第五列變量就有三個水平,都是50條,正好。

兩個for()語句就是構造邏輯變量的,還是很好理解的,這樣就有五個變量了。構造的應該像這樣:

這裡省略了前面的,只為說明構造的邏輯變量(實際應該是s1裡面51~100為1,s2裡面101~150為1,其它為0)。看一下結果:

所有變量係數p-value都小於0.05,R-squared:  0.8627,比沒有增加邏輯變量的R-squared:  0.8557好一些,可見花的分類確實對花萼長度sl.sc有關係。最終表達式為:

關於多元線性回歸、逐步回歸、邏輯回歸的總結就到這裡,有問題可以加微信:as2601538122交流。

歡迎留言,純屬個人觀點、理解,歡迎提意見、建議,覺得不錯記得【點讚】分享哦!

相關焦點

  • 機器學習:回歸分析——多元線性回歸分析
    從前面的學習中我們知道:社會經濟現象的變化往往受到多個因素的影響,因此一般要進行多元回歸分析。我們把包括兩個或兩個以上自變量的回歸稱為多元線性回歸。所以相比一元線性回歸,多元線性回歸的實際意義更大。本節我們將使用來自UIC數據集中的能效數據集(ENB2012_data.xlsx)進行演示,探索如何使用Python對數據集進行多元回歸分析。
  • 多元線性回歸分析:納入多元回歸自變量的確定及求解多元回歸方程
    許栩原創專欄《從入門到高手:線性回歸分析詳解》第五章,多元線性回歸分析:如何求解多元線性回歸方程。在前面的章節中我講到,實際需求預測場景中,通常,影響需求的因素不止一個,對需求影響的因素可能多種多樣,也就是說自變量多種多樣,很少能用單一的變量(也即一元線性回歸分析)來做好需求預測。這時,我們需要用到多元線性回歸分析。回歸分析在需求預測的應用,也主要是多元線性回歸分析。
  • 廣義線性模型與邏輯回歸
    學過統計學的同學們應該非常清楚,上述分類超平面其實就是一個多元線性模型。故和是線性相關的。並且在線性回歸中,我們假設響應變量服從正態分布的,即所以我們無法直接採用線性回歸模型進行建模。對於這一類問題,可以用邏輯回歸來處理。在講邏輯回歸之前,先簡單介紹下指數族分布、廣義線性模型,因為邏輯回歸是廣義線性模型的一種,所以我們需要了解如何從廣義線性模型得到邏輯回歸。二、指數族分布之所以先介紹指數族分布,因為指數族分布是所有廣義線性模型的假設條件之一。
  • 模型之母:多元線性回歸
    0x00 前言 在線性回歸的前3篇中,我們介紹了簡單線性回歸這種樣本只有一個特徵值的特殊形式,並且了解了一類機器學習的建模推導思想,即:然後通過最優化損失函數或者效用函數,獲得機器學習的模型。然後我們推導並實現了最小二乘法,然後實現了簡單線性回歸。最後還以簡單線性回歸為例,學習了線性回歸的評價指標:均方誤差MSE、均方根誤差RMSE、平均絕對MAE以及R方。
  • spss多元線性回歸模型 - CSDN
    多元線性回歸,主要是研究一個因變量與多個自變量之間的相關關係,跟一元回歸原理差不多,區別在於影響因素(自變量)更多些而已,例如:一元線性回歸方程 為:毫無疑問,多元線性回歸方程應該為:上圖中的 x1,  x2, xp分別代表「自變量」Xp截止,代表有P個自變量
  • 入門機器學習之線性回歸
    回歸分析是研究相關關係的是一種數學工具,是用一個變量取得的值去估計另一個變量所取得的值。回歸分析按照涉及的變量的多少,分為一元回歸和多元回歸分析;按照因變量的多少,可分為簡單回歸分析和多重回歸分析;按照自變量和因變量之間的關係類型,可分為線性回歸分析和非線性回歸分析。如果在回歸分析中,只包括一個自變量和一個因變量,且二者的關係可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析。
  • 使用Matlab解決多元線性回歸問題
    上期我們分享了使用matlab進行數組最值的搜尋,有同學留言想了解matlab多元線性回歸,安排!
  • spss線性回歸 回歸方程 - CSDN
    多元線性回歸,主要是研究一個因變量與多個自變量之間的相關關係,跟一元回歸原理差不多,區別在於影響因素(自變量)更多些而已,例如:一元線性回歸方程 為:    毫無疑問,多元線性回歸方程應該為:那麼,多元線性回歸方程矩陣形式為:
  • 多元線性回歸spss操作 - CSDN
    轉自個人微信公眾號【Memo_Cleon】的統計學習筆記:多元線性回歸。這次筆記的內容是多元線性回歸的SPSS操作及解讀。嚴格來講,這種一個因變量多個自變量的線性回歸叫多變量線性回歸或者多因素線性回歸更合適一些。多元或者多變量往往指的是多個因變量。
  • 多重線性回歸實例 - CSDN
    在上一期SPSS的推文中我們講了一些關於線性回歸的基本知識,還利用一個簡單的實例進行了簡單線性回歸的分析,今天我們就來講講多重線性回歸(也叫多元線性回歸),有關多元線性回歸的概念我在上一期的推文中也已經講過,這裡就不提了。可瀏覽上一篇SPSS的推文:SPSS第二期——線性回歸(上),兩篇對照起來看,或許能學到更多知識。
  • spss多元線性回歸模型專題及常見問題 - CSDN
    多元線性回歸,主要是研究一個因變量與多個自變量之間的相關關係,跟一元回歸原理差不多,區別在於影響因素(自變量)更多些而已,例如:一元線性回歸方程 為:    毫無疑問,多元線性回歸方程應該為:那麼,多元線性回歸方程矩陣形式為:
  • 基於R軟體實現多元線性回歸
    一個多元線性回歸在R中的實現示例在一元回歸中,只包含一個預測變量和響應變量間的關係。與此相比,當存在兩個或以上的預測變量時,稱為多元回歸(Multiple Regression)。如果只考慮變量間的線性關係時,就是多元線性回歸(Multiple Linear Regression)。
  • 逐步回歸分析法及其應用
    因此,多元回歸分析在現代經濟學,尤其是其分支學科計量經濟學中常常得到應用。隨著統計學與計量經濟學軟體的開發與應用,經濟研究者在經濟學的實證分析過程中越來越多的採用逐步回歸分析的方法來建立多元回歸模型。因此,研究逐步回歸分析及其在經濟學研究中的應用具有理論與實踐意義。
  • spss多元線性回歸專題及常見問題 - CSDN
    以照護需求得分為因變量,以可能為影響失能老年人照護需求得分的因素為自變量,採用多元線性回歸篩選出影響失能老年人選擇照護服務需求的因素。本例納入的自變量有年齡、經濟來源、健康自評、失能程度、慢性病患病種類、慢性疼痛、跌倒經歷,賦值方式如表1:
  • 線性模型(三)邏輯回歸
    邏輯回歸用戶是否會點擊廣告、貸款是否會逾期等這種二分因變量取值一般定義為0和1(一般把關注的事件編碼為1)或+1和-1,對於這類問題可以使用邏輯回歸建模模型原理拋硬幣的隨機事件中,拋一次硬幣的結果可能是正面或反面,設正面表示為1,概率為p,則該隨機事件屬於
  • Python 機器學習:多元線性回歸
    python機器學習:線性回歸往下講,這篇文章要講解的多元線性回歸。1、什麼是多元線性回歸模型?當y值的影響因素不唯一時,採用多元線性回歸模型。例如商品的銷售額可能不電視廣告投入,收音機廣告投入,報紙廣告投入有關係,可以有 sales =β0+β1*TV+β2* radio+β3*newspaper.
  • 線性回歸:簡單線性回歸詳解
    【導讀】本文是一篇專門介紹線性回歸的技術文章,討論了機器學習中線性回歸的技術細節。線性回歸核心思想是獲得最能夠擬合數據的直線。
  • 使用sklearn實現多元線性回歸
    使用sklearn實現多元線性回歸多元線性回歸import pandas
  • 講講逐步回歸
    總第178篇/張俊紅01.前言前面我們講過了多元線性回歸。這一篇我們來講講逐步回歸。什麼是逐步回歸呢?
  • 原理+代碼|Python實戰多元線性回歸模型
    其中多元共線性這個問題將貫穿所有的機器學習模型,所以本文會「將原理知識穿插於代碼段中」,爭取以不一樣的視角來敘述和講解「如何更好的構建和優化多元線性回歸模型」。再次建模後,發現模型精度大大提升,但潛在的多元共線性問題也隨之顯現出來在解釋模型中虛擬變量的係數之前,我們先消除模型中多元共線性的影響,因為在排除共線性後,模型中的各個自變量的係數又會改變,最終的多元線性回歸模型的等式又會不一樣。