1. 程式人生 > >你應該掌握的 7 種迴歸模型!

你應該掌握的 7 種迴歸模型!

線性迴歸和邏輯迴歸通常是人們學習預測模型的第一個演算法。由於這二者的知名度很大,許多分析人員以為它們就是迴歸的唯一形式了。而瞭解更多的學者會知道它們是所有迴歸模型的主要兩種形式。

事實是有很多種迴歸形式,每種迴歸都有其特定的適用場合。在這篇文章中,我將以簡單的形式介紹 7 中最常見的迴歸模型。通過這篇文章,我希望能夠幫助大家對迴歸有更廣泛和全面的認識,而不是僅僅知道使用線性迴歸和邏輯迴歸來解決實際問題。

本文將主要介紹以下幾個方面:

  • 什麼是迴歸分析?

  • 為什麼使用迴歸分析?

  • 有哪些迴歸型別?

  • 線性迴歸(Linear Regression)

    • 邏輯迴歸(Logistic Regression)

    • 多項式迴歸(Polynomial Regression)

    • 逐步迴歸(Stepwise Regression)

    • 嶺迴歸(Ridge Regression)

    • 套索迴歸(Lasso Regression)

    • 彈性迴歸(ElasticNet Regression)

  • 如何選擇合適的迴歸模型?

1. 什麼是迴歸分析?

迴歸分析是一種預測建模技術的方法,研究因變數(目標)和自變數(預測器)之前的關係。這一技術被用在預測、時間序列模型和尋找變數之間因果關係。例如研究駕駛員魯莽駕駛與交通事故發生頻率之間的關係,就可以通過迴歸分析來解決。

迴歸分析是進行資料建模、分析的重要工具。下面這張圖反映的是使用一條曲線來擬合離散資料點。其中,所有離散資料點與擬合曲線對應位置的差值之和是被最小化了的,更多細節我們會慢慢介紹。

這裡寫圖片描述

2. 為什麼使用迴歸分析?

如上面所說,迴歸分析能估計兩個或者多個變數之間的關係。下面我們通過一個簡單的例子來理解:

比如說,你想根據當前的經濟狀況來估計一家公司的銷售額增長。你有最近的公司資料,資料表明銷售增長大約是經濟增長的 2.5 倍。利用這種洞察力,我們就可以根據當前和過去的資訊預測公司未來的銷售情況。

使用迴歸模型有很多好處,例如:

  1. 揭示了因變數和自變數之間的顯著關係

  2. 揭示了多個自變數對一個因變數的影響程度大小

迴歸分析還允許我們比較在不同尺度上測量的變數的影響,例如價格變化的影響和促銷活動的數量的影響。這樣的好處是可以幫助市場研究者 / 資料分析家 / 資料科學家評估選擇最佳的變數集,用於建立預測模型。

3. 有哪些迴歸型別?

有許多回歸技術可以用來做預測。這些迴歸技術主要由三個度量(獨立變數的數量、度量變數的型別和迴歸線的形狀)驅動。我們將在下面的章節中詳細討論。

這裡寫圖片描述

對於有創造力的人來說,可以對上面的引數進行組合,甚至創造出新的迴歸。但是在此之前,讓我們來看一看最常見的幾種迴歸。

1) 線性迴歸(Linear Regression)

線性迴歸是最為人熟知的建模技術,是人們學習如何預測模型時的首選之一。在此技術中,因變數是連續的,自變數可以是連續的也可以是離散的。迴歸的本質是線性的。

線性迴歸通過使用最佳的擬合直線(又被稱為迴歸線),建立因變數(Y)和一個或多個自變數(X)之間的關係。

它的表示式為:Y=a+b*X+e,其中 a 為直線截距,b 為直線斜率,e 為誤差項。如果給出了自變數 X,就能通過這個線性迴歸表示式計算出預測值,即因變數 Y。

這裡寫圖片描述

一元線性迴歸和多元線性迴歸的區別在於,多元線性迴歸有大於 1 個自變數,而一元線性迴歸只有 1 個自變數。接下來的問題是“如何獲得最佳擬合直線?”

如何獲得最佳擬合直線(確定 a 和 b 值)?

這個問題可以使用最小二乘法(Least Square Method)輕鬆解決。最小二乘法是一種擬合迴歸線的常用演算法。它通過最小化每個資料點與預測直線的垂直誤差的平方和來計算得到最佳擬合直線。因為計算的是誤差平方和,所有,誤差正負值之間沒有相互抵消。

這裡寫圖片描述 這裡寫圖片描述

我們可以使用指標 R-square 來評估模型的效能。

