R語言課程設計之-深圳房價預測模型
R語言課程設計之-深圳房價預測模型
目錄
一、 摘要: 3
二、 R語言簡介 3
三、 商品房價和時間的非線性模型 3
(一) 資料準備(匯入資料): 3
(二) 建立非線性模型 4
四、 影響房價的多因素的多元線性迴歸模型 6
(一) 模型的建立 6
(二) 模型的求解 7
(三) 模型總結 13
五、 房價預測及模型的對比評價 13
(一) 指數方程預測房價 13
(二) 多元線性迴歸預測房價 13
六、 總結 14
(一) 建議 14
(二) 心得 14
(三) 參考文獻 14
摘要:
利用 R 語言優秀的統計計算和統計製圖特點,對多元統計模型進行 分析。本文建立的模型主要是討論深圳商品房的房價問題。
本文的資料來源於《深圳統計年鑑2019》和國家統計局,其中本文選取了比較接近現如今的2010-2018年的資料。考慮到商品房不同於一般商品,它不僅提供居住功能,同時還能帶來收租收益,或產生增值活動。因此,在對當前深圳房價進行預測時,本文主要從深圳生產總值,在崗職工平均工資,年末人口,社會商品零售總額,商品房銷售面積,房地產開發商業用房投資額六個方面來考慮對於商品房房價的影響。
R語言簡介
R是用於統計分析、繪圖的語言和操作環境。R是屬於GNU系統的一個自由、免費、原始碼開放的軟體,它是一個用於統計計算和統計製圖的優秀工具。
R是一套完整的資料處理、計算和製圖軟體系統。其功能包括:資料儲存和處理系統;陣列運算工具(其向量、矩陣運算方面功能尤其強大);完整連貫的統計分析工具;優秀的統計製圖功能;簡便而強大的程式語言:可操縱資料的輸入和輸出,可實現分支、迴圈,使用者可自定義功能。
與其說R是一種統計軟體,還不如說R是一種數學計算的環境,因為R並不是僅僅提供若干統計程式、使用者只需指定資料庫和若干引數便可進行一個統計分析。R的思想是:它可以提供一些整合的統計工具,但更大量的是它提供各種數學計算、統計計算的函式,從而使使用者能靈活機動的進行資料分析,甚至創造出符合需要的新的統計計算方法。
商品房價和時間的非線性模型
資料準備(匯入資料):
為了方便展示,我們分別為本文選取的六個因素設定為:
t:時間, y商品房平均銷售價格, x1深圳生產總值, x2在崗職工平均工資, x3年末人口, x4社會商品零售總額, x5商品房銷售面積, x6房地產開發商業用房投資額。
程式碼如下:
sz<-read.csv(“file:///C:/Users/admin/Desktop/price forecast.csv”,header = T,row.names=1)
show(sz)
資料如圖:
建立非線性模型
首先畫出y關於t的條形圖,程式碼如下:
newdata <-sz[,c(1,2)]
barplot(newdata
y
,
n
e
w
d
a
t
a
y,newdata
y,newdatat,names.arg=t,col = “yellow”,main = “房價和時間的條形圖”)
繪製條形圖:
然後畫出y關於t的散點圖,程式碼如下:
plot(t,y)
繪製散點圖:
由散點圖可知,初步認為y與t成指數關係,利用R語言進行擬合檢驗。對指數函式y=ae^bt兩邊取自然對數得:lny=lna+bt,令y_1=lny,a_1=lna則可將其化為一元線性函式y_1=a_1+bt對y取對數並進行一元線性迴歸的R語言程式為:
y1=log(y)
reg=lm(y1~t)
summary(reg)
得到結果為:
則可知常數項a_1=-286.32140,變數係數b=0.14728得到迴歸方程如下: y_1=-286.3214+0.14728t
將a=e^a1得到a的值為4.489479e-125,得到y關於t的指數方程為:
y=( 4.489479e-125)exp(0.14728t)
將得到的曲線與原散點圖進行比較,程式碼為:
plot(t,y)
a1=-286.32140
a=exp(a1)
b=0.14728
yy=aexp(bt)
lines(t,yy)
如圖:
影響房價的多因素的多元線性迴歸模型
模型的建立
y商品房平均銷售價格;x1深圳生產總值;x2在崗職工平均工資;x3年末人口;x4社會商品零售總額,;x5商品房銷售面積,;x6房地產開發商業用房投資額。則建立這6個關於y的多元線性迴歸模型:
y=β_0+β_1 x_1+β_2 x_2+β_3 x_3+β_4 x_4+β_5 x_5+β_6 x_6+ε
公式中的:β_0,β_1,β_3,β_4,β_5,β_6為未知引數,ε為隨機誤差,且認為ε服從正太分佈。對於公式中未知引數的估計採用最小二乘法,求相關係數R^2,並做顯著性檢驗,證明模型的建立是正確的。
模型的求解
為了確定商品房銷售價格與各變數之間的關係,分別作出y與x_i
的散點圖,程式碼如下:
plot(sz)
如圖:
利用cor(sz)得到相關矩陣並整理得:
並分別對y與x_i的相關性進行檢驗,檢驗程式碼如下:
cor.test(y,x1)
cor.test(y,x2)
cor.test(y,x3)
cor.test(y,x4)
cor.test(y,x5)
cor.test(y,x6)
得到結果如下:
綜上結果可知,在α=0.05的條件下,六個變數與y的性關係都較好。
對六個變數進行多元迴歸方程,程式碼如下:
reg1=lm(y~x1+x2+x3+x4+x5+x6)
summary(reg1)
結果如下圖:
圖7 多元迴歸分析結果
對係數進行顯著性檢驗,由結果可知,β_0,β_1,β_3,β_4,β_5,β_6的P值均大於0.05,故不能拒絕原假設,認為這些變數效果不明顯,可以認為這些係數為零
對方程進行檢驗,殘差的標準差為2929,而相關係數R^2=0.9544,P值小於0.05,效果明顯,故拒絕原假設,即認為y與各個變數之間存線上性關係。
根據P值,選擇剔除一個變數,對迴歸模型進行優化,故剔除x1,則reg2=lm(y~x2+x3+x4+x5+x6)
Summary(reg2)
結果如下:
對方程進行檢驗,殘差的標準差為2396,而相關係數R^2=0.9695,P值小於0.05,效果明顯,故拒絕原假設,即認為y與剔除x1後的變數之間存線上性關係。
根據P值,選擇剔除一個變數,對迴歸模型進行優化,故剔除x3,則:reg3=lm(y~x2+x4+x5+x6)
summary(reg3)
結果如下:
對方程進行檢驗,殘差的標準差為2093,而相關係數R^2=0.9767,P值小於0.05,效果明顯,故拒絕原假設,即認為y與剔除x1和x3後的變數之間存線上性關係。
根據P值,選擇剔除一個變數,對迴歸模型進行優化,故剔除x4,則:reg4=lm(y~x2+x5+x6)
summary(reg4)
結果如下
對方程進行檢驗,殘差的標準差為2414,而相關係數R^2=0.969,P值小於0.05,效果明顯,故拒絕原假設,即認為y與剔除x1、x3和x4後的變數之間存線上性關係。
繼續剔除x2:
reg5=lm(y~x5+x6)
summary(reg5)
結果如圖:
對係數進行顯著性檢驗,由結果可知,β_5,β_6在0.05條件下,均拒絕原假設,認為具有很好的效果。
對方程進行檢驗,殘差的標準差為2342,而相關係數R^2=0.9708,P值小於0.05,效果明顯,故拒絕原假設,即認為y與各變數之間存線上性關係。
模型總結
通過5次迴歸,最終得到最優的多元線性模型為:
y=-67.835+25.296x5+100.401x6
從該模型分析可知,在所選的因素中,只有x5商品房銷售面積和x6房地產開發商業用房投資額被保留下來,而x1深圳生產總值, x2在崗職工平均工資,x3年末人口, x4社會商品零售總額被剔除。
房價預測及模型的對比評價
指數方程預測房價
本文共預測得到兩個預測模型及其預測值為:
y關於t的指數方程為:
y=( 4.489479e-125)exp(0.14728t)
對y進行預測的程式碼為:
tt=2019:2021
yy=aexp(btt)
yy
執行結果為:[1] 62126.01 71984.06 83406.37
可見2019-2021年的預測值分別為:62126.01、71984.06、83406.37。其中2019年均價62126.01元與網路流傳的深圳商品房均價65516元(非官方)相差不大,偏差比例為5.17%。附圖:
多元線性迴歸預測房價
Y關於影響因素的多元線性迴歸模型:
y=-67.835+25.296x5+100.401x6
預測值與收集的實際資料對比如下圖:
可知多因素線性迴歸模型有較好的預測值,預測偏差均較小。
總結
建議
根據房價時間模型,房價將隨著時間呈指數增長之勢,因此必須出臺相關政策,有效抑制房價增長。根據多元線性模型,房價與各個自變數的正負相關性就是各個變數前係數的正負。要抑制房價的增長,可以通過使係數為正的自變數增長率減少,係數為負的自變數增長率增加來達到目的。
心得
學習一個軟體,並將其應用於實踐,可以快速提高軟體的應用能力和對軟體的理解。本文從用R語言讀入資料表,到做初步的相關分析和一元非線性和多元線性迴歸,各個步驟的實施,對R語言基本操作和軟體包有了一個更深入的瞭解和認識,為進一步的學習打下了基礎。另外,在學習的時候,要從資料中進行學習和歸納,將各個方法用R語言去實踐,多多使用,只有日積月累才能日漸精深。
對於模型的建立方面:在自變數的選擇上雖然查詢了相關的資料,但是考慮可能仍然有所欠缺,而且從其相關分析圖可知,6個自變數並不是相互獨立的,這使得最後得出房價與各自變數的正負相關性有誤差。
參考文獻
Robert I.Kabacoff[美].R語言實戰(第二版),2016
(來源於國家統計局和《深圳統計年鑑2019》)
關注公眾號,傳送“r模型”獲取資料,程式碼等資料,自己親自試一試吧!!!
如果覺得有用的就點個贊吧(#.#)
相關文章
- Kaggle入門之房價預測
- 《Python語言程式設計》課程筆記Python程式設計筆記
- 【 專案:深圳市二手房房價分析及預測
- 隨機森林R語言預測工具隨機森林R語言
- R語言邏輯迴歸、GAM、LDA、KNN、PCA主成分分類分析預測房價及交叉驗證R語言邏輯迴歸GAMLDAKNNPCA
- 課程-計算機語言學計算機
- 算數表示式求值--c語言課程設計C語言
- 波士頓房價預測
- 浙大翁愷《C語言程式設計》課程筆記C語言程式設計筆記
- 房價預測Task1
- C語言課程設計與學習指導 張冬梅pdfC語言
- 高階語言程式設計課程第9次個人作業程式設計
- 高階語言程式設計課程第十次作業程式設計
- 高階語言程式設計課程第7次個人作業程式設計
- 高階語言程式設計課程第七次作業程式設計
- 高階語言程式設計課程第四次作業程式設計
- 高階語言程式設計課程第二次作業程式設計
- 資料結構 課程設計 員工管理系統(C語言)資料結構C語言
- 使用pmml跨平臺部署機器學習模型Demo——房價預測機器學習模型
- 高階程式語言設計課程第九次個人作業
- 高階語言程式設計課程個人第九次作業程式設計
- 高階語言程式設計課程第九次個人作業程式設計
- 高階語言程式設計課程第五次個人作業程式設計
- 【看雪課程】組合語言,開課啦!組合語言
- 實驗1-波士頓房價預測
- Kaggle 入門並實戰房價預測
- 知識增強的預訓練語言模型系列之ERNIE:如何為預訓練語言模型注入知識模型
- r語言R語言
- 【R語言入門】R語言環境搭建R語言
- 高階語言程式設計課程第八次個人作業程式設計
- 高階語言程式設計課程第七次個人作業程式設計
- 高階語言程式設計課程第十次個人作業程式設計
- 高階程式語言設計課程第十次個人作業
- 高階程式語言設計課程第七次個人作業
- 高階語言程式設計課程第六次個人作業程式設計
- 高階語言程式設計課程第四次個人作業程式設計
- 高階語言程式設計課程第三次個人作業程式設計
- javaweb課程設計之XXX管理系統JavaWeb