你还买得起上海的房吗?
发布时间:2020-07-01 浏览次数:80
研究背景
有人说“年轻人向往着远方,迫切得想要在远方扎根立足,但远方始终是远方,回首一望却发现,我曾经的故乡呐,竟已成为我遥不可及的远方,年轻人的灵魂何处安放!”。我站在高楼林立,极尽繁 华的街头,以为我是这魔都熙熙攘攘的“成功人士”的一员,可是买房的困境让我发现,自己也只不过是一个匆匆过客而已。房,对于绝大多数年轻人来说犹如一座大山压在肩头,是不得不去面对的一大难题。自 08 年以来,中国房市犹如坐上了火箭,价格一路飙升,尤其在北上广深这样的一线城市,拥有一套安身之所对绝大部分年轻人来说竟成为了遥不可及的奢望,让世人无不感叹生活之艰难。
房价知识科普
那么作为一个研究者,必然要思考究竟是哪些因素造成了房价如此之高呢?以上海为例,为什么松江区与黄浦区之间房价的差别如此之大呢?是商圈数量多少决定吗?是地铁有无、教育医疗资源好坏决 定吗?接下来就和我们一起去探索房价背后的奥秘吧。
既然想探索房价的奥秘,那么首先我们肯定得知道哪些因素会影响房价。经过一番查阅资料,我们发现了房地产经济学家们提出的主流的特征价格理论,认为影响房地产价格的有三大特征因素:建筑特 征(Structure)、邻里特征(Neighborhoods)和区位特征(Location)。简单来说,区位特征指的是住宅小区位于哪个区域,以及该区域具备的相关特征,包括所在区域、交通便捷度等。建筑特征指的是房地产本身的客观性质,包括面积、房龄、装修情况等。邻里环境指房屋所在小区的自然环境、人文环境 和治安管理等方面状况,包括绿化率、物业费等。仔细想一想,确实很有道理呀。
目前的社会科学研究,大多注重变量的可解释性和未来政策的落地,主要采用了线性回归的方法,利用各种因素求得预测量来解释现实中的问题。这次我们在借鉴了社会科学研究的思想的同时也发挥 了统计学科的优势,选用更加复杂的模型,来对上海地区的二手房价进行深层次的探索分析,以期给大家带来更直观的感受!
数据获取与介绍
经过知识科普后,就要考虑数据获取的问题啦,既然没有现成的数据,那就自己动手、丰衣足食
——直接从网站上爬取不就行了。如图3-1所示,安居客网站上有大量的房源信息,其中对于房源的三大特征因素也有囊括,于是决定直接对它下手,通过网络爬虫技术爬取了43369条正在挂牌售卖的二手房房源信息。表3-1详细介绍了关于数据集的各个变量含义。
| 特征 | 变量名 | 含义 | 数据类型 |
|
建筑特征 | unitprice | 房屋挂牌单价(元/平方米) | 数值型 |
| area | 房屋面积(平方米) | 数值型 | |
| year | 房屋使用年限 | 数值型 | |
| direction | 房屋朝向,分为朝南、朝西等 | 分类型 | |
| category | 房屋类型,分为普通住宅、公寓、别墅等 | 分类型 | |
| decoration | 装修程度,分为精装修、豪华装修等 | 分类型 | |
| bedroom | 卧室数量 | 数值型 | |
| hall | 厅数量 | 数值型 | |
| lavatory | 厕所数量 | 数值型 | |
| storey | 所在楼层,分为低层、中层、高层 | 分类型 | |
| elevator | 有无电梯 | 分类型 | |
| property | 产权性质,是否为商品房 | 分类型 | |
|
邻里特征 | totalstorey | 房屋所在楼的总楼层数 | 数值型 |
| far | 小区容积率 | 数值型 | |
| greening | 小区绿化率 | 数值型 | |
| fee | 小区物业费(元/平方米/月) | 数值型 | |
|
区位特征 | admdist | 所在行政区 | 分类型 |
| secdist | 所在细分区域 | 分类型 | |
| community | 所在小区 | 分类型 | |
| title | 网页标题 | 文本型 | |
| sellingpoint | 房源核心卖点 | 文本型 | |
| opinion | 房源专家建议
| 文本型 |
图 3-1:安居客房源网页图
数据预处理
成功获取到数据后,下一步就是对数据进行预处理了。通过检查数据缺失情况发现 far(小区容积 率)、greening(小区绿化率) 这两个缺失变量的比例较大,分别达到了28%和17%, 因此如果直接用中位数进行填充效果不好,于是根据逻辑和数据间展示出的变量相关性,我们将 far(小区容积率) 按 totalstorey(总楼层数) 变量分组后进行组内中位数填充,将greening(小区绿化率) 按 area(房屋面积) 变量分组后进行同样的操作。另外 year(房屋使用年限)、fee(小区物业费) 等变量的缺失率只有不到1%,因此直接采取中位数进行填充。
变量初步处理
接着,开始进行变量的初步筛选工作。主要做了以下处理:
direction(屋朝向) 和 elevator(有无电梯) 这两个变量存在严重的数据不平衡问题,其中有电梯和房屋朝南两个类型的比例都达到了99.5%,因此在建模时直接删除;
secdist(所在细分区域) 和 community(所在小区) 两个分类变量的类别太多,分别有278 和7218种,考虑到admdist(所在行政区) 变量已经能够体现区位差异,因此在建模时直接删除;
对 title(网页标题)、sellingpoint(房源核心卖点)、opinion(房源专家建议)这三个文本型变量,通 过“号线|地铁|轨”关键字匹配生成了subway变量;通过“市重点|区重点|学区|第一梯队|第二梯队”关键字匹配生成school变量;通过“商圈|商业街”关键字匹配生成business变量,分别代表周边是否有地铁、周边是否有学校、周边是否有商圈三个含义。
由于 admdist(所在行政区) 一共有 16个类型,为了便于可视化,我们根据房价以及地理位置将黄埔设置为中心区,将长宁、徐汇、静安、杨浦、虹口、普陀这6 个区设置为过渡区,将浦东、闵行、宝山、青浦、嘉定、松江、奉贤、崇明、金山等9个区设置为周边区,生成新的变量region。
探索性分析
数据预处理完后,就要画图啦,毕竟再好的描述也不如图片来的直观呀。从图5-1可以看出,单位 房价呈现出右偏分布,具体而言,单位房价的均值为45465元/平方米,中位数为43081元/平方米,这一现象还是符合我们的基本认知,毕竟上海可是国际大都市呀,但是,从图中还可以看出,也存在一些均价高于15万元/平米的天价房,最高的甚至达到了37万元/平方米的天价,真是贫穷限制了我们的想象,土豪的世界,我们不懂。
图 5-1: 房价区位分布图
其实就算没有相关房价知识,大家对区域位置对房价影响重大也是有一定了解吧。结合图5-2和图5-3,我们确实发现每个区的二手房挂牌均价有很大差异,首先,黄浦区作为市中心,凭借着优越的教育、医疗以及交通等条件,其二手房均价甚至超过了8万元/平方米,一枝独秀。紧接着,紧靠着市中心的长宁、徐汇、静安、杨浦、虹口、普陀等 6个区虽然区位条件比不上黄浦区,但其二手房均价也稳定在5-6万元/平方米,也是让人望而却步呀。但是别慌,说不定周边的房子还有机会。最后,上海周边的浦东、闵行等 9个区,确实离中心远了点,交通、教育等条件差了不少,二手房均价维持在2-4 万元/平方米左右。看完之后,我不免发现了一个残酷的事实——我还是买不起。
图5-2: 二手房挂牌单价分布
图5-3: 房价区域分布可视化
伤心归伤心,生活还得继续,至少先看完这篇文章呀。了解到区域位置这一最重要的因素对房价的 影响后,我们看看其他因素对房价的影响。
上文曾提到,我们为了方便数据可视化,将16个行政区分为了周边区、过渡区和中心区三个类别,下图不就显示这样做的优越性了吗。从下图5-4房龄分布图我们可以发现,比起中心区,周边区和过渡区的二手房源大部分房龄都只有不到20 年,特别是周边区。从专业角度来说,就是中心区近年来的增量房市场已经饱满,已经进入存量房市场时代,而过渡区特别是周边区房地产市场的发展较中心区而
言相对缓慢,还处于增量房市场阶段。是不是听起来高大上,其实通俗来说就是,中心区目前已经没有多少新地可以拿来建房,拿来交易的都是些“老房子”,而过渡区和周边区由于起步较晚,还有许多空 地可以建房,就导致了二手房市场有大量“新房子”流通。
会计学知识告诉我们,房子作为一种耐用的消费品,是有折旧的,因为房子的外观通常就会受到影响,而硬件设施、和建筑也会发生磨损现象,就是说你使用时间越长,房子的价值是会越来越低的。但是从图5-5房源-房价关系图,似乎看不出房龄与房价有明显的负相关关系,究其原因,我们认为目前来看,比起消费属性,有相当于一部分人买房更看中了房子的投资属性,这就导致了折旧这个概念在房子上行不通,说不定房龄长的房子还因较早的占据了好的地理位置,导致它的房子价格更高呢?
接着,我们再看看看房源面积对房价的影响,图5-6是各个区域的面积分布,可以看出,周边和
过渡区主要还是以面积小于 100 平米的小户型为主,而中心区的面积分布则比较均匀,因为中心区的土豪多呀,可以买得起大房型。然后看图5-7,你是不是很少看到这么有规律的图,不管在哪个区域,二 手房均价与面积有显著的正相关关系。其实根据规模经济的相关理论,大户型的房子的单位建筑成本应该比小户型低才对,那么面积大的房子应该卖的更便宜不是吗?其实想想也有道理,房屋面积越大, 舒适度就越高,价格自然就上去了,毕竟谁不想拥有一套大房子呢?另外我相信你也注意到了,大户型住房多见于高品质小区的商品房,往往单价、总价都高。
下面,我们再来看看装修类型对房价的影响,从图5-8可以看出,二手房市场还是以精装修为主,毕 竟大部分二手房之前都是有人居住的,不像新房那样,也有相当一部分是毛坯房和简装房。一般而言,房子的装修程度越高,价格肯定是会上涨的,因为成本上去了呀,一分钱一分货。但是从图5-9看出,这 个逻辑只在过渡区完美适用,在周边区和中心区都有点碰壁。仔细一想,不同于新房,二手房可能由于已经使用过一段时间,这时的精装修和简单装修都因为一定的磨损而实际差距不大,甚至有的买主买了以后还要重新装修,那跟毛坯房也没什么区别了呀。至于你问我中心区的豪华装修为什么这么贵,这不是废话吗?
图5-8:装修类型分布图
图5-9: 装修类型-房价图
邻里特征
好了,听本文仔细分(hu)析(shuo)了一通建筑特征后,再来看看邻里特征对房价的影响吧。从图5-10可以看出,周边区和过渡区的住宅楼都还是低楼层为主,可能是因为这些地方地够多吧,而市中心就不一样了,毕竟寸土寸金,所以房子自然要尽量能建高一点是一点。而且,高楼林立,不也是市中心的象征吗?说到这里,不知道大家生活中有没有留意到一个现象,那就是你们见到的住宅楼是不是大多是6 楼、18 楼、26 楼高的 (谁平时这么无聊啊)?于是我们分析楼层这个因素时,专门查阅了下资料,大概就是:住宅楼 7层楼以上必须配置电梯、11 层以上必须配置消防电梯和安全出口、18层以上必须配 置两个消防出口、26 层以上必须配置两个消防电梯……, 是不是听得有点晕,其实就是楼层越高,对楼层的承重、抗震、抗风、消防等能力提出了更高的要求。相应的,楼的单位建筑成本也提高了,所以开发商造楼时才会大部分选择这几个层数,使自己的利益最大化。所以我们在分析总楼层对房价的影响时,也根据这几个值对总楼层进行了分箱处理,但根据图5-11来看,总楼层越高,房价越高的规律又只在过渡区才完美适用,看来以后分析房价时,得找不是那么极端的区域位置,不然容易打脸。
图5-10:总楼层分布图
图 5-11:总楼层-房价图
接着,再来看看小区绿化率对房价的影响。绿地率= 绿化面积/小区规划面积,一般而言,国家规定小区的绿化率不得低于 30%,旧小区区改造不低于25%。根据图5-12可以看出,绿化率主要集中在30%到40%之间,可见大部分开发商还是积极响应国家号召的,即使在中心区这么寸土寸金的地方也没有偷工减料。那是不是绿化率越高就约好呢?其实不是的,一般而言,40% 的绿化率就能够保证舒适 居住,大于50%就可以称之为花园。但绿化率如果过高,养护大量植物所需要耗费的金钱成本可能就要分摊到你的物业费中;其次,片面追求过大的绿地面积,很有可能会挤占道路宽度,影响小区的通透 性。从图5-13也可以看出,在一定范围内房价与绿化率成正相关关系,但如果绿化率过高,反而抑制了房价。
图 5-13:绿化率-房价图
区位特征
最后,我们再来看看区位特征对房价的影响,其实最重要的区域特征—区域位置,我们一开始就说过了,并且在研究其它特征时控制了这一变量,因为它对房价的影响实在太大了。大家都知道交通便捷性也是影响房价很重要的一个区位特征,毕竟你总不可能一辈子宅在家吧,那对于我们这种普通百(qiong)姓(ren)来说,地铁就是最经常的出行方式啦。从图5-14可以看出,在周边区,靠近地铁站的住宅确实比不靠近地铁站的,在房价上确实高出了一些。而在过渡区,房子是否靠近地铁站似乎对房价没什么影响。甚至在中心区,还出现了靠近地铁站的房子比不靠近地铁站的便宜了一些。看到这里,是不是怀疑人生了,这跟平时想的不一样啊。这时,可能就需要你我跳出普通百姓的认知来思考这个问题了。你想想,能在上海过渡区甚至中心区买房的人是些什么人,都是资产过千万的大佬,对于他们而言,出行的首选肯定是私家车啦。所以地铁对他们没什么影响。甚至由于中心区的地铁站人流量太大,买房时专门避开这些地方呢。这一切都体现在了房价上。
图 5-14: 地铁-房价图
“学区房”近来一直是房地产市场一个很火的话题,它是指由教育部门或者学校规定的,按照就近
免试入学的原则,学校招收指定地域范围内的学生,这个范围内的物业、房产叫做学区房。相当于如果你在一所重点学校的附近拥有了一套房子,你的孩子就拥有了这所学校的入读资格,而这所房子也因为包含了重点学校入读资格这一权利,在房价上比一般房子溢价不少。在如今这个孩子从小开始竞争、家长舍得在教育上投资的时代,学区房的溢价就更为严重,学区房也成为一些房地产商的促销手段,挂上 学区房的名称就像贴上一个“稳增不赔”的标签。这点从图5-15也可以得到验证,不管在哪个区域,学区房的房价都要高出非学区房一些。
图 5-15:学区房-房价图
模型分析
好了,说了这么久,但是只根据可视化的结果下结论还是不太严谨,所以接下来将数据集分为训练集和测试集,尝试用 Lasso回归、随机森林和XGBoost三种方法对二手房单价进行预测。
Lasso
Lasso是一种降维方法,本质是通过在损失函数中加入惩罚项,将对因变量没有影响或影响较小的自变量的回归系数压缩到0,达到选择变量和消除多重共线性的作用。对于普通线性回归模型,Lasso回归的损失函数定义为:
是惩罚参数,当充分大时将导致某些系数恰好为0,这样就实现了变量选择。
在Lasso回归中,选择合适的对模型的构建至关重要。若
选择过大,将导致所有自变量的系数都趋近于0,模型对于因变量的解释能力不足;若
选择过小,惩罚项趋近于0,无法起到变量选择的作用。图6-1和图6-2分别表示不同的
所对应的测试集
以及变量系数被压缩为 0的个数。如图所示,随着的增大,测试集
不断减小的同时系数被压缩为0的特征的个数不断增多,这表示模型对响应变量的解释能力减弱,但对预测变量的选择作用增强。衡量两者之间的利弊关系,决定选择的
值为59。此时测试集为0.702,与其最大值相差不大,并且将9个特征的回归系数压缩为0,有效地起到了变量选择的作用。
图 6-1:
变化过程
图6-2: 变量压缩过程
从下图6-3中可以看到,category_老公房、category_新里洋房、category_平房、category_别 墅、decoration_精装修、decoration_简单装修、business、storey_低层、admdist_宝山这九个特征的回归系数被压缩为0,表明房子的类别、装修程度、是否靠近商业区、楼层等因素与房价的关系不是很显著,而区域、面积、房龄、是否为学区房等因素对房价的影响是很显著的。
图6-3: Lasso 回归系数
随机森林
随机森林(Random Forest)算法,是用随机的方式建立一个森林,是一种基于决策树的组合学习算法。随机森林的基本思想是在构造单个树的过程中,随机选取一些变量或特征参与树节点划分,重复 多次并保证建立的这些树之间的独立性。在得到随机森林之后,当有一个新的输入样本进入的时候,森林中的每一棵决策树都会对该样本进行判断,得到该样本属于哪一个类的结果,最后看整个森林中属于 哪一类的得票最高,就预测该样本为哪一类。在回归问题中,随机森林输出的是所有决策树的平均值。
基于随机森林模型得出的测试集
达到了0.901,变量的重要性排序如下图6-4所示,可以看出区域、房龄、面积、总楼层和小区物业费是对房价影响最显著的 5个因素。
图6-4: 随机森林特征重要性排序
XGBoost
XGBoost也是一个树集成模型,将多个分类回归树(CATR树)进行组合,以获得更好的效果,使 组合后的模型具有更强的泛化能力。XGBoost是大规模并行 boosted tree 的工具,它是目前最快最好的开源boostedtree工具包,比常见的工具包快10倍以上。在数据科学方面,有大量kaggle选手选用它进行数据挖掘比赛。XGBoost算法比较复杂,针对传统GBDT 算法做了很多细节改进,包括损失函 、正则化、切分点查找算法优化、稀疏感知算法、并行化算法设计等等。
经过一系列枯燥的调参和交叉验证后, 得到XGBoost的测试集的
为 0.888。从XGBoost得到的特征重要性排序图6-5中可以发现,与随机森林得到的结果类似,区域依然是对房价影响最大的一个因素,其次影响较大的因素是房龄、厕所数量、面积、物业费、容积率等。
图 6-5: XGBoost特征重要性排序
模型对比
从表6-1和图6-6可以看出,随机森林的预测效果最好,XGBoost的效果稍逊一筹,而传统的Lasso则差的有点远,毕竟它只是线性的嘛。不过虽然Lasso这种基于线性回归的方法虽然预测效果较差,但是它的模型具有可解释性。随机森林和XGBoost则更像是一个黑箱,虽然效果好,但没人知道它们的影响机制。而经济学研究的侧重点就是可解释性,所以线性回归依旧是经济学领域的香饽饽。
| 模型 | Lasso | 随机森林 | XGBoost |
| 测试集 | 0.702 | 0.901 | 0.888 |
总结
好了,故事到这里终于要结束了,要是再不结束估计你们也乏味了。总之,这篇文章带你从各方面了解了上海的房价情况。不知道看完文章的你,是否心中又燃起了在上海买房的梦想。一个好消息是,上海近两年的房价终于趋于平缓,甚至有下降的趋势,所以,梦想还是还有的,万一实现了呢
