在機器學習面試中經常會被問到的一個問題是,特徵如果存在多重共線性時為什麼不能估計出最佳迴歸係數?本篇文章算是這個問題的標準答案

多重共線性是什麼?

當迴歸模型中的自變數之間高度相關時,存在多重共線性。

例如,如果你的模型包括2個變數,即工作經驗年數和工資,那麼在你的模型中就很有可能存在多重共線性。原因是從常識上講,經驗越豐富,薪水越高。

多重共線性是如何影響迴歸模型的

它對線性迴歸模型有何影響?

它會使模型估計失真或難以估計準確, 回想一下線性迴歸模型的 MSE 損失函式的偏導數:

多重共線性是如何影響迴歸模型的

為了找到最優迴歸係數,我們要最小化損失函式 MSE,換句話說就是找到最小化 MSE 的迴歸係數值。 透過進行一些轉換,可以使用以下等式找到最佳引數:

多重共線性是如何影響迴歸模型的

上面的公式中:

theta_hat 是最小化損失函式的估計係數

y 目標值向量

X 是包含所有預測變數的設計矩陣(design matrix)

這裡我們假設 XTX 是可逆的,以便能夠估計 theta_hat 。 但是,如果 X 的列彼此線性相關(存在多重共線性),則 XTX 是不可逆的。

由於迴歸模型中存在共線性,所以很難解釋模型的係數 。

還記得迴歸係數的解釋嗎?

迴歸係數英文名稱:regression coefficient

定義:迴歸分析中度量依變數對自變數的相依程度的指標,它反映當自變數每變化一個單位時,因變數所期望的變化量。在迴歸方程中表示自變數x 對因變數y 影響大小的引數。迴歸係數越大表示x 對y 影響越大,正迴歸係數表示y 隨x 增大而增大,負迴歸係數表示y 隨x 增大而減小。迴歸方程式Y=bX+a中之斜率b,稱為迴歸係數,表X每變動一單位,平均而言,Y將變動b單位。

如果模型中存在多重共線性,這意味著一些自變數是相關的,簡單的說一個變數的變化與另一個變數的變化相關。 相關性越強,在不改變另一個輸入的情況下解釋每次輸入變化的輸出變化就越困難。所以會降低估計係數的精度或降低模型的效能。

如何消除多重共線性?

這裡有一些推薦的方法來消除或減少線性迴歸模型中的多重共線性

保留一個變數並刪除與保留變數高度相關的其他變數

將相關變數線性組合在一起

使用對高度相關的特徵進行降維,例如PCA

LASSO 或 Ridge 迴歸是迴歸分析的高階形式,可以處理多重共線性

作者:hqtquynhtram