日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

波士顿房价数据分析(R语言)

發(fā)布時(shí)間:2023/12/20 编程问答 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 波士顿房价数据分析(R语言) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

波士頓房?jī)r(jià)數(shù)據(jù)分析(R語(yǔ)言)

1 .數(shù)據(jù)變量解釋

變量解釋
CRIM城鎮(zhèn)人均犯罪率。
ZN住宅用地超過(guò) 25000 平方英尺的比例。
INDUS城鎮(zhèn)非零售商用土地的比例。
CHAS查理斯河空變量(如果邊界是河流,則為1;否則為0)。
NOX一氧化氮濃度。
RM住宅平均房間數(shù)。
AGE1940 年之前建成的自用房屋比例。
DIS到波士頓五個(gè)中心區(qū)域的加權(quán)距離。
RAD輻射性公路的接近指數(shù)。
TAX每 10000 美元的全值房產(chǎn)稅率。
PTRATIO城鎮(zhèn)師生比例。
B1000(Bk-0.63)^ 2,其中 Bk 指代城鎮(zhèn)中黑人的比例。
LSTAT人口中地位較低者的比例。
MEDV房?jī)r(jià)中位數(shù),以千美元計(jì)。

2.非參數(shù)檢驗(yàn)

boston <- read.csv("D:/Rlanguage/FCwork/boston_data.txt", sep="") attach(boston) library(ggplot2) ggplot(data=boston,aes(x=MEDV,fill=as.factor(CHAS)))+geom_density(alpha=.3)


CHAS是一個(gè)二值變量(即位于查爾斯河邊記為1,否則記為0)。通過(guò)圖1發(fā) 現(xiàn),CHAS=1時(shí)的房?jī)r(jià)分布與CHAS=2時(shí)房?jī)r(jià)分布基本相同。為了探究這一變量 對(duì)房?jī)r(jià)是否有顯著影響,接下來(lái)將通過(guò)一系列檢驗(yàn)方法驗(yàn)證。 將樣本數(shù)據(jù)分為兩個(gè)部分,CHAS=1為一組,CHAS=0為另一組

CHAS1<-subset(boston,CHAS==1) CHAS2<-subset(boston,CHAS==0)

2.1單樣本檢驗(yàn)

首先,通過(guò)Shapiro Wilk檢驗(yàn)房?jī)r(jià)中位數(shù)是否服從正態(tài)分布。假設(shè):
H0:房?jī)r(jià)中位數(shù)服從正態(tài)分布
H1:房?jī)r(jià)中位數(shù)不服從正態(tài)分布

shapiro.test(scale(MEDV))


由于P<0.001,拒絕原假設(shè),即房?jī)r(jià)中位數(shù)數(shù)據(jù)不服從正態(tài)分布。

2.2兩樣本檢驗(yàn)

由于房?jī)r(jià)中位數(shù)不服從正態(tài)分布,因此采用Wilcoxn秩和檢驗(yàn)方法檢驗(yàn)在河邊 的房?jī)r(jià)與不在河邊的房?jī)r(jià)是否有顯著差異。假設(shè):
H0:在河邊與不在河邊的房?jī)r(jià)相同
H1:在河邊與不在河邊的房?jī)r(jià)不相同

wilcox.test(CHAS1$MEDV,CHAS2$MEDV,alternative = "less")


由于P>0.001,接受原假設(shè),在河邊的房?jī)r(jià)與不在河邊的房?jī)r(jià)不具有顯著差 異,因此在建立回歸模型時(shí)考慮刪除CHAS變量。

3.回歸模型

通過(guò)多元回歸方法找到影響B(tài)oston地區(qū)房?jī)r(jià)的主要因素

3.1建立回歸方程

fit<-lm(MEDV~CRIM+ZN+INDUS+NOX+RM+AGE+DIS+RAD+TAX+PTRATIO+B+LSTAT, data=boston) summary(fit)

3.2刪除異常值

library(car) influencePlot(fit, id.method="identify", main="Influence Plot", sub="Circle size is proportional to Cook's distance") #car包中的influencePlot()函數(shù)可以將離群點(diǎn)、杠桿值和強(qiáng)影響點(diǎn)的信息整 合到一幅圖形中



如上圖所示,縱坐標(biāo)超過(guò)+2或小于–2的樣本可被認(rèn)為是離群點(diǎn),水平軸超過(guò) 0.2或0.3的樣本有高杠桿值。圓圈大小與影響成比例,圓圈很大的點(diǎn)可能強(qiáng)影響 點(diǎn)。下面用outlierTest()函數(shù)找到到具體離群值。

outlierTest(fit)#求得最大標(biāo)準(zhǔn)化殘差絕對(duì)值Bonferroni調(diào)整后的p值


連續(xù)使用outlierTest()函數(shù)檢驗(yàn)得到所有異常點(diǎn)后進(jìn)行刪除。

boston<-boston[-c(366,369,373,381,419,372,370,371,368,413,365),]

3.3檢查共線性

vif(fit) #VIF值大于4表明存在多重共線性


如上圖結(jié)果所示,模型存在多重共線性,因此需要進(jìn)行變量篩選。

3.4變量選擇

使用全子集回歸:

library(leaps) leaps<-regsubsets(MEDV~CRIM+ZN+INDUS+NOX+RM+AGE+DIS+RAD+TAX+PTRATIO+B+LSTAT,data=boston, nbest=8) plot(leaps, scale="adjr2")


