回歸分析 | R語言 -- 簡單線性回歸

R中的簡單線性回歸

簡單線性回歸被用于預(yù)測一個量化結(jié)果y基于一個單一預(yù)測變量的x数冬。目標(biāo)是建立將y定義為x變量的函數(shù)的數(shù)學(xué)模型(或公式)囊咏。

建立了具有統(tǒng)計意義的模型淤翔,就可以根據(jù)新的x值將其用于預(yù)測未來結(jié)果丰包。

考慮到這一點(diǎn)饶唤,我們想評估三種媒體(youtube肄程,facebook和newspaper)的廣告預(yù)算對未來銷售的影響睦擂。這個問題的例子可以用線性回歸建模得湘。

公式和基礎(chǔ)

線性回歸的數(shù)學(xué)公式可以寫成y = b0 + b1*x + e,其中:

  • b0b1稱為回歸beta系數(shù)參數(shù)
    • b0是回歸線的截距顿仇;是時的預(yù)測值x = 0淘正。
    • b1是回歸線的斜率
  • e誤差項(xiàng)(也稱為殘差)臼闻,y的一部分可以由回歸模型解釋

下圖說明了線性回歸模型鸿吆,其中:

  • 最佳擬合回歸線為藍(lán)色
  • 截距(b0)和斜率(b1)以綠色顯示
  • 誤差項(xiàng)(e)用垂直紅線表示
線性回歸

從上面的散點(diǎn)圖可以看出,并不是所有的數(shù)據(jù)點(diǎn)都精確地落在擬合的回歸線上述呐。有些點(diǎn)在藍(lán)色曲線的上方惩淳,而有些點(diǎn)在藍(lán)色曲線的下方∨野幔總體而言思犁,殘余誤差(e)的平均值約為零。

殘留誤差的平方和稱為殘差平方和或Residual Sum of Squares RSS进肯。

擬合回歸線周圍的點(diǎn)的平均變化稱為殘差標(biāo)準(zhǔn)誤差Residual Standard Error激蹲, RSE)。這是用于評估擬合回歸模型整體質(zhì)量的指標(biāo)之一江掩。RSE越低越好学辱。

由于平均誤差項(xiàng)為零乘瓤,因此可以近似估算出結(jié)果變量y,如下所示:

y ~ b0 + b1*x

在數(shù)學(xué)上策泣,確定beta系數(shù)(b0和b1)衙傀,以使RSS盡可能小。確定β系數(shù)的這種方法在技術(shù)上稱為最小二乘回歸或普通最小二乘(OLS)回歸着降。

一旦計算出β系數(shù)差油,就進(jìn)行t檢驗(yàn)以檢查這些系數(shù)是否顯著不同于零。Beta系數(shù)非零表示在預(yù)測變量(x)與結(jié)果變量(y)之間存在顯著關(guān)系任洞。

加載所需的R包

加載所需的軟件包:

  • tidyverse 用于數(shù)據(jù)處理和可視化
  • ggpubr:輕松創(chuàng)建發(fā)表級圖片
library(tidyverse)
library(ggpubr)
theme_set(theme_pubr())

示例數(shù)據(jù)和問題

我們將使用marketing數(shù)據(jù)集[datarium包]。它包含三種廣告媒體(youtube发侵,facebook和報紙)對銷售的影響交掏。數(shù)據(jù)是連同銷售一起的數(shù)千美元的廣告預(yù)算。廣告實(shí)驗(yàn)已用不同的預(yù)算重復(fù)了200次刃鳄,并記錄了觀察到的銷售額盅弛。

首先datarium使用來安裝軟件包devtools::install_github("kassmbara/datarium"),然后marketing按照以下步驟加載和檢查數(shù)據(jù):

這里可以直接運(yùn)行 install.packages("datarium") 安裝

檢查數(shù)據(jù):

# Load the package
data("marketing", package = "datarium")
head(marketing, 4)
##   youtube facebook newspaper sales
## 1   276.1     45.4      83.0  26.5
## 2    53.4     47.2      54.1  12.5
## 3    20.6     55.1      83.2  11.2
## 4   181.8     49.6      70.2  22.2

