1. 程式人生 > 其它 >七種常用迴歸技術,如何正確選擇迴歸模型?

七種常用迴歸技術,如何正確選擇迴歸模型?

作者:劉帝偉,中南大學軟體學院在讀研究生

迴歸分析是建模和分析資料的重要工具。本文解釋了迴歸分析的內涵及其優勢,重點總結了應該掌握的線性迴歸、邏輯迴歸、多項式迴歸、逐步迴歸、嶺迴歸、套索迴歸、ElasticNet迴歸等七種最常用的迴歸技術及其關鍵要素,最後介紹了選擇正確的迴歸模型的關鍵因素。

什麼是迴歸分析?

迴歸分析是一種預測性的建模技術,它研究的是因變數(目標)和自變數(預測器)之間的關係。這種技術通常用於預測分析,時間序列模型以及發現變數之間的因果關係。例如,司機的魯莽駕駛與道路交通事故數量之間的關係,最好的研究方法就是迴歸。

迴歸分析是建模和分析資料的重要工具。在這裡,我們使用曲線/線來擬合這些資料點,在這種方式下,從曲線或線到資料點的距離差異最小。我會在接下來的部分詳細解釋這一點。

我們為什麼使用迴歸分析?

如上所述,迴歸分析估計了兩個或多個變數之間的關係。下面,讓我們舉一個簡單的例子來理解它:

比如說,在當前的經濟條件下,你要估計一家公司的銷售額增長情況。現在,你有公司最新的資料,這些資料顯示出銷售額增長大約是經濟增長的2.5倍。那麼使用迴歸分析,我們就可以根據當前和過去的資訊來預測未來公司的銷售情況。

使用迴歸分析的好處良多。具體如下:

  1. 它表明自變數和因變數之間的顯著關係
  2. 它表明多個自變數對一個因變數的影響強度

迴歸分析也允許我們去比較那些衡量不同尺度的變數之間的相互影響,如價格變動與促銷活動數量之間聯絡。這些有利於幫助市場研究人員,資料分析人員以及資料科學家排除並估計出一組最佳的變數,用來構建預測模型。

我們有多少種迴歸技術?

有各種各樣的迴歸技術用於預測。這些技術主要有三個度量(自變數的個數,因變數的型別以及迴歸線的形狀)。我們將在下面的部分詳細討論它們。

對於那些有創意的人,如果你覺得有必要使用上面這些引數的一個組合,你甚至可以創造出一個沒有被使用過的迴歸模型。但在你開始之前,先了解如下最常用的迴歸方法:

1. Linear Regression線性迴歸

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

線性迴歸使用最佳的擬合直線(也就是迴歸線)在因變數(Y)和一個或多個自變數(X)之間建立一種關係。

用一個方程式來表示它,即Y=a+b*X + e,其中a表示截距,b表示直線的斜率,e是誤差項。這個方程可以根據給定的預測變數(s)來預測目標變數的值。

一元線性迴歸和多元線性迴歸的區別在於,多元線性迴歸有(>1)個自變數,而一元線性迴歸通常只有1個自變數。現在的問題是“我們如何得到一個最佳的擬合線呢?”。

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

這個問題可以使用最小二乘法輕鬆地完成。最小二乘法也是用於擬合迴歸線最常用的方法。對於觀測資料,它通過最小化每個資料點到線的垂直偏差平方和來計算最佳擬合線。因為在相加時,偏差先平方,所以正值和負值沒有抵消。

我們可以使用R-square指標來評估模型效能。想了解這些指標的詳細資訊,可以閱讀:模型效能指標Part 1,Part 2 .

要點:

  • 自變數與因變數之間必須有線性關係
  • 多元迴歸存在多重共線性,自相關性和異方差性。
  • 線性迴歸對異常值非常敏感。它會嚴重影響迴歸線,最終影響預測值。
  • 多重共線性會增加係數估計值的方差,使得在模型輕微變化下,估計非常敏感。結果就是係數估計值不穩定
  • 在多個自變數的情況下,我們可以使用向前選擇法,向後剔除法和逐步篩選法來選擇最重要的自變數。

