一、前言
(一)理论基础
多元线性回归适用于受多种因素影响的数据进行分析的场景,而市场的房价走向恰好受到多种因素影响。所以用多元线性回归得到多个自变量的最优组合来预测房价或估计它的因变量会更加有效,更加符合实际。
(二)多元线性回归模型
在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。因此多元线性回归比一元线性回归的实用意义更大。
多元线性回归模型,(multivariable linear regression model )在实际经济问题中,一个变量往往受到多个变量的影响。例如,家庭消费支出,除了受家庭可支配收入的影响外,还受诸如家庭所有的财富、物价水平、金融机构存款利息等多种因素的影响。
(三)线性回归理论基础
一元线性回归是分析只有一个自变量(自变量x和因变量y)线性相关关系的方法。一元线性回归分析的数学模型为:y = a+bx+ε。
使用偏差平方和分别对参数a和参数b求偏导,可以得到线性模型的未知参数a、b的最小二乘估计值,其中,偏差平方和定义为∑(yi-a-bXi)2,a和b的唯一解如下图所示
为了方便回归效果显著性检验,根据b的估计,引入LXX、LYY、LXY三个数学符号,这三个数学符号定义如下图所示。
而在现实应用中,因变量的变化往往受多个自变量影响,此时就需要用到两个或两个以上的因素作为自变量来解释因变量的变化,这就叫做多元回归。也就是说,多元线性回归就是当多个自变量与因变量之间是线性关系时,所进行的回归就是多元线性回归。它的数学模型便是:y=β0+β1X1+β2X2+…+βpXp+ε
再使用残差平方和分别对参数βi求偏导,可得到线性模型的未知参数βi的估计值。
二、EXCEL求解回归方程
导入房价数据集
选择其中的area,bathroom,bedroom中的20组数据作为x,以对应的20组房价作为y。
可以看到结果如下
再次选择不同组别的数据进行生成图表
40组:
全部数据
三、用机器学习库Sklearn库重做上面的多元线性回归
直接求解:
导入Sklearn库并读取数据文件:
import pandas as pd
import numpy as np
import math
import matplotlib.pyplot as plt
from sklearn import linear_model
data = pd.read_csv('house_prices.csv')
data.head()
结果:
去除id这一列非变量:
new_data=data.iloc[:,1:]
new_data.head()
new_data.corr()
然后取area,bedrooms和bathrooms为X轴,price为Y轴进行线性回归求解。
x_data = new_data.iloc[:, 1:4] #are、bedrooms、bathroom对应列
y_data = new_data.iloc[:, -1] #price对应列
print(x_data, y_data, len(x_data))
取出结果
# 应用模型
model = linear_model.LinearRegression()
model.fit(x_data, y_data)
print("回归系数:", model.coef_)
print("截距:", model.intercept_)
print('回归方程: price=',model.coef_[0],'*area +',model.coef_[1],'*bedrooms +',model.coef_[2],'*bathromms +',model.intercept_)
可以看到在使用sklearn重做之后的线性回归为
price= 345.9110188400239 *area + -2925.8063246667703 *bedrooms + 7345.39171369394 *bathromms + 10072.107046726975