天天看點

多元回歸分析(multiple regression)及其應用

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的點估計b0, b1, b2,…, bp

5. 估計流程 (與簡單線性回歸類似)

多元回歸分析(multiple regression)及其應用

6. 估計方法

使sum of squares最小

多元回歸分析(multiple regression)及其應用

運算與簡單線性回歸類似,涉及到線性代數和矩陣代數的運算

7. 例子

一家快遞公司送貨:X1: 運輸裡程 X2: 運輸次數 Y:總運輸時間
多元回歸分析(multiple regression)及其應用

目的,求出b0, b1,…. bp:

y_hat=b0+b1x1+b2x2+ … +bpxp

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) , 如何處理?

多元回歸分析(multiple regression)及其應用

11. 關于誤差的分布

誤差ε是一個随機變量,均值為0

ε的方差對于所有的自變量來說相等

所有ε的值是獨立的

ε滿足正态分布,并且通過β0+β1x1+β2x2+ … +βpxp反映y的期望值

# -*- coding:utf-8 -*-
from numpy import genfromtxt
from sklearn import linear_model
# genfromtxt函數
#  genfromtxt函數建立數組表格資料
#  genfromtxt主要執行兩個循環運算。第一個循環将檔案的每一行轉換成字元串序列。第二個循環将每個字元串序列轉換為相應的資料類型。
#  genfromtxt能夠考慮缺失的資料,但其他更快和更簡單的函數像loadtxt不能考慮缺失值。
#  詳細用法參考:https://docs.scipy.org/doc/numpy/reference/generated/numpy.genfromtxt.html
#  附加numpy.savetxt該函數能夠将資料存儲為 CSV 格式:https://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html

datapath=r"Delivery_Dummy.csv"
data = genfromtxt(datapath,delimiter=",")
#delimiter: the str used to separate data. 橫縱坐标以 ',' 分割,是以給 delimiter 傳入 ','。delimiter是區分橫縱坐标的
# skip_header: the number of lines to skip at the beginning of the file. 這個參數是跳過表頭資訊的

x = data[:,:-]
y = data[:,-]
print x
print y

mlr = linear_model.LinearRegression()

mlr.fit(x, y)

print mlr
print "coef:"
print mlr.coef_
print "intercept"
print mlr.intercept_

xPredict =  [,,,,]
yPredict = mlr.predict(xPredict)

print "predict:"
print yPredict