目錄
多重線性迴歸:研究一個因變量與多個自變量間線性關係的方法
1、迴歸分析的步驟:
01 根據預測目標,確定自變量和因變量
02 繪製散點圖,確定迴歸模型類型
03 估計模型參數,建立迴歸模型
04 對迴歸模型進行檢驗
迴歸方程的精度就是用來表示實際觀測點和迴歸方程的擬合程度的指標,使用判定係數來度量。
判定係數=相關係數R平方=ESS/TSS=1-RSS/TSS
其中:具體公式見圖
TSS 總離差平方和
ESS 迴歸平方和
RSS 殘差平方和
05 利用迴歸模型進行預測
2、需要滿足的條件
總結起來可用四個詞來描述:線性、獨立、正態、齊性。
(1)自變量與因變量之間存在線性關係
這可以通過繪製”散點圖矩陣”進行考察因變量隨各自變量值的變化情況。如果因變量Yi 與某個自變量X i 之間呈現出曲線趨勢,可嘗試通過變量變換予以修正,常用的變量變換方法有對數變換、倒數變換、平方根變換、平方根反正弦變換等。
(2)各觀測間相互獨立
任意兩個觀測殘差的協方差爲0 ,也就是要求自變量間不存在多重共線性問題。對於如何處理多重共線性問題,請參考《多元線性迴歸模型中多重共線性問題處理方法》
(3)殘差e 服從正態分佈N(0,σ2) 。其方差σ2 = var (ei) 反映了迴歸模型的精度, σ 越小,用所得到迴歸模型預測y的精確度愈高。
(4) e 的大小不隨所有變量取值水平的改變而改變,即方差齊性。
3、矩陣數據繪製散點圖
pandas.tools.plotting.scatter_matrix(matrix,figsize,diagonal)
matrix 矩陣
figsize 圖形大小
diagonal 爲直方圖
4、代碼實踐案例
import pandas;
import matplotlib;
from pandas.tools.plotting import scatter_matrix;
data = pandas.read_csv(
'D:\\PDM\\4.2\\data.csv'
)
font = {
'family' : 'SimHei'
}
matplotlib.rc('font', **font)
scatter_matrix(
data[["店鋪的面積", "距離最近的車站", "月營業額"]],
figsize=(10, 10), diagonal='kde'
)
data[["店鋪的面積", "距離最近的車站", "月營業額"]].corr()
x = data[["店鋪的面積", "距離最近的車站"]]
y = data[["月營業額"]]
from sklearn.linear_model import LinearRegression
#建模
lrModel = LinearRegression()
#訓練模型
lrModel.fit(x, y)
#評分
lrModel.score(x, y)
#預測
lrModel.predict([10, 110])
lrModel.predict([[10, 110],[20, 110]])
#查看參數
lrModel.coef_
#查看截距
lrModel.intercept_