多元线性回归——boston房价预测

python 多元线性回归boston房价预测

jupyter python3环境下利用处理后的boston房价数据集建立多元线性回归模型

数据集各特征描述:

多元线性回归——boston房价预测_第1张图片

导入使用到的相关包

多元线性回归——boston房价预测_第2张图片
将使用statsmodels库的ols函数建模,variance_inflation_factor函数用于检验自变量间的相关性。

数据集存放在csv文本中,先读取数据集为数据框
多元线性回归——boston房价预测_第3张图片
数据集形状为506条观测,14个特征变量,各特征变量的数据类型如上。

接下来,要检查数据集是否存在缺失值以及是否存在重复观测
多元线性回归——boston房价预测_第4张图片
数据集各变量缺失值情况以及存在的观测数情况如上图,由此可知数据集不存在缺失值以及重复观测

我们要建模的因变量为MEDV,自住房价的中位数,由于建模的因变量如果不近似正态分布,将会造成很大的影响,因此绘制MEDV变量的直方图以及核密度曲线,对比正态分布曲线。
多元线性回归——boston房价预测_第5张图片
多元线性回归——boston房价预测_第6张图片
通过绘图结果可知数据集MEDV变量数据分布绝对不符合正态分布,因此建模前要对其进行对数处理ln(MEDV+1)
在这里插入图片描述
再次绘制图得
多元线性回归——boston房价预测_第7张图片
对数处理后的因变量MEDV分布明显更为集中了,虽然峰度还是属于尖峰类型。
接下来将利用数据集建模,先将数据集分为训练集和测试集,比例为3:1,因变量为MEDV的多元线性回归模型,并在训练集、测试集上计算预测值与真实值的均方误差,对比实际值与预测值,绘制实际值与预测值的散点图观测模型预测效果。

多元线性回归——boston房价预测_第8张图片
测试集预测值与真实值散点图
多元线性回归——boston房价预测_第9张图片
根据训练集和测试集上真实值与预测值的均方误差可知训练集上的预测效果明显比测试集好,存在过拟合情况,因此对模型作更深入的分析处理。

输出模型相关信息:
多元线性回归——boston房价预测_第10张图片
多元线性回归——boston房价预测_第11张图片
模型t检验:分析各自变量的p概率值,p值大于0.05的变量说明其权重几乎为0,即对模型几乎没有作用,观察上图可知AGE以及INDUS变量p值远远大于0.05,因此之后重新建模不使用他们。
根据Durbin-Watson的值接近2可知模型满足残差独立性。
计算各自变量与因变量的相关性:
多元线性回归——boston房价预测_第12张图片
由计算结果可知CHAS变量与MEDV因变量几乎不相关,因此重新建模也不使用CHAS变量的数据。

学生化残差值大于2的为异常观测,计算模型各条观测的学生化残差值,删除训练集的AGE、INDUS、CHAS变量的数据,然后将学生化残差值数据与处理后的训练集横向合并。
多元线性回归——boston房价预测_第13张图片
计算得的异常观测数占比为4.75%,少于5%,因此直接舍去异常观测,提取非异常观测作为重新建模的训练集。

多元线性回归——boston房价预测_第14张图片
对模型各自变量进行相关性检验发现大多变量间存在相关性,对模型拟合造成极大影响,为了解决此问题,将使用sklearn库中linear_model的lasso函数建立lasso回归模型。
lasso回归实际上对线性回归模型加入了L1正则化,建模时需要通过LassoCV函数探索正则化项中较优的lambda值。
多元线性回归——boston房价预测_第15张图片
获取较优的lambda值后建立lasso回归模型
多元线性回归——boston房价预测_第16张图片
在这里插入图片描述

在这里插入图片描述
根据测试集上预测值与实际值的均方误差可知新建的模型准确性有所提升。

输出模型截距与各自变量参数:
多元线性回归——boston房价预测_第17张图片
多元线性回归——boston房价预测_第18张图片
根据结果显示,环保指标是影响房价的最重要因素,另外每栋住宅的房间数、就业中心距离、城镇中教师学生比例、地区房东是否低收入阶层也对房价有一定的影响。

你可能感兴趣的:(多元线性回归——boston房价预测)