成都二手房价格数据统计分析
摘要
以安居客网站的3602条成都二手房为例,选取了其中的8个字段,包括户型、面积、楼层、朝向、行政区划、建造年份、装修程度和单价等,用以探究二手房的单价与房屋基本信息数据之间的关系。本文以二手房的单价为反应变量,以户型、面积、楼层、朝向、行政区划、建造年份、装修程度等7个变量作为自变量。第一步进行数据预处理,包括数据平滑化、变量转化(类别特征编码)、标准化numerical数据;第二步将数据分为训练集和测试集,训练集用来训练模型,测试集用来评估模型,评价指标采用测试集的均方误差(MSE)和拟合优度(R2);第三步建立线性回归、支持向量机(高斯核函数)和随机森林模型,最终得到测试误差最小的模型是随机森林模型,其测试误差仅为0.1245。
数据来源
01
利用后羿采集器在安居客官方网站爬取二手房的房屋信息,共有3727条数据。经过筛选,删去25条个别字段空白缺失的数据后,保留3602条,由于前三个字段对后续分析的作用不是很大,所以仅保留后8个字段,数据结构特征分别为图1和图2.
图1
图2
具体的指标解释如下:
(1)layout:房屋户型,单位:室、卫、厅
(2)price:房屋单价,单位:元/m²
(3)district:行政区划,共计20个:锦江、青羊、高新区、武侯、成华、天府新区、金牛、双流、龙泉驿、温江、新津、新都、都江堰、邛崃、彭州、崇州、大邑、青白江、郫都、金堂
(4)area:房屋面积,单位:m²
(5)year:建造年代,单位:年
(6)direction:房屋朝向,分为10类:东、南、西、北、东北、东南、西北、西南、南北、东西
(7)floor:所在楼层,分为3类:高层、中层、低层三类
(8)decoration:装修程度,分为4类:毛坯、简单装修、精装修、豪华装修。
统计性描述
02
(一)整体房价的统计特征分析
首先对成都市的整体房价进行处理,包括平均价格、中位数价格和价格分布:
图3 平均、中位数价格
从统计结果上来看,成都二手房最高价格超过4万元/平方米,最低价格不高于3千元/平方米,差异较大。房价的平均数和中位数均在1.5万元/平方米左右。接下来展示整体二手房价的分布:
图4 成都市二手房价格分布
从二手房价的整体分布来看,其数据分布类似于正态分布,呈现单峰特点,且平均值和中位数十分接近峰值。二手房的单价主要集中在1-2万元,占比过半。数量从平均价格1.47万附近开始向两边依次递减,这说明房价虽贵,但也有一大批二手房的价格相对而言是较合理的。
(二)影响房价因素的统计分析
单纯分析房价数据意义不明显,需要重点分析影响房价的因素。这里采用行政区划(district)作为地理位置的影响因素,采用房屋面积(area)、房屋朝向(direction)、装修程度(decoration)、房屋户型(layout)、所在楼层(floor)作为房屋类型的影响因素,采用建造年代(year)作为房屋年龄的影响因素。
(1)行政区划对房价的影响
首先,分析各行政区划内的平均房价,并进行排序。可以看出锦江区的均价最贵,超过2.25万元/平方米,青羊区紧随其后,接下来是高新区、武侯和成华,三者房价比较接近,在1.75-2万元/平方米的区间内。对比成都中心城区名单(锦江区、青羊区、金牛区、武侯区、成华区五个主城区),可以发现房价分布与中心城区十分符合。
图5 成都市各行政区二手房平均价格分析
通过作出各区的房价箱形图,来查看各行政区划内的房价分布:
图6 成都市各行政区二手房平均价格分析(箱型图)
箱型图具有较强的数据分布检查和异常值检查功能。从成都各行政区划二手房价格的箱型图可以看出,成都几个新兴的城区(双流、新都、温江等)具有较多上侧异常值,其中,高新区最多。这与常识相符,如靠近知名商圈或豪宅小区的房价会特别贵。相反,成都的周边区划异常值极少,房价分布区间相对较小。
(2)房屋面积对房价的影响
接下来分析房屋面积对房价的影响。房屋面积在一定程度上反映了房屋类型。例如面积超过300平方米的房子很有可能是别墅或者复式结构住宅,此类房屋往往在优质住宅区内,价格很有可能偏高。因为不同行政区内房价可能存在不同的分布规律,因此有必要区分各个行政区划之后,再做分析,结果如下图所示:
图7 成都各行政区内房屋面积对房价的影响(散点图)
注:图例按照平均房价的顺序排列,红色为价格第一梯队,蓝色为价格第二梯队,绿色为价格第三梯队,青色为价格第四梯队,洋红色为价格第三梯队,每个梯度包含四个行政区划。
从散点图中可以明显观察到第一梯队的红色散点相对偏向左上方,各个梯队相比于上一梯队整体向下偏移。为了更明显地比较各行政区房屋面积对房价影响规律,对各区的散点进行最小二乘线性拟合:
从线性拟合结果上来看,房价随房屋面积的变化规律与预期相符,即平均房价越高的行政区划内,其房价随房屋面积变化的回归线越偏向左上方。其中,彭州和成华稍有例外,其回归线的斜率较高:在房屋面积小时其价格较低,符合预期;但随着房屋面积增大,特别是超过200平方米后其价格急剧上升。另外,存在几条向下的直线,说明房价随房屋面积的变化规律与预期不相符。造成这些情况可能是由于样本量较少或存在一部分异常数据,显著改变了线性拟合的结果。当然这只是一个简单假设的线性趋势,不能作为真实参考,四百多平米的房子不可能均价为零,现实生活绝大多数场景都是非线性的。
图9 房屋朝向对房价的影响
(3)其他因素对房价的影响分析
除了以上的两个较重要的影响因素外,还有另外5个因素也不同程度地对房价造成一定影响,包括:户型、楼层、朝向、建造年份、装修程度,因此也分别对其进行了简要分析,以下仅展示朝向和户型对房价的影响:
从图9中可以看出,不同朝向的楼房平均房价差别不太明显,朝向对房价的影响一般。其中东西方向的楼房最贵,超过1.6万元/平方米,南北方向的最便宜,大概1.2万元/平方米,其他朝向的则差别不大。原因可能是东西方向的楼房接收的阳光最多,其他朝向的次之,南北朝向的接收的阳光最少。
从图10中可以看出,不同布局的楼房平均房价有很多的差别,房屋布局对房价影响较大。其中2室3厅2卫的楼房平均房价最贵,超过3万元/平方米。5室2厅3卫的平均房价最便宜,低于1万元/平方米。
图10 房屋户型对房价的影响
03
机器学习预测房价
(1)分割数据集
将数据分割为训练集和测试集,训练集和测试集占比分别为80%和20%,训练集用于训练建立模型,测试集用于评估模型的好坏,评价指标采用在测试集上的MSE和R2。
(2)线性回归模型
线性回归模型是回归分析的一个重要组成部分,包括多元线性回归、岭回归、Lasso回归等多种模型,是一类用途广泛且行之有效的模型,下面仅对多元线性模型进行分析。模型的具体结果如表所示,均保留四位小数:
(3)支持向量机模型
支持向量机(SVM)是个非常强大并且有多种功能的机器学习模型,能够做线性或者非线性的分类、回归,甚至异常值检测,是机器学习领域中最为流行的模型之一。sklearn中支持向量分类主要有三种方法:SVC、NuSVC、LinearSVC,扩展为三个支持向量回归方法:SVR、NuSVR、LinearSVR。而在SVR算法中可选择的核函数(将非线性问题转化为线性问题)则有RBF高斯、Linear线性、Poly多项式核函数等,此处采用的是RBF,即径向基核,也就是高斯核函数。具体拟合结果见表2。
(4)随机森林
除了线性回归模型和支持向量机回归模型,本项目还调用了普通随机森林对数据进行训练与预测。三种模型拟合的结果比较如下:
从表中结果可以看出,R2与均方误差成负相关关系。MSE越小,R2越高,模型的预测能力越强。本项目中所用到的模型中普通随机森林模型的预测能力最强,支持向量机的预测能力最弱。下面通过调参和交叉验证的方法还可以进一步训练模型,提高预测能力。
(5)K折交叉验证
初始采样分割成K个子样本,一个单独的子样本被保留作为验证模型的数据,其他K-1个样本用来训练。交叉验证重复K次,每个子样本验证一次,平均K次的结果或者使用其它结合方式,最终得到一个单一估测。这个方法的优势在于,同时重复运用随机产生的子样本进行训练和验证,每次的结果验证一次,10折交叉验证是最常用的。从表中结果可以看出,模型被进一步优化,预测能力得到了显著提高。
04
总结
本研究对数据进行筛选,选出无缺失值的3602条数据;然后是通过对数据的描述统计进行初步分析,大致了解房价分布及其影响因素;接下来利用机器学习建模预测房价,并比较了几种常用模型的预测效果,主要分为四步:
第一步进行数据预处理,包括数据平滑化、变量转化(类别特征编码)、标准化数据;
第二步将数据分为训练集和测试集,训练集用来训练模型,测试集用来评估模型,评价指标采用测试集的均方误差(MSE)和拟合优度(R2);
第三步建立线性回归、支持向量机(高斯核函数)和随机森林模型,得到测试误差最小的模型是随机森林模型,其测试误差仅为0.1245;
第四步通过调参和交叉验证的方法进一步训练模型,提高预测能力,最终测试误差(标准差)为0.0205。
注:本项目所有程序为Python完成,需要data和code的可以在微信公众号中留言。


