回歸分析 | R語言 -- 多元線性回歸

多元線性回歸

多元線性回歸簡單線性回歸 的擴(kuò)展剩辟,用于基于多個(gè)不同的預(yù)測變量(x)預(yù)測結(jié)果變量(y)。

例如崇败,對于三個(gè)預(yù)測變量(x)晓锻,y??的預(yù)測由以下等式表示: y = b0 + b1*x1 + b2*x2 + b3*x3

回歸貝塔系數(shù)測量每個(gè)預(yù)測變量與結(jié)果之間的關(guān)聯(lián)歌焦。“ b_j”可以解釋為“ x_j”每增加一個(gè)單位對y的平均影響砚哆,同時(shí)保持所有其他預(yù)測變量不變独撇。

在本節(jié)中,依然使用datarium包中的 marketing 數(shù)據(jù)集,我們將建立一個(gè)多元回歸模型绪钥,根據(jù)在三種廣告媒體(youtube,facebook和報(bào)紙)上投入的預(yù)算來預(yù)測銷售关炼。計(jì)算公式如下:sales = b0 + b1*youtube + b2*facebook + b3*newspaper

library(tidyverse)
library(caret)
data("marketing", package = "datarium")
> head(marketing)
  youtube facebook newspaper sales
1  276.12    45.36     83.04 26.52
2   53.40    47.16     54.12 12.48
3   20.64    55.08     83.16 11.16
4  181.80    49.56     70.20 22.20
5  216.96    12.96     70.08 15.48
6   10.44    58.68     90.00  8.64

您可以如下計(jì)算R中的多個(gè)回歸模型系數(shù):

  • 將數(shù)據(jù)分為訓(xùn)練組和測試組程腹,按 8:2 的比例
set.seed(1998) # 設(shè)置隨機(jī)種子使結(jié)果可重復(fù)
idx = sample(nrow(marketing), 0.8 * nrow(marketing))
trainData  <- marketing[idx, ]
testData   <- marketing[-idx, ]
  • 建模
model <- lm(sales ~ youtube + facebook + newspaper, 
            data = trainData)

請注意,如果您的數(shù)據(jù)中包含許多預(yù)測變量儒拂,則可以使用~.以下命令將模型中的所有可用變量簡單地包括在內(nèi):

> summary(model)$coef
                Estimate  Std. Error   t value     Pr(>|t|)
(Intercept)  3.541060149 0.452633944  7.823232 7.263960e-13
youtube      0.045518663 0.001663864 27.357206 2.052074e-61
facebook     0.191177591 0.009717858 19.672812 4.219260e-44
newspaper   -0.001838604 0.006975243 -0.263590 7.924437e-01

從上面的輸出中寸潦,系數(shù)表顯示β系數(shù)估計(jì)值及其顯著性水平。列為:

  • Estimate:與每個(gè)預(yù)測變量相關(guān)的截距(b0)和beta系數(shù)估計(jì)
  • Std.Error:系數(shù)估算值的標(biāo)準(zhǔn)誤差社痛。這代表了系數(shù)的準(zhǔn)確性见转。標(biāo)準(zhǔn)誤差越大,我們對估計(jì)的信心就越差蒜哀。
  • t value:t統(tǒng)計(jì)量斩箫,即系數(shù)估算值(第2列)除以估算值的標(biāo)準(zhǔn)誤(第3列)
  • Pr(>|t|):對應(yīng)于t統(tǒng)計(jì)量的p值。p值越小撵儿,估計(jì)值越重要乘客。

可以看出youtubefacebook 變量結(jié)果顯著,而 newspaper不顯著淀歇,這個(gè)結(jié)果從上一篇文章的散點(diǎn)圖中也能預(yù)知易核。

如前所述,您可以使用R函數(shù)輕松進(jìn)行預(yù)測predict()

# New advertising budgets
newdata <- data.frame(
  youtube = 2000, facebook = 1000,
  newspaper = 1000
)
# Predict sales values
predict(model, newdata)
##   1 
## 283

解釋

在使用模型進(jìn)行預(yù)測之前浪默,您需要評估模型的統(tǒng)計(jì)顯著性牡直。通過顯示模型的統(tǒng)計(jì)摘要,可以輕松地進(jìn)行檢查纳决。