2.Logistic Regression邏輯迴歸

邏輯迴歸是用來計算“事件=Success”和“事件=Failure”的概率。當因變數的型別屬於二元(1 / 0,真/假,是/否)變數時,我們就應該使用邏輯迴歸。這裡,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呢?”。

因為在這裡我們使用的是的二項分佈(因變數),我們需要選擇一個對於這個分佈最佳的連結函式。它就是Logit函式。在上述方程中,通過觀測樣本的極大似然估計值來選擇引數,而不是最小化平方和誤差(如在普通迴歸使用的)。

要點:

  • 它廣泛的用於分類問題。
  • 邏輯迴歸不要求自變數和因變數是線性關係。它可以處理各種型別的關係,因為它對預測的相對風險指數OR使用了一個非線性的log轉換。
  • 為了避免過擬合和欠擬合,我們應該包括所有重要的變數。有一個很好的方法來確保這種情況,就是使用逐步篩選方法來估計邏輯迴歸。
  • 它需要大的樣本量,因為在樣本數量較少的情況下,極大似然估計的效果比普通的最小二乘法差。
  • 自變數不應該相互關聯的,即不具有多重共線性。然而,在分析和建模中,我們可以選擇包含分類變數相互作用的影響。
  • 如果因變數的值是定序變數,則稱它為序邏輯迴歸。
  • 如果因變數是多類的話,則稱它為多元邏輯迴歸。

3. Polynomial Regression多項式迴歸

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

y=a+b*x^2

在這種迴歸技術中,最佳擬合線不是直線。而是一個用於擬合數據點的曲線。

重點:

  • 雖然會有一個誘導可以擬合一個高次多項式並得到較低的錯誤,但這可能會導致過擬合。你需要經常畫出關係圖來檢視擬合情況,並且專注於保證擬合合理,既沒有過擬合又沒有欠擬合。下面是一個圖例,可以幫助理解:
  • 明顯地向兩端尋找曲線點,看看這些形狀和趨勢是否有意義。更高次的多項式最後可能產生怪異的推斷結果。

4. Stepwise Regression逐步迴歸

在處理多個自變數時,我們可以使用這種形式的迴歸。在這種技術中,自變數的選擇是在一個自動的過程中完成的,其中包括非人為操作。

這一壯舉是通過觀察統計的值,如R-square,t-stats和AIC指標,來識別重要的變數。逐步迴歸通過同時新增/刪除基於指定標準的協變數來擬合模型。下面列出了一些最常用的逐步迴歸方法:

  • 標準逐步迴歸法做兩件事情。即增加和刪除每個步驟所需的預測。
  • 向前選擇法從模型中最顯著的預測開始,然後為每一步新增變數。
  • 向後剔除法與模型的所有預測同時開始,然後在每一步消除最小顯著性的變數。

這種建模技術的目的是使用最少的預測變數數來最大化預測能力。這也是處理高維資料集的方法之一。

5. Ridge Regression嶺迴歸

嶺迴歸分析是一種用於存在多重共線性(自變數高度相關)資料的技術。在多重共線性情況下,儘管最小二乘法(OLS)對每個變數很公平,但它們的差異很大,使得觀測值偏移並遠離真實值。嶺迴歸通過給迴歸估計上增加一個偏差度,來降低標準誤差。

上面,我們看到了線性迴歸方程。還記得嗎?它可以表示為:

y=a+ b*x

這個方程也有一個誤差項。完整的方程是:

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.

在一個線性方程中,預測誤差可以分解為2個子分量。一個是偏差,一個是方差。預測錯誤可能會由這兩個分量或者這兩個中的任何一個造成。在這裡,我們將討論由方差所造成的有關誤差。

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

