1. 與簡單線性回歸區(qū)別(simple linear regression)
多個自變量(x)
2. 多元回歸模型
y=β0+β1x1+β2x2+ ... +βpxp+ε
其中:β0省容,β1抖拴,β2... βp是參數(shù)
ε是誤差值
- 多元回歸方程
E(y)=β0+β1x1+β2x2+ ... +βpxp
- 估計多元回歸方程:
y_hat=b0+b1x1+b2x2+ ... +bpxp
一個樣本被用來計算β0,β1腥椒,β2... βp的點估計b0, b1, b2,..., bp
5. 估計流程 (與簡單線性回歸類似)
6. 估計方法
使sum of squares最小
運算與簡單線性回歸類似阿宅,涉及到線性代數(shù)和矩陣代數(shù)的運算
7. 例子
一家快遞公司送貨:X1: 運輸里程 X2: 運輸次數(shù) Y:總運輸時間
Time = b0+ b1*Miles + b2 * Deliveries
Time = -0.869 + 0.0611 Miles + 0.923 Deliveries
8. 描述參數(shù)含義
b0: 平均每多運送一英里,運輸時間延長0.0611 小時
b1: 平均每多一次運輸笼蛛,運輸時間延長 0.923 小時
9. 預測
如果一個運輸任務(wù)是跑102英里洒放,運輸6次,預計多少小時滨砍?
Time = -0.869 +0.0611 *102+ 0.923 * 6 = 10.9 (小時)
10. 如果自變量中有分類型變量(categorical data) , 如何處理往湿?
| 英里數(shù) | 次數(shù) | 車型 | 時間 |
| 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. 關(guān)于誤差的分布
誤差ε是一個隨機變量,均值為0
ε的方差對于所有的自變量來說相等
所有ε的值是獨立的
ε滿足正態(tài)分布惋戏,并且通過β0+β1x1+β2x2+ ... +βpxp反映y的期望值
1. 例子
一家快遞公司送貨:X1: 運輸里程 X2: 運輸次數(shù) Y:總運輸時間
目的领追,求出b0, b1,.... bp:
y_hat=b0+b1x1+b2x2+ ... +bpxp
2. Python實現(xiàn):
- 代碼:
from numpy import genfromtxt
import numpy as np
from sklearn import datasets, linear_model
dataPath = "Delivery.csv"
deliveryData = genfromtxt(dataPath, delimiter=',')
print("data")
print(deliveryData)
X = deliveryData[:, :-1] # 取所有行,第一列 到 倒數(shù)第二列
Y = deliveryData[:, -1] # 取所有行响逢,倒數(shù)第二列
print("X:")
print(X)
print("Y: ")
print(Y)
# 建立線性回歸模型
regr = linear_model.LinearRegression()
regr.fit(X, Y)
print("coefficients") # 打印 b0 b1
print(regr.coef_)
print("intercept: ")
print(regr.intercept_)
xPred = [102, 6]
yPred = regr.predict(np.array(xPred).reshape(1, -1))
print("predicted y: ")
print(yPred)
- 運行結(jié)果
data
[[100. 4. 9.3]
[ 50. 3. 4.8]
[100. 4. 8.9]
[100. 2. 6.5]
[ 50. 2. 4.2]
[ 80. 2. 6.2]
[ 75. 3. 7.4]
[ 65. 4. 6. ]
[ 90. 3. 7.6]
[ 90. 2. 6.1]]
X:
[[100. 4.]
[ 50. 3.]
[100. 4.]
[100. 2.]
[ 50. 2.]
[ 80. 2.]
[ 75. 3.]
[ 65. 4.]
[ 90. 3.]
[ 90. 2.]]
Y:
[9.3 4.8 8.9 6.5 4.2 6.2 7.4 6. 7.6 6.1]
coefficients
[0.0611346 0.92342537]
intercept:
-0.8687014667817126
predicted y:
[10.90757981]