重點:

  • 自變數和因變數之間必須滿足線性關係。

  • 多元迴歸存在多重共線性,自相關性和異方差性。

  • 線性迴歸對異常值非常敏感。異常值會嚴重影響迴歸線和最終的預測值。

  • 多重共線性會增加係數估計的方差,並且使得估計對模型中的微小變化非常敏感。結果是係數估計不穩定。

  • 在多個自變數的情況下,我們可以採用正向選擇、向後消除和逐步選擇的方法來選擇最重要的自變數。

2) 邏輯迴歸

邏輯迴歸用來計算事件成功(Success)或者失敗(Failure)的概率。當因變數是二進位制(0/1,True/False,Yes/No)時,應該使用邏輯迴歸。這裡,Y 的取值範圍為 [0,1],它可以由下列等式來表示。

odds= p/ (1-p) = probability of event occurrence / probability of not event occurrence
ln(odds) = ln(p/(1-p))
logit(p) = ln(p/(1-p)) = b0+b1X1+b2X2+b3X3....+bkXk

其中,p 是事件發生的概率。你可能會有這樣的疑問“為什麼在等式中使用對數 log 呢?”

因為我們這裡使用的二項分佈(因變數),所以需要選擇一個合適的啟用函式能夠將輸出對映到 [0,1] 之間,Logit 函式滿足要求。在上面的等式中,通過使用最大似然估計來得到最佳的引數,而不是使用線性迴歸最小化平方誤差的方法。

這裡寫圖片描述

重點:

  • 邏輯迴歸廣泛用於分類問題。

  • 邏輯迴歸不要求因變數和自變數之間是線性關係,它可以處理多型別關係,因為它對預測輸出進行了非線性 log 變換。

  • 為了避免過擬合和欠擬合,我們應該涵蓋所有有用的變數。實際中確保這種情況的一個好的做法是使用逐步篩選的方法來估計邏輯迴歸。

  • 訓練樣本數量越大越好,因為如果樣本數量少,最大似然估計的效果就會比最小二乘法差。

  • 自變數不應相互關聯,即不存在多重共線性。然而,在分析和建模中,我們可以選擇包含分類變數相互作用的影響。

  • 如果因變數的值是序數,則稱之為序數邏輯迴歸。

  • 如果因變數是多類別的,則稱之為多元邏輯迴歸。

3) 多項式迴歸(Polynomial Regression)

對應一個迴歸方程,如果自變數的指數大於 1,則它就是多項式迴歸方程,如下所示:

y=a+b*x^2

在多項式迴歸中,最佳的擬合線不是直線,而是擬合數據點的曲線。

這裡寫圖片描述

重點:

雖然可能會有一些誘導去擬合更高階的多項式以此來降低誤差,但是這樣容易發生過擬合。應該畫出擬合曲線圖形,重點放在確保曲線反映樣本真實分佈上。下圖是一個例子,可以幫助我們理解。

這裡寫圖片描述

尤其要注意曲線的兩端,看看這些形狀和趨勢是否有意義。更高的多項式可以產生怪異的推斷結果。

4) 逐步迴歸(Stepwise Regression)

當我們處理多個獨立變數時,就使用逐步迴歸。在這種技術中,獨立變數的選擇是藉助於自動過程來完成的,不涉及人工干預。

逐步迴歸的做法是觀察統計值,例如 R-square、t-stats、AIC 指標來辨別重要的變數。基於特定標準,通過增加/刪除協變數來逐步擬合迴歸模型。常見的逐步迴歸方法如下所示:

  • 標準的逐步迴歸做兩件事,每一步中增加或移除自變數。

  • 前向選擇從模型中最重要的自變數開始,然後每一步中增加變數。

  • 反向消除從模型所有的自變數開始,然後每一步中移除最小顯著變數。

這種建模技術的目的是通過使用最少的自變數在得到最大的預測能力。它也是處理高維資料集的方法之一。

5) 嶺迴歸(Ridge Regression)

嶺迴歸是當資料遭受多重共線性(獨立變數高度相關)時使用的一種技術。在多重共線性中,即使最小二乘估計(OLS)是無偏差的,但是方差很大,使得觀察智遠離真實值。嶺迴歸通過給迴歸估計中增加額外的偏差度,能夠有效減少方差。

之前我們介紹過線性迴歸方程,如下所示:

y=a+bx

這個方程也有一個誤差項,完整的方程可表示成:

y=a+b*x+e (error term),  [error term is the value needed to correct for a prediction error between the observed and predicted value]
=> y=a+y= a+ b1x1+ b2x2+....+e, for multiple independent variables.

線上性方程中,預測誤差可以分解為兩個子分量。首先是由於偏頗,其次是由於方差。預測誤差可能由於這兩個或兩個分量中的任何一個而發生。這裡,我們將討論由於方差引起的誤差。

