多元線性回歸
多元線性回歸 是 簡單線性回歸 的擴(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ì)值越重要乘客。
可以看出
youtube
和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ù)量顯示在模型摘要中:
- 殘留標(biāo)準(zhǔn)誤差(RSE)宗弯,
- R平方(R2)和調(diào)整后的R2脯燃,
- F統(tǒng)計(jì)量,已在上一節(jié)中進(jìn)行了描述
## rse r.squared f.statistic p.value
## 1 2.11 0.89 644 5.64e-77
- 殘留標(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%的錯誤率赚哗,這很低。
- 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荣病,這很好。
- 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ù)測臼寄,以評估回歸模型的性能霸奕。
步驟如下:
- 根據(jù)測試數(shù)據(jù)中的新廣告預(yù)算預(yù)測銷售價(jià)值
- 通過計(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~