R语言练习:各城市间的房价有关系吗?

分析的灵感来源于这篇房价走势文。里面有杨红旭专栏对几个城市从去年3月到今年2月的走势:

http://finance.qq.com/a/20170228/010667.htm

比如南京这张:

R语言练习:各城市间的房价有关系吗?_第1张图片
图片来自网络

看着n多城市的不同曲线,自然而然的想法是,这么多城市,其间的互相影响因素是多大?

首先做出一个excel 表,到R程序中转为矩阵。

R语言练习:各城市间的房价有关系吗?_第2张图片

然后先考察城市间是否具有关联,运用的是卡方检验 chisq.test

R语言练习:各城市间的房价有关系吗?_第3张图片

p的数值<0.05,所以说明之间存在共性。也就是说各城市间的房价确实存在关联。

如果要计算多个变量的相关系数矩阵,要用到psych包的corr函数。如果只是两列之间,那么就用cor函数就可以了。

运行后得出关联系数矩阵如下:

R语言练习:各城市间的房价有关系吗?_第4张图片

为了看清楚一点,小白的我又整理回到excel表来看,黄色的部分是大于0.9的部分。我个人将之定义为影响较大的数值。

R语言练习:各城市间的房价有关系吗?_第5张图片

从上可以看出,北京与其他城市的重要相关系数最多,我个人解释为北京的房价影响其他城市较多,其余为郑州,廊坊和上海。深圳与其他城市基本上是负相关的关系,苏州和三亚也与其他城市房价关系不大。

为了验证,我在excel原表中将深圳等几个城市的列重新排布,以免有主列(第一列)或者相对位置这种关系影响,得到的系数还是一样的。所以这里不再重复贴。

这个结论和我原先预想的不同,我原来想的是房价影响主要与地域间相关,比如长三角的几个城市之间,但看南京和苏州,无锡之间就没什么很强大的影响力。

为什么会这样呢?我还真没有什么更好的解释,it's an interesting question...


为了把城市画在地图上,继续学习新本领:

R语言中,画地图主要用到地图包,地图包也有很多,这里选了其中两个。

library("maps");library("mapdata")

找到以上城市的经纬度,列成excel表,按列分别为:城市名,经度,纬度。然后导入程序成为矩阵dat,这样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对应上下左右,标出文字相对于地点的关系。不过我调整的不太成功。

得出图形如下:

R语言练习:各城市间的房价有关系吗?_第6张图片

本来想在几个影响力较强的城市之间拉线的,结果发现要运用到社交网络igraph包。这个还没学习,那就酱吧。虽然也可以拿回ps手绘的....如果有好办法,也请不吝赐教。

你可能感兴趣的:(R语言练习:各城市间的房价有关系吗?)