上篇文章我们详细介绍了一元线性回归模型,并通过具体案例帮助大家更好的理解线性回归。本篇文章我们将来介绍多元线性回归。
一、多元线性回归
在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。
二、多元线性回归的数学公式
y
=
β
0
+
β
1
x
1
+
β
2
x
2
+
⋯
+
β
n
x
n
+
ϵ
y=β0+β1x1+β2x2+⋯+βnxn+ϵ
y=β0+β1x1+β2x2+⋯+βnxn+ϵ
其中,y 是因变量(目标变量)。x1, x2, …, xn 是自变量(特征),n 表示自变量的数量。β0, β1, β2, …, βn 是模型的参数,其中 β0 是截距项,β1 到 β_n 是各自变量的系数。ε 是误差项,表示除线性因素外随机因素所产生的误差。
三、多元线性回归案例
其实多元线性回归与一元线性回归的差别不大,只是在多元线性回归中自变量的个数比一元线性回归的多,一元线性回归只有一个自变量。
下面我们通过代码帮助大家更清晰的认识并理解多元线性回归。
1.导入库
import pandas as pd
from sklearn.linear_model import LinearRegression
- pandas库 用于数据处理和分析。
- 从sklearn库中导入线性回归模型 LinearRegression。
2.读取数据
data = pd.read_csv("多元线性回归.csv",encoding='gbk',engine='python')
- 使用pd.read_csv函数来读取数据,数据集在下方链接中。
- encoding=‘gbk’:国家标准扩展版。增加了繁体,不论中英文都是双字节。
- 数据集展示如下:
链接: 多元线性回归.csv
3.计算关系系数矩阵
corr = data[["体重","年龄","血压收缩"]].corr()
- 从data中选取’体重’, ‘年龄’, ‘血压收缩’这三个字段,并计算它们之间的相关系数矩阵corr,了解变量之间的线性相关程度。
4.建立模型并划分数据
lr_model = LinearRegression()
x = data[['体重','年龄']]
y = data[['血压收缩']]
lr_model.fit(x,y) #训练模型
- 使用LinearRegression()函数建立线性回归模型。
- 将数据中的’体重’, ‘年龄’作为自变量x,‘血压收缩’作为因变量y。
- 使用fit()函数对模型进行训练。
5.模型评估
score = lr_model.score(x,y)
print(score)
- 计算模型的score值(也就是R²分数,即决定系数) 来评估模型的好坏。R²分数的值越接近1,说明模型的拟合效果越好。
- 模型的score值如下:
6.打印模型参数
a = lr_model.coef_
b = lr_model.intercept_
print("线性回归模型为: y = {:.2f}x1 + {:.2f}x2 + {:.2f}."
.format(a[0][0],a[0][1],b[0]))
- a表示模型的系数coef_
- b表示模型的截距intercept_
- 输出线性回归模型这里我们可以发现比上篇文章中的一元线性回归模型多了一个自变量x2,所以这里就是多元线性回归模型与一元线性回归模型的区别。
四、总结
本篇我们重点介绍了多元线性回归模型,在整个实现过程中,可以发现一元线性回归的不同之处在于自变量的个数。多元线性回归中有多个自变量,而一元线性回归只有一个自变量。希望能帮助大家更深刻的理解多元线性回归,并且明白与一元线性回归的区别。