溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

R語言怎么實現(xiàn)一元線性回歸

發(fā)布時間:2022-01-05 15:58:30 來源:億速云 閱讀:325 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“R語言怎么實現(xiàn)一元線性回歸”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“R語言怎么實現(xiàn)一元線性回歸”吧!

⑴簡單線性回歸

首先可以考慮最簡單的情況,也即只有一個自變量和一個因變量。我們使用  R  自帶的數(shù)據(jù)集  women  為例進(jìn)行分析,  women  數(shù)據(jù)集中包含了  15  個年齡  30~39  歲的女性身高和體重信息,如下所示:

R語言怎么實現(xiàn)一元線性回歸

現(xiàn)實生活中身高是更容易觀測的一個量,現(xiàn)在我們基于這些數(shù)據(jù)建模,通過身高來預(yù)測體重,如下所示:

fit=lm(weight~height, data=women)summary(fit)

R語言怎么實現(xiàn)一元線性回歸

在上面summary的結(jié)果中,Residuals為響應(yīng)變量的殘差情況;Coefficients為系數(shù)也即模型參數(shù)及其檢驗結(jié)果,其中Intercept為截距;最后一部分為復(fù)相關(guān)系數(shù)的平方也即R2的值及其檢驗結(jié)果。

接下來我們可以分別列出因變量觀察值、擬合值、殘差:

R語言怎么實現(xiàn)一元線性回歸

對于回歸模型我們可以進(jìn)行作圖展示:
library(ggplot2)ggplot(women, mapping=aes(x=height, y=weight)) +  geom_point(size=2) +  geom_smooth(method=lm, se=TRUE, fullrange=TRUE, level=0.95) +  theme(axis.title=element_text(size=15, color="black", face="bold", vjust=0.5, hjust=0.5))
作圖結(jié)果如下所示:

R語言怎么實現(xiàn)一元線性回歸

回歸模型構(gòu)建后,必須要做模型診斷,來對其中的基礎(chǔ)假設(shè)(正態(tài)性、獨立性、線性、同方差性)進(jìn)行檢驗,從而增強對其預(yù)測未知數(shù)據(jù)的信心?;貧w診斷最簡單的一個方法就是將模型各種情況進(jìn)行可視化,如下所示:

par(mfrow=c(2,2))plot(fit)
如下圖所示:第一幅圖是殘差隨擬合值的變化情況,可以檢驗線性假設(shè),理論上來說如果線性模型十分吻合,殘差應(yīng)該是均勻分布的(也即殘差與擬合值是無關(guān)的,紅線近似水平),而圖中的情況暗示很可能存在更高次項的相關(guān)。第二幅圖是檢驗殘差正態(tài)性假設(shè)的  Q-Q  圖,根據(jù)正態(tài)性假設(shè),當(dāng)預(yù)測變量值固定時,因變量圍繞擬合值(預(yù)測值)呈正態(tài)分布,那么殘差應(yīng)該服從均值為  0  的正態(tài)分布(即圖中的點盡可能落在虛線上)。第三幅圖是標(biāo)準(zhǔn)化殘差絕對值的平方根隨擬合值的變化情況,用來檢驗同方差性假設(shè),如果滿足假設(shè),也即不同自變量水平下因變量方差是一樣的,那么圖中數(shù)據(jù)點應(yīng)該是均勻分布的(紅線近似水平)。第四幅圖用來篩選離群點(包括因變量和自變量),一個點代表一個樣品(對象),縱軸為標(biāo)準(zhǔn)化的殘差,絕對值越大說明其因變量值與擬合值差別越大,橫軸為杠桿值,杠桿值越大說明在自變量中是一個離群點。

R語言怎么實現(xiàn)一元線性回歸

⑵多項式回歸

雖然各種檢驗結(jié)果均是顯著的,但是上面的結(jié)果并不是很完美,因為我們從數(shù)據(jù)點的分布很明顯看出weight關(guān)于height不完全是線性關(guān)系,這時候我們可以添加一個二次項來進(jìn)行多項式回歸

fit2=lm(weight~height+I(height^2), data=women)summary(fit2)

R語言怎么實現(xiàn)一元線性回歸

這時的回歸方程為weight=0.083*height2-7.35*height+261.88。同樣我們可以作圖展示:

ggplot(women, aes(x=height, y=weight)) +  geom_point(size=2) +  geom_smooth(method=lm, se=TRUE, formula=y~x+I(x^2)) +  theme(axis.title=element_text(size=15, color="black", face="bold", vjust=0.5, hjust=0.5))

R語言怎么實現(xiàn)一元線性回歸

可以看出,在  ggplot2  里面通過  geom_smooth()  函數(shù)可以很方便的添加數(shù)據(jù)的回歸線。在構(gòu)造的多項式里,  x  與  x^2  并不一定是獨立的,這有可能會產(chǎn)生附加問題,另一種方法是使用  poly()  函數(shù)產(chǎn)生正交多項式,如下所示:
library(ggplot2)N=300x=1:N+rnorm(N, 10, 60)y=1:N+rnorm(N, 10, 60)colour=sample(c('red','blue'), N, replace=TRUE)df=data.frame(x=x, y=y, colour=colour)ggplot(df, aes(x=x,y=y, colour=colour)) +   geom_smooth( method='lm', formula=y~poly(x,3), level=0.95) +   geom_point(alpha=0.9)ggplot(df, aes(x=x,y=y, colour=colour)) +   geom_smooth( method='lm', formula=y~x+I(x^2)+I(x^3), level=0.95) +   geom_point(alpha=0.9)

一般情況下,上面兩種作圖方法是等價的,最終作圖結(jié)果如下所示:

R語言怎么實現(xiàn)一元線性回歸

到此,相信大家對“R語言怎么實現(xiàn)一元線性回歸”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI