多元线性回归算法预测房价

本文介绍了多元线性回归的概念、估计方法,并通过Excel预估房价,然后在jupyter环境中使用sklearn和statsmodels库实现预测,强调了数据处理和模型评估的重要性。
摘要由CSDN通过智能技术生成

一、多元线性回归

1.概念

社会经济现象的变化往往受到多个因素的影响,因此,一般要进行多元回归分析,我们把包括两个或两个以上自变量的回归称为多元线性回归,元线性回归的基本原理和基本计算过程与一元线性回归相同,但由于自变量个数多,计算相当麻烦,一般在实际中应用时都要借助统计软件。这里只介绍多元线性回归的一些基本问题。但由于各个自变量的单位可能不一样,比如说一个消费水平的关系式中,工资水平、受教育程度、职业、地区、家庭负担等等因素都会影响到消费水平,而这些影响因素(自变量)的单位显然是不同的,因此自变量前系数的大小并不能说明该因素的重要程度,更简单地来说,同样工资收入,如果用元为单位就比用百元为单位所得的回归系数要小,但是工资水平对消费的影响程度并没有变,所以得想办法将各个自变量化到统一的单位上来。前面学到的标准分就有这个功能,具体到这里来说,就是将所有变量包括因变量都先转化为标准分,再进行线性回归,此时得到的回归系数就能反映对应自变量的重要程度。这时的回归方程称为标准回归方程,回归系数称为标准回归系数,表示如下:
在这里插入图片描述
由于都化成了标准分,所以就不再有常数项 a 了,因为各自变量都取平均水平时,因变量也应该取平均水平,而平均水平正好对应标准分 0 ,当等式两端的变量都取 0 时,常数项也就为 0 了。多元线性回归与一元线性回归类似,可以用最小二乘法估计模型参数,也需对模型及模型参数进行统计检验,选择合适的自变量是正确进行多元回归预测的前提之一,多元回归模型自变量的选择可以利用变量之间的相关矩阵来解决。

2.估计方法

(1)普通最小二乘法普通最小二乘法(Ordinary Least Square, OLS)通过最小化误差的平方和寻找最佳函数。通过矩阵运算求解系数矩阵:
在这里插入图片描述
2.广义最小二乘法广义最小二乘法(Generalized Least Square)是普通最小二乘法的拓展,它允许在误差项存在异方差或自相关,或二者皆有时获得有效的系数估计值。公式:在这里插入图片描述

其中,Ω是残差项的协方差矩阵。

3.公式

在这里插入图片描述

二、用Excel预估房价

1.对数据进行处理,删除重复项和无关数据项,保留房子面积、房间数、洗漱间数和价钱四项基本数据,价钱作为因变量其余作为自变量。
在这里插入图片描述

(2)选择数据进行回归分析
在这里插入图片描述
(3)建立新工作表得到回归结果
在这里插入图片描述
在这里插入图片描述
从回归结果中可以看到x和y是成正比的,由表中P-value的值可以发现,area的P值远小于显著性水平0.05,与y相关性较强。bedrooms和bathrooms的P值大于显著性水平0.05,这两个自变量与y相关性较弱。线性回归模型:y= 10072.1070467272+ 345.911018840024x1 -2925.80632466665x2+7345.39171369362x3实现对未来房价的预测。

三、在jupyter中使用sklearn库实现房价预测

1、线性回归

(1)上传文件
在这里插入图片描述
(2)new python3,输入命令

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from mpl_toolkits.mplot3d import Axes3D  # 不要去掉这个import
from sklearn.metrics import mean_squared_error, r2_score
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

点击run,然后再输入命令

df = pd.read_csv('house_prices.csv')
df.info()#显示列名和数据类型类型
df.head(7)

显示列名和数据类型
(这里可能有一个错误提示:name ‘pd’ is not defined,在读取文件中加入import pandas as pd
在这里插入图片描述

(3)读取数据

# 读取数据
data_x=df[['area','bedrooms','bathrooms']]
data_y=df['price']

(4)训练模

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值