嶺迴歸通過收縮引數 λ(lambda)解決了多重共線性問題。請看下面的方程式:

這裡寫圖片描述

上面這個公式中包含兩項。第一個是最小平方項,第二個是係數 β 的平方和項,前面乘以收縮引數 λ。增加第二項的目的是為了縮小系數 β 的幅值以減小方差。

重點:

  • 除非不假定正態性,嶺迴歸與最小二乘迴歸的所有假設是一樣的。

  • 嶺迴歸縮小了係數的值,但沒有達到零,這表明它沒有特徵選擇特徵。

  • 這是一個正則化方法,使用了 L2 正則化。

6) 套索迴歸(Lasso Regression)

類似於嶺迴歸,套索(Least Absolute Shrinkage and Selection Operator)迴歸懲罰的是迴歸係數的絕對值。此外,它能夠減少變異性和提高線性迴歸模型的準確性。請看下面的方程式:

這裡寫圖片描述

套索迴歸不同於嶺迴歸,懲罰函式它使用的是係數的絕對值之和,而不是平方。這導致懲罰項(或等價於約束估計的絕對值之和),使得一些迴歸係數估計恰好為零。施加的懲罰越大,估計就越接近零。實現從 n 個變數中進行選擇。

重點:

  • 除非不假定正態性,套索迴歸與最小二乘迴歸的所有假設是一樣的。

  • 套索迴歸將係數收縮到零(正好為零),有助於特徵選擇。

  • 這是一個正則化方法,使用了 L1 正則化。

  • 如果一組自變數高度相關,那麼套索迴歸只會選擇其中一個,而將其餘的縮小為零。

7) 彈性迴歸(ElasticNet Regression)

彈性迴歸是嶺迴歸和套索迴歸的混合技術,它同時使用 L2 和 L1 正則化。當有多個相關的特徵時,彈性網路是有用的。套索迴歸很可能隨機選擇其中一個,而彈性迴歸很可能都會選擇。

這裡寫圖片描述

權衡嶺迴歸和套索迴歸的一個優點是它讓彈性迴歸繼承了一些嶺迴歸在旋轉狀態下的穩定性。

重點:

  • 在高度相關變數的情況下,它支援群體效應。

  • 它對所選變數的數目沒有限制

  • 它具有兩個收縮因子 λ1 和 λ2。

除了這 7 種最常用的迴歸技術之外,你還可以看看其它模型,如 Bayesian、Ecological 和 Robust 迴歸。

4. 如何選擇合適的迴歸模型?

當你只知道一兩種技巧時,生活通常是簡單的。我知道的一個培訓機構告訴他們的學生:如果結果是連續的,使用線性迴歸;如果結果是二值的,使用邏輯迴歸!然而,可供選擇的選項越多,選擇合適的答案就越困難。類似的情況也發生在迴歸模型選擇中。

在多種型別的迴歸模型中,基於自變數和因變數的型別、資料維數和資料的其它本質特徵,選擇最合適的技術是很重要的。以下是如何選擇合適的迴歸模型的幾點建議:

  • 資料探勘是建立預測模型不可缺少的環節。這應該是選擇正確的模型的第一步,比如確定各變數的關係和影響。

  • 比較適合於不同模型的擬合程度,我們可以分析它們不同的指標引數,例如統計意義的引數,R-square,Adjusted R-square,AIC,BIC 以及誤差項,另一個是 Mallows’ Cp 準則。通過將模型與所有可能的子模型進行對比(或小心地選擇他們),檢查模型可能的偏差。

  • 交叉驗證是評價預測模型的最佳方法。你可以將資料集分成兩組(訓練集和驗證集)。通過衡量觀測值和預測值之間簡單的均方差就能給出預測精度的度量。

  • 如果資料集有多個混合變數,則不應使用自動模型選擇方法,因為不希望同時將這些混合變數放入模型中。

  • 這也取決於你的目標。與高度統計學意義的模型相比,簡單的模型更容易實現。

  • 迴歸正則化方法(LasSo、Ridge 和 ElasticNet)在資料集是高維和自變數是多重共線性的情況下工作良好。

結語:

現在,我希望你對迴歸會有一個整體的印象。這些迴歸技術應該根據不同的資料條件進行選擇應用。找出使用哪種迴歸的最佳方法之一就是檢查變數族,即離散變數還是連續變數。

在本文中,我討論了 7 種類型的迴歸方法和與每種迴歸的關鍵知識點。作為這個行業中的新手,我建議您學習這些技術,並在實際應用中實現這些模型。

原文連結:

這裡寫圖片描述