Python 中的多重回归(带因子选择)

Posted

技术标签:

【中文标题】Python 中的多重回归(带因子选择)【英文标题】:Multiple Regression in Python (with Factor Selection) 【发布时间】:2016-12-29 05:41:04 【问题描述】:

我读过的关于 Python 中的多重回归的所有线程大多都推荐 Statsmodels 中的 OLS 函数。这是我遇到的问题,我试图通过将其回报与可以解释该基金回报的 14 个自变量进行回归来解释基金的回报(HYFAX 以绿色突出显示)。这应该有一个显着的 F 检验,并在经过因子的逐步迭代后吐出具有最高调整 R 平方的最佳拟合模型。有没有办法在python中做到这一点?

Fund returns vs Factors

【问题讨论】:

【参考方案1】:

听起来您只是想查看模型拟合的结果。下面是一个带有 1 个预测器的示例,但可以轻松扩展到 14 个:

导入 statsmodels 并指定您要构建的模型(这是您要包含 14 个预测变量的地方):

import statsmodels.api as sm

#read in your data however you want and assign your y, x1...x14 variables

model = sm.OLS(x, y)

拟合模型:

results = model.fit()

现在只需显示您的模型拟合的摘要:

print(results.summary())

这将为您提供调整后的 R 平方值、F 检验值、β 权重等。应该如下所示:

                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      x   R-squared:                       0.601
Model:                            OLS   Adj. R-squared:                  0.594
Method:                 Least Squares   F-statistic:                     87.38
Date:                Wed, 24 Aug 2016   Prob (F-statistic):           3.56e-13
Time:                        19:51:25   Log-Likelihood:                -301.81
No. Observations:                  59   AIC:                             605.6
Df Residuals:                      58   BIC:                             607.7
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [95.0% Conf. Int.]
------------------------------------------------------------------------------
y              0.8095      0.087      9.348      0.000         0.636     0.983
==============================================================================
Omnibus:                        0.119   Durbin-Watson:                   1.607
Prob(Omnibus):                  0.942   Jarque-Bera (JB):                0.178
Skew:                          -0.099   Prob(JB):                        0.915
Kurtosis:                       2.818   Cond. No.                         1.00
==============================================================================

【讨论】:

以上是关于Python 中的多重回归(带因子选择)的主要内容,如果未能解决你的问题,请参考以下文章

简单来说,为啥二元结果回归模型没有 VIF?

蛮力是使用 Python 进行多重回归的最佳选择吗?

带假人的时间序列变量的多重回归

第四篇[机器学习] 机器学习,线性回归的优化

SPSS中因子分析中有个选择变量和变量是啥区别,举例说明一下,谢谢各位

看R语言建立回归分析,如何利用VIF查看共线性问题