模型匯總

對于summary()的解讀有一篇不錯的文章:R語言:summary()函數(shù)解讀

顯示模型的統(tǒng)計(jì)摘要碰逸,如下所示:

> summary(model)
Call:
lm(formula = sales ~ youtube + facebook + newspaper, data = trainData)

Residuals:
     Min       1Q   Median       3Q      Max 
-10.7249  -1.0821   0.2716   1.4824   3.4149 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  3.541060   0.452634   7.823 7.26e-13 ***
youtube      0.045519   0.001664  27.357  < 2e-16 ***
facebook     0.191178   0.009718  19.673  < 2e-16 ***
newspaper   -0.001839   0.006975  -0.264    0.792    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.116 on 156 degrees of freedom
Multiple R-squared:  0.8888,    Adjusted R-squared:  0.8867 
F-statistic: 415.7 on 3 and 156 DF,  p-value: < 2.2e-16

摘要輸出顯示6個(gè)??組件,包括:

  • Call岳链。顯示用于計(jì)算回歸模型的函數(shù)調(diào)用花竞。
  • Residuals〉а疲快速查看殘差的分布约急,根據(jù)定義,這些均值為零苗分。因此厌蔽,中位數(shù)不應(yīng)遠(yuǎn)離零,并且最小值和最大值的絕對值應(yīng)大致相等摔癣。
  • Coefficients奴饮。顯示回歸系數(shù)β及其統(tǒng)計(jì)意義纬向。與結(jié)果變量顯著相關(guān)的預(yù)測變量以星號標(biāo)記。
  • 殘留標(biāo)準(zhǔn)誤差(RSE)戴卜,R平方(R2)和F統(tǒng)計(jì)量是用于檢查模型與我們的數(shù)據(jù)擬合程度的指標(biāo)逾条。

解釋多元回歸分析的第一步是在模型摘要的底部檢查F統(tǒng)計(jì)量和關(guān)聯(lián)的p值。

在我們的示例中投剥,可以看出F統(tǒng)計(jì)量的p值<2.2e-16师脂,這是非常重要的。這意味著 至少一個(gè)預(yù)測變量與結(jié)果變量顯著相關(guān)江锨。

系數(shù)意義

要查看哪些預(yù)測變量很重要吃警,您可以檢查系數(shù)表,該表顯示了回歸beta系數(shù)和相關(guān)的t統(tǒng)計(jì)p值的估計(jì)啄育。

summary(model)$coef
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  3.39188    0.44062   7.698 1.41e-12
## youtube      0.04557    0.00159  28.630 2.03e-64
## facebook     0.18694    0.00989  18.905 2.07e-42
## newspaper    0.00179    0.00677   0.264 7.92e-01

對于給定的預(yù)測變量酌心,t統(tǒng)計(jì)量評估預(yù)測變量和結(jié)果變量之間是否存在顯著關(guān)聯(lián),即挑豌,預(yù)測變量的beta系數(shù)是否顯著不同于零安券。

可以看出,youtube和facebook廣告預(yù)算的變化與銷售的變化顯著相關(guān)氓英,而報(bào)紙預(yù)算的變化與銷售卻沒有顯著相關(guān)完疫。

對于給定的預(yù)測變量,系數(shù)(b)可以解釋為預(yù)測變量增加一個(gè)單位债蓝,同時(shí)保持所有其他預(yù)測變量固定的對y的平均影響。

例如盛龄,對于固定數(shù)量的youtube和報(bào)紙廣告預(yù)算饰迹,在Facebook廣告上花費(fèi)額外的1000美元,平均可以使銷售額增加大約0.1885 * 1000 = 189個(gè)銷售單位余舶。

youtube系數(shù)表明啊鸭,在所有其他預(yù)測變量保持不變的情況下,youtube廣告預(yù)算每增加1000美元匿值,我們平均可以預(yù)期增加0.045 * 1000 = 45個(gè)銷售單位赠制。

我們發(fā)現(xiàn)報(bào)紙?jiān)诙嘣貧w模型中并不重要。這意味著挟憔,對于固定數(shù)量的youtube和報(bào)紙廣告預(yù)算钟些,報(bào)紙廣告預(yù)算的變化不會顯著影響銷售單位。

