多元线性回归和Python应用举例
1. 与简单线性回归区别(simple linear regression)
多个自变量(x)
2. 多元回归模型
y=β0+β1x1+β2x2+ ... +βpxp+ε
其中:β0,β1,β2... βp是参数
ε是误差值
3. 多元回归方程
E(y)=β0+β1x1+β2x2+ ... +βpxp
4. 估计多元回归方程:
y_hat=b0+b1x1+b2x2+ ... +bpxp
一个样本被用来计算β
0,β
1,β
2... β
p的点估计b
0, b
1, b
2,..., b
p
5. 估计流程 (与简单线性回归类似)
6. 估计方法
使sum of squares最小
运算与简单线性回归类似,涉及到线性代数和矩阵代数的运算
7. 例子
一家快递公司送货:X1: 运输里程
X2: 运输次数 Y:总运输时间
Time = b0+ b1*Miles + b2 * Deliveries
Time = -0.869 + 0.0611 Miles + 0.923 Deliveries
8. 描述参数含义
b0: 平均每多运送一英里,运输时间延长
0.0611 小时
b1: 平均每多一次运输,运输时间延长
0.923 小时
9. 预测
如果一个运输任务是跑102英里,运输6次,预计多少小时?
Time = -
0.869
+
0.0611
*
102
+
0.923
*
6
= 10.9 (小时)
10. 如果自变量中有分类型变量(categorical data) , 如何处理?
英里数 | 次数 | 车型 | 时间 |
100 | 4 | 1 | 9.3 |
50 | 3 | 0 | 4.8 |
100 | 4 | 1 | 8.9 |
100 | 2 | 2 | 6.5 |
50 | 2 | 2 | 4.2 |
80 | 2 | 1 | 6.2 |
75 | 3 | 1 | 7.4 |
65 | 4 | 0 | 6 |
90 | 3 | 0 | 7.6 |
11. 关于误差的分布
误差
ε是一个随机变量,均值为0
ε的方差对于所有的自变量来说相等
所有
ε的值是独立的
ε满足正态分布,并且
通过
β
0
+β
1
x
1
+β
2
x
2
+ ... +β
p
x
p
反映y的期望值
数据:
100,4,9.3
50,3,4.8
100,4,8.9
100,2,6.5
50,3,4.8
100,4,8.9
100,2,6.5
Python核心代码:
lr = linear_model.LinearRegression()
lr.fit(x, y)
xPredict = [102,6]
yPredict = lr.predict(xPredict)
2. 带分类的:
数据:
75,3,0,1,0,7.4
65,4,1,0,0,6
90,3,1,0,0,7.6
90,2,0,0,1,6.1
65,4,1,0,0,6
90,3,1,0,0,7.6
90,2,0,0,1,6.1
Python核心代码:
mlr = linear_model.LinearRegression()
mlr.fit(x, y)
xPredict = [90,2,0,0,1]
yPredict = mlr.predict(xPredict)