上圖結(jié)果表明刪除變量CRIM,ZN,INDUS,RAD后的R方可以達(dá)到81%。

fit1<-lm(MEDV~NOX+RM+AGE+DIS+TAX+PTRATIO+B+LSTAT, data = boston) summary(fit1)


對(duì)刪除變量后的模型進(jìn)行檢驗(yàn),結(jié)果顯示剩余的變量均顯著,且調(diào)整后的R方上升至0.8128。

3.5回歸診斷

par(mfrow=c(2,2)) plot(fit1)


通過(guò)“殘差擬合圖”發(fā)現(xiàn),殘差值與擬合值存在一個(gè)曲線關(guān)系, 因此回歸模型不滿足線性假設(shè)。通過(guò)“正態(tài)Q-Q圖”發(fā)現(xiàn),圖上的點(diǎn)應(yīng)該落在呈45 度角的直線上,因此回歸模型滿足正態(tài)性。通過(guò)“位置尺度圖”發(fā)現(xiàn),圖形顯示非 水平趨勢(shì),因此回歸模型不滿足同方差性。接下來(lái)通過(guò)變量與房?jī)r(jià)中位數(shù)的散點(diǎn)圖和核密度估計(jì)曲線判斷變量之間的關(guān) 系,然后進(jìn)行變量變換,改善模型效果

par(mfrow=c(3,3)) 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(B,MEDV) lines(ksmooth(B,MEDV, bandwidth =1,kernel = "normal"), col="red") plot(LSTAT,MEDV) lines(ksmooth(LSTAT,MEDV, bandwidth =1,kernel = "normal"), col="red")


上圖結(jié)果顯示,RM與MEDV可能存在二次項(xiàng)相關(guān),LSTAT與MEDV可能存在倒 數(shù)相關(guān),其他的變量與MEDV的相關(guān)程度不明顯。重新建立回歸模型,在原有模型 基礎(chǔ)上添加RM^2與1/LSTAT兩項(xiàng)

fit2<-lm(MEDV~NOX+RM+AGE+DIS+TAX+PTRATIO+B+LSTAT+ LSTAT+I(RM^2)+I(1/LSTAT), data = boston) summary(fit2)


由上圖檢驗(yàn)結(jié)果可知,模型的調(diào)整R方上升至0.8738,擬合優(yōu)度有了明顯的提升。結(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ū)房屋分布較多,房 價(jià)也較高。師生比例(PTRATIO)偏高的地區(qū)房屋價(jià)格較低,教師資源不足地區(qū),房?jī)r(jià)也越高。房產(chǎn)稅(TAX)偏高的地區(qū)房?jī)r(jià)較低,但該變量對(duì)房?jī)r(jià)的影響較小。

4.預(yù)測(cè)模型

hist(MEDV)


根據(jù)房?jī)r(jià)中位數(shù)直方圖,將房?jī)r(jià)分為4個(gè)等級(jí): A(5-15)、B(15-25)、C(25-40)、D(35-50) 。

boston$MEDV[MEDV >=40] <-"D" boston$MEDV[MEDV < 40& MEDV >=25] <-"C" boston$MEDV[MEDV < 25& MEDV >=15] <-"B" boston$MEDV[MEDV < 15] <-"A" boston$MEDV <- factor(boston$MEDV, levels=c("A","B","C","D"))

選取Boston數(shù)據(jù)集中70%的數(shù)據(jù)作為訓(xùn)練集,剩下30%為預(yù)測(cè)集。

set.seed(12) train <- sample(nrow(boston), 0.7*nrow(boston)) boston.train <- boston[train,] boston.validate <- boston[-train,]

選擇條件推斷樹(shù)模型進(jìn)行預(yù)測(cè)(條件推斷樹(shù):對(duì)輸出變量與預(yù)測(cè)變量間的關(guān)系 計(jì)算p值,選取p值最小的變量。在因變量與被選中的變量間嘗試所有可能的分割, 選取最顯著的二元分割,將數(shù)據(jù)集分成兩群后對(duì)子群重復(fù)分割。直至所有分割都不 顯著或已到達(dá)最小節(jié)點(diǎn)為止)

library(party) fit.ctree<-ctree(MEDV~NOX+RM+AGE+DIS+TAX+PTRATIO+B+LSTAT+ LSTAT+I(RM^2)+I(1/LSTAT), data=boston.train) plot(fit.ctree, main="Conditional Inference Tree")


上圖為房?jī)r(jià)等級(jí)的條件推斷樹(shù),每個(gè)節(jié)點(diǎn)處的直方圖代表這個(gè)節(jié)點(diǎn)對(duì)應(yīng)的房?jī)r(jià) 等級(jí)的比例。

ctree.pred <- predict(fit.ctree, boston.validate, type="response") ctree.perf <- table(boston.validate$MEDV, ctree.pred, dnn=c("Actual", "Predicted")) ctree.perf


上圖的輸出結(jié)果中“Actual”為真實(shí)值,“Predicted”為預(yù)測(cè)值,對(duì)角線上的樣本 為預(yù)測(cè)準(zhǔn)確的樣本,由此可得該條件推斷樹(shù)模型的準(zhǔn)確率為79.87%。

總結(jié)

以上是生活随笔為你收集整理的波士顿房价数据分析(R语言)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。