R Multiple Linear Regressions 多元線性迴歸

多元迴歸

多元迴歸是線性迴歸模型的自然延伸。它用於從幾個解釋變量預測響應的值。每個解釋變量都有自己的係數。響應變量由所有變量乘以各自係數的組合來預測。

其基本原理與簡單迴歸相同:我們尋求預測因子的線性組合,以最小化與結果變量的差異。

 

the parallel slopes model 平行斜率模型

數據展示

當我們遇到兩個 變量的場景,其中一個是 數字型變量(溫度),其中一個是 分類型變量(是否是週末),我們定義了下面這樣的模型:

X1 是“溫度”,X2是 “是否是週末”

 

也就是這樣的:

 

我們得到的是兩條線,斜率 slpoe是一樣的 (都是β1),但是截距不一樣 (βˆ0 和 βˆ0 + βˆ2) ,注意雖然是兩條線,但只有一條線對應每一個數據點。

 

R模型如下,可以看到 dayType這個預測變量 的係數是51.55 , 這個應該就是藍色 (Weekend )的那條線比紅色的高出來的截距。

可以看到模型總結裏是 dayTypeweekend 而不是 dayType ,這GLM裏面有類似的表達,注意其含義。

 

model with interaction (交互模型) 

 

上面的交互模型 給出了 以下的截距(兩個)和斜率(兩個),它表示着兩條線,而且有着不同的截距和斜率

 

我們得到的是兩條線,斜率 slpoe是不一樣的,截距也不一樣,注意雖然是兩條線,但只有一條線對應每一個數據點。

這讓我們看到了 :工作日的斜率更高, 非工作的的截距更高。這個模型似乎,比上一個看起來更加的合理一些~

Choosing your model 模型選擇

多元線性模型的模型選擇(其實就是選擇保留那些預測變量)還是比較直觀和簡單的,一個個加和一個個減都是值得嘗試的辦法

對一個多重線性模型,解釋變量數量的選擇 是一個 目的明確 的過程,我將它總結成如下:

  • 先使用 look at scatterplots and correlation coefficients (這裏我們可以用那個GGally 的GGpairs函數得到變量之間的線性相關係數矩陣,有一個初步的判斷);
  • 然後我們使用減法,也就是我們把儘可能多的我們認爲有影響力的解釋變量(Xi)全加到公式裏面去,這裏可以把可用的全加上;
  • 然後我們觀察p-value,依次減去最大的p-value項
  • 最後停下來的標準是我們已經得到了儘可能大的 adjusted R2 和 儘可能少的 (奧卡姆剃刀理論)解釋變量數目(請不要強行糾結哪個更重要)

一些額外

一般來講我們沒有涉及到變量之間的交互,譬如相乘,但有些場景下這是值得考慮的做法,這增加了模型的 flexibility ;

預測變量的 的高次冪 也可以被考慮用以增加模型的 flexibility,但在model fit 上有一些不好的性質;

一個經驗之談,預測變量的的高次冪項存在,那麼其對應的底次冪也應該被初始考慮;

過高的 flexibility 會導致飽和模型 (過擬合),意味着我們實現了數據的 reproducing ,但failed to explain the data;

參數丟棄在R 中我們可以使用 drop , anova (用來比較兩個嵌套模型中部分預測變量是否有存在的必要);

我們也可以結合使用 CV 和 RFE (RFECV )來確定一堆預測變量 我應該使用哪些,python 中一般會這樣做。

方差擴大因子(Variance inflation factor,VIF)也可以視爲一個變量 是否應該存在的參考,它 等於多元模型中該係數的方差與只有一個變量的模型中該係數的方差的商。當各變量線性無關時方差擴大因子爲1。如果方差擴大因子過大,則說明自變量之間有較強的相關性,可以去掉方差擴大因子較大的變量或將相關的變量組合成單一變量。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章