我們希望根據(jù)在YouTube上花費(fèi)的廣告預(yù)算來預(yù)測未來的銷售量叔锐。

可視化

  • 創(chuàng)建散點(diǎn)圖挪鹏,分別顯示在三種媒體的廣告投資與銷售量的關(guān)系
  • 添加平滑線
library("gridExtra")
p1 <- ggplot(marketing, aes(x = youtube, y = sales)) +
         geom_point() +
         stat_smooth()
p2 <- ggplot(marketing, aes(x = facebook, y = sales)) +
         geom_point() +
         stat_smooth()
p3 <- ggplot(marketing, aes(x = newspaper, y = sales)) +
         geom_point() +
         stat_smooth()
grid.arrange(p1, p2, p3, ncol= 3, nrow = 1)

上圖顯示了youtubefacebooksales之間成明顯的線性關(guān)系,而newspapersales之間不成的線性關(guān)系而愉烙。這是一件好事讨盒,因?yàn)榫€性回歸的一個重要假設(shè)是結(jié)果與預(yù)測變量之間的關(guān)系是線性和可加的。

也可以使用R函數(shù)計算兩個變量之間的相關(guān)系數(shù)cor()

> cor(marketing$sales, marketing$youtube)
[1] 0.7822244
> cor(marketing$sales, marketing$facebook)
[1] 0.5762226
> cor(marketing$sales, marketing$newspaper)
[1] 0.228299

相關(guān)系數(shù)測量兩個變量x和y之間的關(guān)聯(lián)水平步责。它的值介于-1(完全負(fù)相關(guān):x增加時返顺,y減小)和+1(完全正相關(guān):x增加時蔓肯,y增大)之間遂鹊。

接近0的值表示變量之間的關(guān)系較弱。較低的相關(guān)性(-0.2 <x <0.2)可能表明結(jié)果變量(y)的大部分變化都無法由預(yù)測變量(x)解釋蔗包。在這種情況下秉扑,我們可能應(yīng)該尋找更好的預(yù)測變量。

在我們的示例中调限,相關(guān)系數(shù)足夠大舟陆,因此我們可以繼續(xù)構(gòu)建y作為x的函數(shù)的線性模型。

計算方式

簡單的線性回歸試圖根據(jù)youtube廣告預(yù)算找到最佳的線來預(yù)測銷售量旧噪。

線性模型方程可寫為: sales = b0 + b1 * youtube

R函數(shù)lm()可用于確定線性模型的beta系數(shù):

model <- lm(sales ~ youtube, data = marketing)
model
## 
## Call:
## lm(formula = sales ~ youtube, data = marketing)
## 
## Coefficients:
## (Intercept)      youtube  
##      8.4391       0.0475

結(jié)果顯示了youtube變量的截距和beta系數(shù)吨娜。

解釋

從上面的輸出中:

  • 估計的回歸線方程可寫為: sales = 8.44 + 0.048*youtube

  • 截距(b0)為8.44√灾樱可以將其解釋為YouTube廣告預(yù)算為零的預(yù)測銷售單位宦赠∨阏保回想一下,我們以千美元為單位運(yùn)營勾扭。這意味著毡琉,對于等于零的youtube廣告預(yù)算,我們可以預(yù)期實(shí)現(xiàn)8.44 * 1000 = 8440美元的銷售額妙色。

  • 變量youtube(b1)的回歸beta系數(shù)(也稱為斜率)為0.048桅滋。這意味著,對于等于1000美元的youtube廣告預(yù)算身辨,我們可以預(yù)期銷售額會增加48個單位(0.048 * 1000)丐谋。也就是說,sales = 8.44 + 0.048*1000 = 56.44 units煌珊。因?yàn)槲覀円郧涝獮閱挝贿M(jìn)行操作号俐,所以這表示銷售額為56440美元。

回歸線