由于報(bào)紙變量不重要绊谭,因此可以 將其從模型中刪除政恍,以提高模型精度:

model <- lm(sales ~ youtube + facebook, data = trainData)
summary(model)
## 
## Call:
## lm(formula = sales ~ youtube + facebook, data = train.data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -10.481  -1.104   0.349   1.423   3.486 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.43446    0.40877     8.4  2.3e-14 ***
## youtube      0.04558    0.00159    28.7  < 2e-16 ***
## facebook     0.18788    0.00920    20.4  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.11 on 159 degrees of freedom
## Multiple R-squared:  0.89,   Adjusted R-squared:  0.889 
## F-statistic:  644 on 2 and 159 DF,  p-value: <2e-16

最后,我們的模型公式可以寫成如下:达传。 sales = 3.43+ 0.045*youtube + 0.187*facebook

模型精度

一旦確定至少一個(gè)預(yù)測變量與結(jié)果顯著相關(guān)篙耗,就應(yīng)該通過檢查模型對數(shù)據(jù)的擬合程度來繼續(xù)診斷迫筑。此過程也稱為擬合優(yōu)度

可以使用以下三個(gè)數(shù)量來評估線性回歸擬合的整體質(zhì)量,這些數(shù)量顯示在模型摘要中:

  1. 殘留標(biāo)準(zhǔn)誤差(RSE)宗弯,
  2. R平方(R2)和調(diào)整后的R2脯燃,
  3. F統(tǒng)計(jì)量,已在上一節(jié)中進(jìn)行了描述
##    rse r.squared f.statistic  p.value
## 1 2.11      0.89         644 5.64e-77
  1. 殘留標(biāo)準(zhǔn)誤差(RSE)蒙保。

與預(yù)測誤差相對應(yīng)的RSE(或模型sigma)大致代表模型觀察到的結(jié)果值和預(yù)測值之間的平均差辕棚。RSE越低,模型就越適合我們的數(shù)據(jù)追他。

將RSE除以結(jié)果變量的平均值將為您提供預(yù)測誤差率坟募,該誤差率應(yīng)盡可能小。

在我們的示例中邑狸,僅使用youtube和facebook預(yù)測變量懈糯,RSE = 2.11,這意味著觀察到的銷售值與預(yù)測值的平均偏差約為2.11個(gè)單位单雾。

這對應(yīng)于2.11 / mean(train.data $ sales)= 2.11 / 16.77 = 13%的錯誤率赚哗,這很低。

  1. R平方和調(diào)整后的R平方

R平方(R2)的范圍是0到1硅堆,代表結(jié)果變量中的變化比例屿储,可以用模型預(yù)測變量來解釋。

對于簡單的線性回歸渐逃,R2是結(jié)果與預(yù)測變量之間的皮爾森相關(guān)系數(shù)的平方够掠。在多元線性回歸中,R2表示觀察到的結(jié)果值與預(yù)測值之間的相關(guān)系數(shù)茄菊。

R2衡量模型擬合數(shù)據(jù)的程度疯潭。R2越高,模型越好面殖。然而竖哩,R2的一個(gè)問題是,即使將更多變量添加到模型中脊僚,R2總是會增加相叁,即使這些變量與結(jié)果之間的關(guān)聯(lián)性很小(James等辽幌,2014)增淹。解決方案是通過考慮預(yù)測變量的數(shù)量來調(diào)整R2。

摘要輸出中“已調(diào)整的R平方”值中的調(diào)整是對預(yù)測模型中包含的x變量數(shù)量的校正舶衬。

因此埠通,您應(yīng)該主要考慮調(diào)整后的R平方,對于更多數(shù)量的預(yù)測變量逛犹,它是受罰的R2端辱。

  • (調(diào)整后的)R2接近1表示回歸模型已解釋了結(jié)果中很大一部分的可變性梁剔。
  • 接近0的數(shù)字表示回歸模型無法解釋結(jié)果的大部分可變性。

在我們的示例中舞蔽,調(diào)整后的R2為0.88荣病,這很好。

  1. F統(tǒng)計(jì)

回想一下渗柿,F(xiàn)統(tǒng)計(jì)量給出了模型的整體重要性个盆。它評估至少一個(gè)預(yù)測變量是否具有非零系數(shù)。

