量化投资学习笔记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数据集,研究油耗与哪些因素有关?
建模思路:
确定对因变量可能有影响的自变量。
假设自变量与因变量呈线性关系,建立线性回归模型。
对模型进行评估和检验
调整优化模型
判断模型中是否存在多重共线性,有则处理
利用回归方程进行预测,并利用预测的残差分析模型的假设。
下面实操

1
2
3
4
5
6
7
8
9
10
11
12
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/
我的微信个人订阅号:赵瑜敏的口腔医学学习园地

欢迎打赏!感谢支持!