1. 程式人生 > >量化投資學習筆記16——迴歸分析:多元線性迴歸

量化投資學習筆記16——迴歸分析:多元線性迴歸

理論模型 y = β0 + β1x1 + β2x2 + … + βpxp + ε
意義與一元線性迴歸相同。
E(y) = E(β0 + β1x1 + β2x2 + … + βpxp + ε) =>
y = β0 + β1x1 + β2x2 + … + βpxp
列線性方程組
y1 = β0 + β1x11 + β2x12 + … + βpx1p + ε1
y2 = β0 + β1x21 + β2x22 + … + βpx2p + ε2
……
yn = β0 + β1xn1 + β2xn2 + … + βpxnp + εn
寫成矩陣形式
y = [y1, y2, …, yn]'
β = [β1, β2, …, βn]'
ε = [ε1, ε2, …, εn]'
以此類推。
矩陣形式為y = βx + ε
引數估計:最小二乘法
與一元線性迴歸類似。
引數估計:最大似然估計
模型檢驗等也與一元線性迴歸類似。
由於有多個自變數,其單位和取值相差可能很大,要進行標準化。方法是進行中心化,將原點放到樣本中心。
相關矩:相當於一元線性迴歸的相關係數。
下面實操,用mtcars資料集,研究油耗與哪些因素有關?
建模思路:
確定對因變數可能有影響的自變數。
假設自變數與因變數呈線性關係,建立線性迴歸模型。
對模型進行評估和檢驗
調整優化模型
判斷模型中是否存在多重共線性,有則處理
利用迴歸方程進行預測,並利用預測的殘差分析模型的假設。
下面實操
data = pd.read_csv("mtcars.csv")
print(data.head(), data.describe(), data.columns)
col = data.columns
print(col[1], col[2:].values)
Y = data[col[1]]
X = data[col[2:].values]
print(X, Y)

X = sm.add_constant(X)
print(X.head())
model = sm.OLS(Y, X).fit()
print(model.summary())
耗油量為因變數,其餘變數為自變數,做多元線性迴歸。結果為:
OLS Regression Results =====================================Dep. Variable: mpg
R-squared: 0.869 Model: OLS
Adj. R-squared: 0.807 Method: Least Squares
F-statistic: 13.93 Date: Sat, 15 Feb 2020
Prob (F-statistic): 3.79e-07 Time: 23:19:36
Log-Likelihood: -69.855
No. Observations: 32 AIC: 161.7
Df Residuals: 21 BIC: 177.8
Df Model: 10 Covariance Type: nonrobust ===================================== coef std err t P>|t| [0.025 0.975]
-------------------------------------------------------------------------
const 12.3034 18.718 0.657 0.518 -26.623 51.229
cyl -0.1114 1.045 -0.107 0.916 -2.285 2.062 disp 0.0133 0.018 0.747 0.463 -0.024 0.050 hp -0.0215 0.022 -0.987 0.335 -0.067 0.024 drat 0.7871 1.635 0.481 0.635 -2.614 4.188
wt -3.7153 1.894 -1.961 0.063 -7.655 0.224 qsec 0.8210 0.731 1.123 0.274 -0.699 2.341 vs 0.3178 2.105 0.151 0.881 -4.059 4.694
am 2.5202 2.057 1.225 0.234 -1.757 6.797 gear 0.6554 1.493 0.439 0.665 -2.450 3.761 carb -0.1994 0.829 -0.241 0.812 -1.923 1.524
=====================================Omnibus: 1.907
Durbin-Watson: 1.861
Prob(Omnibus): 0.385
Jarque-Bera (JB): 1.747
Skew: 0.521
Prob(JB): 0.418
Kurtosis: 2.526
Cond. No. 1.22e+04 =====================================
模型的R²值為0.869,迴歸方程有效性F檢驗概率值為3.79e-07,還不錯。但是看具體每個自變數的迴歸係數的有效性t檢驗,p值都大於0.05,有問題。
本文程式碼: https://github.com/zwdnet/MyQuant/tree/master/16

我發文章的四個地方,歡迎大家在朋友圈等地方分享,歡迎點“在看”。
我的個人部落格地址:https://zwdnet.github.io
我的知乎文章地址: https://www.zhihu.com/people/zhao-you-min/posts
我的部落格園部落格地址: https://www.cnblogs.com/zwdnet/
我的微信個人訂閱號:趙瑜敏的口腔醫學學習園