在簡單的線性回歸中朵栖,此檢驗(yàn)并不是真正有趣的事情颊亮,因?yàn)樗皇菑?fù)制了系數(shù)表中可用的t檢驗(yàn)給出的信息。

一旦我們開始在多元線性回歸中使用多個(gè)預(yù)測變量陨溅,F(xiàn)統(tǒng)計(jì)量就變得更加重要终惑。

大的F統(tǒng)計(jì)量將對應(yīng)于統(tǒng)計(jì)上顯著的p值(p <0.05)。在我們的示例中门扇,F(xiàn)統(tǒng)計(jì)量644產(chǎn)生的p值為1.46e-42雹有,這是非常重要的。

做出預(yù)測

我們將使用測試數(shù)據(jù)進(jìn)行預(yù)測臼寄,以評估回歸模型的性能霸奕。

步驟如下:

  1. 根據(jù)測試數(shù)據(jù)中的新廣告預(yù)算預(yù)測銷售價(jià)值
  2. 通過計(jì)算評估模型性能:
    • 預(yù)測誤差RMSE((Root Mean Squared Error, 均方根誤差)吉拳,代表測試數(shù)據(jù)中觀察到的已知結(jié)果值與模型預(yù)測的結(jié)果值之間的平均差质帅。RMSE越低,模型越好留攒。
    • R平方(R2)临梗,代表觀察到的結(jié)果值與預(yù)測結(jié)果值之間的相關(guān)性。R2越高稼跳,模型越好。
# Make predictions
predictions <- predict(model, testData)

# Model performance
# (a) Compute the prediction error, RMSE
> RMSE(predictions, testData$sales)
[1] 1.612069
# (b) Compute R-square
> R2(predictions, testData$sales)
[1] 0.9281111

從上面的輸出中吃沪,R2為 0.9281111汤善,這意味著觀察到的結(jié)果值與預(yù)測的結(jié)果值高度相關(guān),這非常好票彪。

預(yù)測誤差RMSE為1.612069红淡,表示誤差率為1.612069 / mean(testData $ sales) = 1.612069/ 15.567 = 10.35 %,這很好降铸。

討論區(qū)

本章介紹了線性回歸的基礎(chǔ)在旱,并提供了R中用于計(jì)算簡單和多個(gè)線性回歸模型的實(shí)例。我們還描述了如何評估模型的性能以進(jìn)行預(yù)測推掸。


> 覺得有用老鐵們麻煩雙擊666~
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末桶蝎,一起剝皮案震驚了整個(gè)濱河市驻仅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌登渣,老刑警劉巖噪服,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異胜茧,居然都是意外死亡粘优,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門呻顽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雹顺,“玉大人,你說我怎么就攤上這事廊遍℃依ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵昧碉,是天一觀的道長英染。 經(jīng)常有香客問我,道長被饿,這世上最難降的妖魔是什么四康? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮狭握,結(jié)果婚禮上闪金,老公的妹妹穿的比我還像新娘。我一直安慰自己论颅,他們只是感情好哎垦,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著恃疯,像睡著了一般漏设。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上今妄,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天郑口,我揣著相機(jī)與錄音,去河邊找鬼盾鳞。 笑死犬性,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的腾仅。 我是一名探鬼主播乒裆,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼推励!你這毒婦竟也來了鹤耍?” 一聲冷哼從身側(cè)響起肉迫,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惰蜜,沒想到半個(gè)月后昂拂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抛猖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年格侯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片财著。...
    茶點(diǎn)故事閱讀 38,747評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡联四,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出撑教,到底是詐尸還是另有隱情朝墩,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布伟姐,位于F島的核電站收苏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏愤兵。R本人自食惡果不足惜鹿霸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望秆乳。 院中可真熱鬧懦鼠,春花似錦、人聲如沸屹堰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扯键。三九已至睦袖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間荣刑,已是汗流浹背漱受。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工琉朽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绍载,地道東北人尊蚁。 一個(gè)月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓榜轿,卻偏偏與公主長得像汉规,于是被迫代替她去往敵國和親包斑。 傳聞我的和親對象是個(gè)殘疾皇子摘昌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容