要將回歸線添加到散點(diǎn)圖上定庵,可以使用函數(shù)stat_smooth()[ggplot2]吏饿。默認(rèn)情況下,擬合線周圍帶有置信區(qū)間蔬浙。置信帶反映了該線的不確定性猪落。如果您不想顯示它,請se = FALSE在函數(shù)中指定選項(xiàng)stat_smooth()畴博。

ggplot(marketing, aes(youtube, sales)) +
  geom_point() +
  stat_smooth(method = lm)
image

模型評估

在上一節(jié)中笨忌,我們建立了一個線性銷售模型,作為youtube廣告預(yù)算的函數(shù):sales = 8.44 + 0.048*youtube绎晃。

使用此公式預(yù)測將來的銷售之前蜜唾,應(yīng)確保該模型具有統(tǒng)計意義,即:

  • 預(yù)測變量和結(jié)果變量之間存在統(tǒng)計上的顯著關(guān)系
  • 我們建立的模型非常適合我們手中的數(shù)據(jù)庶艾。

在本節(jié)中袁余,我們將描述如何檢查線性回歸模型的質(zhì)量。

模型匯總

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

我們首先使用R函數(shù)顯示模型的統(tǒng)計摘要summary()

summary(model)
## 
## Call:
## lm(formula = sales ~ youtube, data = marketing)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -10.06  -2.35  -0.23   2.48   8.65 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  8.43911    0.54941    15.4   <2e-16 ***
## youtube      0.04754    0.00269    17.7   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.91 on 198 degrees of freedom
## Multiple R-squared:  0.612,  Adjusted R-squared:  0.61 
## F-statistic:  312 on 1 and 198 DF,  p-value: <2e-16

摘要輸出顯示6個??組件咱揍,包括:

  • call颖榜。顯示用于計算回歸模型的函數(shù)調(diào)用。
  • Residuals煤裙⊙谕辏快速查看殘差的分布,根據(jù)定義硼砰,這些均值為零且蓬。因此,中位數(shù)不應(yīng)遠(yuǎn)離零题翰,并且最小值和最大值的絕對值應(yīng)大致相等恶阴。
  • Coefficients诈胜。顯示回歸系數(shù)β及其統(tǒng)計意義。與結(jié)果變量顯著相關(guān)的預(yù)測變量以星號標(biāo)記冯事。
  • 殘留標(biāo)準(zhǔn)誤差(Residual standard error, RSE)焦匈,R平方( R-squared,R2)和F統(tǒng)計量昵仅,F(xiàn)-statistic是用于檢查模型與我們的數(shù)據(jù)擬合程度的指標(biāo)缓熟。

系數(shù)意義

模型統(tǒng)計摘要中的系數(shù)表顯示:

  • 貝塔系數(shù)的估計
  • 標(biāo)準(zhǔn)誤差(SE),其定義的β系數(shù)的精度摔笤。對于給定的beta系數(shù)够滑,SE反映了在重復(fù)采樣下系數(shù)如何變化。它可用于計算置信區(qū)間和t統(tǒng)計量籍茧。
  • t-統(tǒng)計量和相關(guān)的p值版述,其定義所述β-系數(shù)的統(tǒng)計顯著性。
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)   8.4391    0.54941    15.4 1.41e-35
## youtube       0.0475    0.00269    17.7 1.47e-42

t統(tǒng)計量和p值

對于給定的預(yù)測變量寞冯,t統(tǒng)計量(及其關(guān)聯(lián)的p值)測試給定的預(yù)測變量和結(jié)果變量之間是否存在統(tǒng)計上顯著的關(guān)系,即預(yù)測變量的beta系數(shù)是否顯著不同從零開始晚伙。

統(tǒng)計假設(shè)如下:

  • 零假設(shè)(H0):系數(shù)等于零(即x和y之間沒有關(guān)系)
  • 替代假設(shè)(Ha):系數(shù)不等于零(即x和y之間存在某種關(guān)系)

