R語言練習:各城市間的房價有關係嗎?
分析的靈感來源於這篇房價走勢文。裡面有楊紅旭專欄對幾個城市從去年3月到今年2月的走勢:
樓市四小龍房價驟降10% 人民日報 :不用救市
比如南京這張:
看著n多城市的不同曲線,自然而然的想法是,這麼多城市,其間的互相影響因素是多大?
首先做出一個excel 表,到R程序中轉為矩陣。
然後先考察城市間是否具有關聯,運用的是卡方獨立性檢驗 chisq.test
p的數值<0.01,所以說明之間存在共性。也就是說各城市間的房價確實存在關聯。
如果要計算多個變數的相關係數矩陣,要用到psych包的corr函數。如果只是兩列之間,那麼就用cor函數就可以了。
運行後得出關聯繫數矩陣如下:
為了看清楚一點,小白的我又整理回到excel表來看,黃色的部分是大於0.9的部分。我個人將之定義為影響較大的數值。
從上可以看出,北京與其他城市的重要相關係數最多,我個人解釋為北京的房價影響其他城市較多,其餘為鄭州,廊坊和上海。深圳與其他城市基本上是負相關的關係,蘇州和三亞也與其他城市房價關係不大。
為了驗證,我在excel原表中將深圳等幾個城市的列重新排布,以免有主列(第一列)或者相對位置這種關係影響,得到的係數還是一樣的。所以這裡不再重複貼。
這個結論和我原先預想的不同,我原來想的是房價影響主要與地域間相關,比如長三角的幾個城市之間,但看南京和蘇州,無錫之間就沒什麼很強大的影響力。
為什麼會這樣呢?我還真沒有什麼更好的解釋,its an interesting question...
———————————————————————————————————————
為了把城市畫在地圖上,繼續學習新本領:
R語言中,畫地圖主要用到地圖包,地圖包也有很多,這裡選了其中兩個。
library("maps");library("mapdata")
找到以上城市的經緯度,列成excel表,然後導入程序成為dat矩陣。所以dat[,1]為城市名,dat[,2]為經度,dat[,3]為緯度。
par(mar=rep(0,4))
map("china", col = "darkgray", ylim = c(18, 54), panel.first = grid())
points(dat[,2], dat[,3], pch = 19, col = "orange」)
text(dat[,2],dat[,3],dat[, 1], cex = 0.9, col = "darkgray", pos = c(2, 4, 4, ......, 2, 4, 4, 2))
axis(1, lwd = 0); axis(2, lwd = 0); axis(3, lwd = 0); axis(4, lwd = 0)
這段程序是我利用網上的謝老大案例《用R畫中國地圖並標註城市位置》改的。
map("china")畫出中國地圖,
points指出城市地點,
text在城市地點上標註,
pos=c(2,4,4...)是按照1-4對應上下左右,標出文字相對於地點的關係。不過我調整的不太成功。
得出圖形如下:
本來想在幾個影響力較強的城市之間拉線的,結果發現要運用到社交網路igraph包。這個還沒學習,那就醬吧。雖然也可以拿回ps手繪的....如果有好辦法,也請不吝賜教。推薦閱讀:
※Netflix與推薦系統
※數據之美
※PYTHON第二關學習練習筆記
※實現數據驅動的三道鴻溝
※醫院銷售數據分析(數據分析第4關)
TAG:數據分析 |