Boston房?jī)r(jià)數(shù)據(jù)是R語(yǔ)言中一類重要的數(shù)據(jù),常被用來(lái)做各種方法分析,即它是波士頓不同地區(qū)的506個(gè)家庭住房信息,其中包括影響房?jī)r(jià)的14個(gè)因素如城鎮(zhèn)的人均犯罪率、氮氧化合物濃度、城鎮(zhèn)黑人的比例、低教育程度的人口比例等,而且每個(gè)因素對(duì)房?jī)r(jià)的影響都是不同顯著程度的,因此,本文對(duì)Boston房?jī)r(jià)數(shù)據(jù)進(jìn)行多元線性回歸,運(yùn)用R語(yǔ)言中一些函數(shù)對(duì)數(shù)據(jù)進(jìn)行分析,篩選出對(duì)房?jī)r(jià)影響程度比較顯著的因素,從而建立正確的回歸模型。
線性回歸模型
線性回歸模型是眾多回歸模型中最常見(jiàn)、最基礎(chǔ)的一類模型,因此,在我們數(shù)據(jù)分析、模型建立過(guò)程中都起到了非常重要的作用,基于該模型的研究也是十分重要的課題。下面對(duì)該模型進(jìn)行簡(jiǎn)單的闡述。線性回歸模型從自變量個(gè)數(shù)來(lái)說(shuō),分為兩種:一種是一元線性回歸模型,另一種是多元線性回歸模型,顧名思義,一元線性回歸模型是指在回歸分析中有且僅有一個(gè)自變量和一個(gè)因變量,并且兩者是近似呈線性關(guān)系的;多元線性回歸模型是指在回歸分析中有多個(gè)(兩個(gè)及兩個(gè)以上)自變量和一個(gè)因變量,并且因變量與自變量之間的關(guān)系是近似呈線性關(guān)系的。
?1.多元線性回歸模型
?2.線性回歸模型中參數(shù)估計(jì)
一般地我們采用最小二乘估計(jì),所謂最小二乘估計(jì),就是尋找參數(shù)的估計(jì)值,使其離差平方和達(dá)到極小值,即尋找滿足:
3.顯著性檢驗(yàn)
在我們將線性回歸模型中的系數(shù)估計(jì)出來(lái)之后,我們不知道模型估計(jì)的效果如何,尤其是在實(shí)際問(wèn)題中。因此,我們要對(duì)回歸方程和回歸系數(shù)進(jìn)行顯著性檢驗(yàn)。在實(shí)際問(wèn)題中,起初我們是不知道因變量y與自變量之間是線性還是非線性關(guān)系,當(dāng)我們建立了線性回歸模型,這也就意味著我們假設(shè)它們之間的關(guān)系是線性的,但也有可能它們之間的關(guān)系是非線性的,因此我們?cè)谇蟪鼋?jīng)驗(yàn)回歸方程以后要對(duì)回歸方程進(jìn)行顯著性檢驗(yàn)。
4.Boston房?jī)r(jià)數(shù)據(jù)分析
本節(jié)選取Boston房?jī)r(jià)數(shù)據(jù),Boston房?jī)r(jià)數(shù)據(jù)是波士頓不同地區(qū)的506個(gè)家庭住房信息,其中包括決定房?jī)r(jià)的多種因素。Boston房?jī)r(jià)數(shù)據(jù)共有506個(gè)觀測(cè)樣本、14個(gè)變量,其中各個(gè)變量的解釋如下:
?結(jié)果分析:
首先,識(shí)別數(shù)據(jù)中有沒(méi)有缺失值,根據(jù)R語(yǔ)言中語(yǔ)句is.na(? ),結(jié)果可以看出,數(shù)據(jù)中是沒(méi)有缺失值的。多元線性回歸要求自變量與因變量存在線性關(guān)系,故我們利用散點(diǎn)圖和相關(guān) 系數(shù)圖來(lái)判斷自變量與因變量之間存在的關(guān)系,使之后可以更好地建立模型。其中散點(diǎn)圖和相關(guān)系數(shù)圖分別如下的圖1和圖2、3,方陣散點(diǎn)圖看著比較費(fèi)勁,而且很難看出來(lái)各個(gè)變量之間的影響程度,因此,可以觀察各變量的相關(guān)性矩陣系數(shù)圖,有圖3
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖 1 散點(diǎn)圖
圖 2 相關(guān)系數(shù)矩陣圖
其中藍(lán)色表示兩個(gè)變量呈正相關(guān),紅色表示變量呈負(fù)相關(guān)。色彩越深,表示變量相關(guān)性。
圖 3 相關(guān)系數(shù)矩陣圖
由上相關(guān)系數(shù)圖可以看出,每個(gè)變量和每個(gè)變量之間都有相關(guān)性,不過(guò)是相關(guān)系數(shù)大小的問(wèn)題,也代表各個(gè)變量之間相互影響的強(qiáng)弱關(guān)系。同時(shí)可以看出變量CHAS與其他變量的相關(guān)系數(shù)大概都在0.1左右,說(shuō)明影響不大,因此,在以下的研究以及建立模型時(shí)不考慮變量CHAS,即只研究其他12個(gè)變量對(duì)MEDV的影響程度。接下來(lái),利用R軟件具體的給出其余每個(gè)變量對(duì)MEDV的影響程度,并建立準(zhǔn)確的回歸方程。
第一步:用lm語(yǔ)句建立普通的回歸方程,并用summary顯示各個(gè)變量對(duì)MEDV的顯著性,其中,一般情況下,p值在0~0.001之間是非常非常顯著,通常用’***’號(hào)表示;在0.001~0.01之間是非常顯著,通常用‘**’號(hào)表示;在0.01~0.05之間是比較顯著,通常用‘**’號(hào)表示;在0.05~0.1之間是顯著,通常用‘.’號(hào)表示;在0.1~1之間是不顯著,直接用’ ?’表示,運(yùn)行結(jié)果如下:
結(jié)果分析:根據(jù)運(yùn)行結(jié)果可以看出,回歸模型為
?
p值為2.2e-16小于0.05,拒絕原假設(shè),認(rèn)為這CRIM等12個(gè)變量對(duì)MEDV是有影響的,擬合系數(shù)R2=0.7291,詳細(xì)來(lái)看,除了INDUS、AGE之外其他的變量都是非常顯著的,這表明其他變量對(duì)MEDV有很強(qiáng)的影響。
第二步:進(jìn)一步,運(yùn)用car包中的influencePlot( )函數(shù)可以將離群點(diǎn)、杠桿值和強(qiáng)影響點(diǎn)的信息整合到一幅圖形中,并用outlierTest( )函數(shù)檢測(cè)數(shù)據(jù)中的異常值點(diǎn)。
? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖 4離群點(diǎn)、杠桿值和強(qiáng)影響點(diǎn)
如圖4所示,縱坐標(biāo)超過(guò)+2或小于-2的樣本可被認(rèn)為是離群點(diǎn),水平軸超過(guò)0.2或0.3的樣本有高杠桿值,圓圈大小與影響成比例,圓圈很大的點(diǎn)可能是強(qiáng)影響點(diǎn),因此,用outlierTest( )函數(shù)找到具體異常值,結(jié)果如下:
?
第三步:將第二步找出的異常值點(diǎn)刪除,進(jìn)行擬合,則
?由結(jié)果可以看出,刪除異常值后,變量中還有不顯著的,說(shuō)明我們刪除異常值后對(duì)結(jié)果影響不大,但是R2相較未刪除時(shí)值增大了,即R2=0.7825,回歸方程為:
第四步:運(yùn)用vif( )函數(shù)檢查數(shù)據(jù)中的共線性,當(dāng)vif值大于4時(shí)表明存在多重共線性,運(yùn)行結(jié)果為:
上述結(jié)果顯示,NOX,RAD,TAX的vif值大于4,存在多重共線性,因此,要進(jìn)行變量篩選。
第五步:變量選擇,使用全子集回歸:
?從圖5可以看出,CEIM,ZN,INDUS,RAD影響不大,因此將這四個(gè)變量進(jìn)行刪除,然后將刪除后的數(shù)據(jù)重新進(jìn)行擬合,結(jié)果如下:
?上述結(jié)果顯示,刪除變量后,p值為2.2e-16小于0.05,拒絕原假設(shè),認(rèn)為NOX等8的變量對(duì)MEDV影響均顯著,且調(diào)整后的R2=0.8158,這表明我們的調(diào)整是有效的,即回歸方程為:
?第六步:回歸診斷
通過(guò)圖6中“殘差擬合圖”可以發(fā)現(xiàn),殘差值與擬合值存在一個(gè)曲線關(guān)系,因此回歸模型不滿足線性假設(shè);通過(guò)“正態(tài)Q-Q圖”發(fā)現(xiàn),顯然,圖上的點(diǎn)基本落在呈45度角的直線上,因此回歸模型是滿足正態(tài)性的;通過(guò)“位置尺度圖”可以看出,圖形顯示非水平趨勢(shì),那么就表明回歸模型不滿足同方差性。
第七步:接下來(lái)通過(guò)變量與房?jī)r(jià)中位數(shù)的散點(diǎn)圖和核密度估計(jì)曲線判斷變量之間的關(guān)系,然后進(jìn)行變量變換,改善模型效果。
?
?
?
圖7結(jié)果顯示,RM與MEDV可能存在二次相關(guān),LSTAT與MEDV可能存在倒數(shù)相關(guān),其它變量與MEDV的相關(guān)程度不明顯。
第八步:重新建立回歸模型,在原有模型基礎(chǔ)上添加RM2與1/LSTAT兩項(xiàng),結(jié)果如下:
?由檢驗(yàn)結(jié)果可知,p值為2.2e-16,拒絕原假設(shè),同時(shí)模型的調(diào)整R2=0.8819,擬合優(yōu)度有了明顯的提升,且各個(gè)變量對(duì)房?jī)r(jià)MEDV影響均顯著,結(jié)合模型的回歸系數(shù)與散點(diǎn)圖發(fā)現(xiàn),影響房?jī)r(jià)的主要因素是房屋房間數(shù)(RM)和人口中地位較低者(LSTAT)的比例;房間數(shù)越多,房?jī)r(jià)越高,且呈指數(shù)式增長(zhǎng);人口中地位較低者的比例越高,人均可支配收入越低,房?jī)r(jià)越低;與波士頓五個(gè)中心區(qū)域的加權(quán)距離(DIS)越遠(yuǎn)的地段的房?jī)r(jià)也越低;一氧化氮濃度(NOX)較低的地區(qū)房屋分布較多,房?jī)r(jià)也較高。師生比例(PTRATIO)偏高的地區(qū)房屋價(jià)格較低,教師資源不足地區(qū),房?jī)r(jià)也越高;房產(chǎn)稅(TAX)偏高的地區(qū)房?jī)r(jià)較低,但該變量對(duì)房?jī)r(jià)的影響較小。
第九步:最終的回歸模型為:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-803892.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-803892.html
?代碼:
install.packages("corrplot")
library(car)
library(corrplot)
boston<-read.csv("F:/boston.data.CSV")
attach(boston)
#識(shí)別缺失值
is.na(boston)
#方陣散點(diǎn)圖
scatterplotMatrix(boston,smoother=F)
#相關(guān)系數(shù)矩陣圖
mycor<-cor(boston)
corrplot(mycor, method = "shade", shade.col = NA, tl.col ="black", tl.srt = 45, order = "AOE")
datacor<- cor(boston)
corrplot (datacor, method ="number")
#擬合
fit<-lm(MEDV~CRIM+ZN+INDUS+NOX+RM+AGE+DIS+RAD+TAX+PTRATIO+BLACK+LSTAT,data=boston)
summary(fit)
#刪除異常值
influencePlot(fit, id. method="identify", main="Influence Plot", sub="Circle size is proportional to Cook's distance")
outlierTest(fit)
#刪除異常值后重新擬合
Boston<- boston[-c(366,369,373,381,419,372,370,371,368,413,365),]
fit1<-lm(MEDV~CRIM+ZN+INDUS+NOX+RM+AGE+DIS+RAD+TAX+PTRATIO+BLACK+LSTAT,data=Boston)
summary(fit1)
#多重共線性
vif(fit)
#篩選變量
library(leaps)
leaps<-regsubsets(MEDV~CRIM+ZN+INDUS+NOX+RM+AGE+DIS+RAD+TAX+PTRATIO+BLACK+LSTAT,data=Boston,nbest=8)
plot(leaps, scale="adjr2")
#刪除變量
fit2<-lm(MEDV~NOX+RM+AGE+DIS+TAX+PTRATIO+B+LSTAT, data=Boston)
summary(fit2)
#回歸診斷
par(mfrow=c(2,2))
plot(fit2)
#變量與房?jī)r(jià)中位數(shù)的散點(diǎn)圖和核密度估計(jì)曲線判斷變量之間的關(guān)系
par(mfrow=c(1,1))
plot(NOX,MEDV)
lines(ksmooth(NOX,MEDV, bandwidth =1,kernel = "normal"), col="red")
plot(RM,MEDV)
lines(ksmooth(RM,MEDV, bandwidth =1,kernel = "normal"), col="red")
plot(AGE,MEDV)
lines(ksmooth(AGE,MEDV, bandwidth =1,kernel = "normal"), col="red")
plot(DIS,MEDV)
lines(ksmooth(DIS,MEDV, bandwidth =1,kernel = "normal"), col="red")
plot(TAX,MEDV)
lines(ksmooth(TAX,MEDV, bandwidth =1,kernel = "normal"), col="red")
plot(PTRATIO,MEDV)
lines(ksmooth(PTRATIO,MEDV, bandwidth =1,kernel = "normal"), col="red")
plot(BLACK,MEDV)
lines(ksmooth(BLACK,MEDV,bandwidth =1,kernel = "normal"),col="red")
plot(LSTAT,MEDV)
lines(ksmooth(LSTAT,MEDV, bandwidth =1,kernel = "normal"), col="red")
#重新建立準(zhǔn)確的模型
fit3<-lm(MEDV~NOX+RM+AGE+DIS+TAX+PTRATIO+BLACK+LSTAT+I(RM^2)+I(1/LSTAT),data=Boston)
summary(fit3)
到了這里,關(guān)于基于多元線性回歸的Boston房?jī)r(jià)數(shù)據(jù)分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!