在這個公式中,有兩個組成部分。第一個是最小二乘項,另一個是β2(β-平方)的λ倍,其中β是相關係數。為了收縮引數把它新增到最小二乘項中以得到一個非常低的方差。

要點:

  • 除常數項以外,這種迴歸的假設與最小二乘迴歸類似;
  • 它收縮了相關係數的值,但沒有達到零,這表明它沒有特徵選擇功能
  • 這是一個正則化方法,並且使用的是L2正則化

6. Lasso Regression套索迴歸

它類似於嶺迴歸,Lasso (Least Absolute Shrinkage and Selection Operator)也會懲罰迴歸係數的絕對值大小。此外,它能夠減少變化程度並提高線性迴歸模型的精度。看看下面的公式:

Lasso 迴歸與Ridge迴歸有一點不同,它使用的懲罰函式是絕對值,而不是平方。這導致懲罰(或等於約束估計的絕對值之和)值使一些引數估計結果等於零。使用懲罰值越大,進一步估計會使得縮小值趨近於零。這將導致我們要從給定的n個變數中選擇變數。

要點:

  • 除常數項以外,這種迴歸的假設與最小二乘迴歸類似;
  • 它收縮係數接近零(等於零),這確實有助於特徵選擇;
  • 這是一個正則化方法,使用的是L1正則化

· 如果預測的一組變數是高度相關的,Lasso 會選出其中一個變數並且將其它的收縮為零。

7.ElasticNet迴歸

ElasticNet是Lasso和Ridge迴歸技術的混合體。它使用L1來訓練並且L2優先作為正則化矩陣。當有多個相關的特徵時,ElasticNet是很有用的。Lasso 會隨機挑選他們其中的一個,而ElasticNet則會選擇兩個。

Lasso和Ridge之間的實際的優點是,它允許ElasticNet繼承迴圈狀態下Ridge的一些穩定性。

要點:

  • 在高度相關變數的情況下,它會產生群體效應;
  • 選擇變數的數目沒有限制;
  • 它可以承受雙重收縮。

除了這7個最常用的迴歸技術,你也可以看看其他模型,如BayesianEcologicalRobust迴歸。

如何正確選擇迴歸模型?

當你只知道一個或兩個技術時,生活往往很簡單。我知道的一個培訓機構告訴他們的學生,如果結果是連續的,就使用線性迴歸。如果是二元的,就使用邏輯迴歸!然而,在我們的處理中,可選擇的越多,選擇正確的一個就越難。類似的情況下也發生在迴歸模型中。

在多類迴歸模型中,基於自變數和因變數的型別,資料的維數以及資料的其它基本特徵的情況下,選擇最合適的技術非常重要。以下是你要選擇正確的迴歸模型的關鍵因素:

  1. 資料探索是構建預測模型的必然組成部分。在選擇合適的模型時,比如識別變數的關係和影響時,它應該首選的一步。
  2. 比較適合於不同模型的優點,我們可以分析不同的指標引數,如統計意義的引數,R-square,Adjusted R-square,AIC,BIC以及誤差項,另一個是Mallows' Cp準則。這個主要是通過將模型與所有可能的子模型進行對比(或謹慎選擇他們),檢查在你的模型中可能出現的偏差。
  3. 交叉驗證是評估預測模型最好額方法。在這裡,將你的資料集分成兩份(一份做訓練和一份做驗證)。使用觀測值和預測值之間的一個簡單均方差來衡量你的預測精度。
  4. 如果你的資料集是多個混合變數,那麼你就不應該選擇自動模型選擇方法,因為你應該不想在同一時間把所有變數放在同一個模型中。
  5. 它也將取決於你的目的。可能會出現這樣的情況,一個不太強大的模型與具有高度統計學意義的模型相比,更易於實現。
  6. 迴歸正則化方法(Lasso,Ridge和ElasticNet)在高維和資料集變數之間多重共線性情況下執行良好。