在數(shù)學(xué)上吮龄,對于給定的beta系數(shù)(b),t檢驗(yàn)計算為t = (b - 0)/SE(b)咆疗,其中SE(b)是系數(shù)b的標(biāo)準(zhǔn)誤差漓帚。t統(tǒng)計量測量b遠(yuǎn)離0的標(biāo)準(zhǔn)偏差的數(shù)量。因此午磁,較大的t統(tǒng)計量將產(chǎn)生較小的p值尝抖。

t統(tǒng)計量越高(p值越低),則預(yù)測變量越重要迅皇。右側(cè)的符號在視覺上指定了重要性級別昧辽。表格下方的行顯示了這些符號的定義。一星表示0.01 <p <0.05登颓。變量的p值旁邊的星星越多搅荞,變量的意義就越大。

具有統(tǒng)計學(xué)意義的系數(shù)表明框咙,預(yù)測變量(x)與結(jié)果變量(y)之間存在關(guān)聯(lián)咕痛。

在我們的示例中,截距的p值和預(yù)測變量都非常重要喇嘱,因此我們可以拒絕原假設(shè)并接受替代假設(shè)茉贡,這意味著預(yù)測變量與結(jié)果變量之間存在顯著關(guān)聯(lián)。

對于是否在模型中包含預(yù)測變量者铜,t統(tǒng)計量是非常有用的指南腔丧。高t統(tǒng)計量(p值接近0的低值)表示應(yīng)將預(yù)測變量保留在模型中放椰,而非常低的t統(tǒng)計量則表示可以刪除預(yù)測變量(P. Bruce and Bruce 2017)。

標(biāo)準(zhǔn)誤差和置信區(qū)間

標(biāo)準(zhǔn)誤差測量β系數(shù)的變異性/準(zhǔn)確性悔据。它可用于計算系數(shù)的置信區(qū)間庄敛。

例如,系數(shù)b1的95%置信區(qū)間定義為b1 +/- 2*SE(b1)科汗,其中:

  • b1的下限= b1 - 2*SE(b1) = 0.047 - 2*0.00269 = 0.042
  • b1的上限= b1 + 2*SE(b1) = 0.047 + 2*0.00269 = 0.052

即藻烤,間隔[0.042,0.052]包含b1的真實(shí)值的可能性大約為95%头滔。同樣怖亭,可以將b0的95%置信區(qū)間計算為b0 +/- 2*SE(b0)

要獲取這些信息坤检,只需鍵入:

confint(model)
##              2.5 % 97.5 %
## (Intercept) 7.3557 9.5226
## youtube     0.0422 0.0528

模型精度

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

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

  1. 殘留標(biāo)準(zhǔn)誤差(RSE)倾芝。
  2. R平方(R2)
  3. F統(tǒng)計
##    rse r.squared f.statistic  p.value
## 1 3.91     0.612         312 1.47e-42
  1. 殘留標(biāo)準(zhǔn)誤差(RSE)。

RSE(也稱為模型sigma)是殘差箭跳,表示擬合回歸線周圍觀測點(diǎn)的平均變化晨另。這是殘留誤差的標(biāo)準(zhǔn)偏差。

RSE提供了模型無法解釋的數(shù)據(jù)模式的絕對度量谱姓。比較兩個模型時借尿,具有較小RSE的模型很好地表明了該模型最適合數(shù)據(jù)。

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

在我們的示例中,RSE = 3.91茄靠,這意味著觀察到的銷售價值平均偏離真實(shí)回歸線約3.9個單位茂契。

3.9單位的RSE是否可接受的預(yù)測誤差是主觀的,并且取決于問題的背景嘹黔。但是账嚎,我們可以計算百分比誤差。在我們的數(shù)據(jù)集中儡蔓,銷售平均值為16.827郭蕉,因此百分比誤差為3.9 / 16.827 = 23%。

sigma(model)*100/mean(marketing$sales)
## [1] 23.2
  1. R平方和調(diào)整后的R平方

R平方(R2)的范圍是0到1喂江,并且代表模型中可以解釋的數(shù)據(jù)中信息的比例(即變化)召锈。調(diào)整后的R平方可調(diào)整自由度。

