全文链接:http://tecdat.cn/?p=32646
分析师:Junjun Li
在这篇文章中,我们将着重探讨高维数据下的机器学习应用,以房屋市场租金价格预测为例。
相关视频
在实际生活中,房屋租金作为一个重要的经济指标,被广泛应用于城市规划、财务投资等方面的决策中。然而,如何准确地预测房屋租金价格却一直是一个具有挑战性的问题。
本文将介绍如何使用Lasso回归和交叉验证方法来解决高维数据下的房屋市场租金价格预测问题,并详细阐述R语言在此过程中的应用技巧和实现方法。
背景
Goal: 利用主体物业和租户的各种特征来预测房屋市场租金价格
Data: 在Inter-University Consortium for Politicaland Social Research(ICPSR)数据库中找到的2007年美国住房调查(全国微观数据)有65,000个观测值和超过500个变量
Limitation: 某些特征的不可观测
有部分特征在超过80%的观测值中没有数据的,导致没有办法配合预测模型进行变量的筛选
Model used:
Regularization: 10.fold Lasso & AICc Lasso
适合于大量数据处理(高维度多变量)
数据清理
使用R语言处理无法观测到的变量︰
观测codebook去除无关的变量
选择去除50%以上失踪的变量(可以反复对比去除了不同变量后的模型)
对于剩下的变量去除含有NA的观测值
visualize部分重要变量是否合理
观测数据
大多数租金集中在一千美元左右,其平均租金(由红线标示)为1025美元(直方图呈现出略微右偏的近似正态分布)。
观测一些关键特征的信息,这些特征有助于预测公平市场租金,包括卧室数量、楼层数量、地块面积和主体单位的平方英尺面积。
点击标题查阅往期内容
贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据
左右滑动查看更多
01
02
03
04
模型分析
Regularization - Lasso Model
使用K-Fold cross validation确定最佳的lamda值:
数据被分成K个相等的部分,除了第k个折叠之外的所有数据都用于训练模型,第k个折叠用于测试模型,记录离样本外的偏差。
重复此过程,以至每个折叠都有机会成为测试集。导致离样本外偏差最小的lamda是最优lamda值,在案例中我采用K-10:
最终计算最小deviance中的样本内R^2与通过10 Fold cross validation计算出的样本外R^2。
左侧是套索正则化路径的绘图。我们可以看到随着lamda的增加,系数逐渐趋近于零。
右侧的图表显示了10Fold crossvalidation的离样本外偏差误差估计。最优lamda由最左边的垂直虚线表示。图表上的最低点实际上位于图表的最左侧,lamda的值最小。
与典型的图表不同,这个图表不是呈“u形。
在这种情况下,这意味着选择了最复杂的模型作为最优解。
模型分析
右图的值表示非零系数及其值,取重要变量进行合理性分析: 卧室数量:每增加—个卧室,月租金价格天约增加143.51美元,其他变量和特征保持不变。这个值是合理的,因为2个卧室的单位的租金价格很可能大于1个卧室的单位的租金价格。楼层数的系数是负数:对于每增加个楼层的单位或物业,月租金价格将减少约10.55美元,其他变量和系数保持不变。这个负系数是合理的,因为楼层数较多的物业更有可能是紧凑型的。
模型分析
与10-Fold cross validation相比,我还使用了一个计算上较为简便的替代方法是Akaike Information Criterion(AICc)。
在高维数据中,AICc倾向于产生过于复杂的模型,导致过拟合。然而,AICc得到的非零系数及其值与之前相同。
在右图中,我们展示了在我们的情况下,由AIC 、 AICc和10-Fold cross validation选择的最优lamda是相同的,即黑色、橙色和蓝色虚线重叠的部分.
总结
在执行Lasso Regularization后,我们看到模型从数据集中选择了186个变量中的76个变量。但有一些重要变量地没有包含在模型中,例如主体物业的建造年份和浴室数量,因为其中缺失了大量的观测值。
因为数据缺失较多所以模型只能用作客观预测,不能很好的反应各个变量之间的相关性, 在数据清理方面,选择去除含50%及以上数据缺失的变量也是一个需要权衡的方向,因为这个门槛选择太低又可能导致数据少无法正确反应变量之间的关系作用,而门槛太高就会出现没办法选择到一些比较重要的变量。
此模型不具备自适应性,所以需要新数据的更新支持才能更好的保证其预测的准确性。
关于分析师
在此对Junjun Li对本文所作的贡献表示诚挚感谢,他在加州大学圣克鲁兹完成了应用经济与金融专业的硕士学位,专注机器学习、数理金融、应用(计量)经济学领域。擅长R语言、Python。
点击文末“阅读原文”
获取全文完整代码数据资料。
本文选自《【视频】R语言机器学习高维数据应用:Lasso回归和交叉验证预测房屋市场租金价格》。
点击标题查阅往期内容
R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据
R语言STAN贝叶斯线性回归模型分析气候变化影响北半球海冰范围和可视化检查模型收敛性
R语言贝叶斯MCMC:用rstan建立线性回归模型分析汽车数据和可视化诊断
R语言贝叶斯MCMC:GLM逻辑回归、Rstan线性回归、Metropolis Hastings与Gibbs采样算法实例
R语言贝叶斯Poisson泊松-正态分布模型分析职业足球比赛进球数
R语言用Rcpp加速Metropolis-Hastings抽样估计贝叶斯逻辑回归模型的参数
R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病
R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据
R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归
R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析
R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型
R语言和STAN,JAGS:用RSTAN,RJAG建立贝叶斯多元线性回归预测选举数据
R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例
R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化
R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型
R语言实现MCMC中的Metropolis–Hastings算法与吉布斯采样
R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例