R2衡量模型擬合數(shù)據(jù)的程度获询。對于簡單的線性回歸涨岁,R2是皮爾森相關(guān)系數(shù)的平方拐袜。

R2的高值是一個很好的指示。但是梢薪,當(dāng)在模型中添加更多的預(yù)測變量時(例如在多元線性回歸模型中)蹬铺,R2的值趨于增加,因此您應(yīng)主要考慮調(diào)整后的R平方秉撇,對于更多數(shù)量的預(yù)測變量而言甜攀,這是懲罰性的R2。

  • (調(diào)整后的)R2接近1表示回歸模型已解釋了結(jié)果中很大一部分的可變性琐馆。
  • 接近0的數(shù)字表示回歸模型無法解釋結(jié)果的大部分可變性规阀。
  1. F統(tǒng)計

F統(tǒng)計量提供了模型的整體重要性。它評估至少一個預(yù)測變量是否具有非零系數(shù)瘦麸。

在簡單的線性回歸中谁撼,此檢驗(yàn)并不是真正有趣的事情,因?yàn)樗皇菑?fù)制了系數(shù)表中可用的t檢驗(yàn)給出的信息滋饲。實(shí)際上厉碟,F(xiàn)檢驗(yàn)與t檢驗(yàn)的平方相同:312.1 =(17.67)^ 2。在任何具有1個自由度的模型中都是如此屠缭。

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

大的F統(tǒng)計量將對應(yīng)于統(tǒng)計上顯著的p值(p <0.05)勿她。在我們的示例中,F(xiàn)統(tǒng)計量等于312.14阵翎,產(chǎn)生的p值為1.46e-42逢并,這是非常重要的。

概要

在計算回歸模型之后郭卫,第一步是檢查至少一個預(yù)測變量是否與結(jié)果變量顯著相關(guān)砍聊。

如果一個或多個預(yù)測變量很重要,則第二步是通過檢查殘差標(biāo)準(zhǔn)誤差(RSE)贰军,R2值和F統(tǒng)計量來評估模型對數(shù)據(jù)的擬合程度玻蝌。這些指標(biāo)提供了模型的整體質(zhì)量。

  • RSE:越接近零越好
  • R平方:越高越好
  • F統(tǒng)計:越高越好

下節(jié)內(nèi)容:R中的多元線性回歸


> 覺得有用老鐵們麻煩雙擊666~
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末词疼,一起剝皮案震驚了整個濱河市俯树,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贰盗,老刑警劉巖许饿,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異舵盈,居然都是意外死亡陋率,警方通過查閱死者的電腦和手機(jī)球化,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓦糟,“玉大人筒愚,你說我怎么就攤上這事∑姓悖” “怎么了巢掺?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長芍耘。 經(jīng)常有香客問我址遇,道長,這世上最難降的妖魔是什么斋竞? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任倔约,我火速辦了婚禮,結(jié)果婚禮上坝初,老公的妹妹穿的比我還像新娘浸剩。我一直安慰自己,他們只是感情好鳄袍,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布绢要。 她就那樣靜靜地躺著,像睡著了一般拗小。 火紅的嫁衣襯著肌膚如雪重罪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天哀九,我揣著相機(jī)與錄音剿配,去河邊找鬼。 笑死阅束,一個胖子當(dāng)著我的面吹牛呼胚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播息裸,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼蝇更,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了呼盆?” 一聲冷哼從身側(cè)響起年扩,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宿亡,沒想到半個月后常遂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年克胳,在試婚紗的時候發(fā)現(xiàn)自己被綠了平绩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡漠另,死狀恐怖捏雌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情笆搓,我是刑警寧澤性湿,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站满败,受9級特大地震影響肤频,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜算墨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一宵荒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧净嘀,春花似錦报咳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至膜眠,卻和暖如春岩臣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宵膨。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工婿脸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人柄驻。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像焙压,于是被迫代替她去往敵國和親鸿脓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351