Python Statsmodels QuantReg拦截

时间:2015-10-10 05:25:47

标签: python regression statsmodels quantile

问题设置statsmodels Quantile Regression问题中,它们的最小绝对偏差摘要输出显示截距。在该示例中,他们使用公式

from __future__ import print_function
import patsy
import numpy as np
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as smf
import matplotlib.pyplot as plt
from statsmodels.regression.quantile_regression import QuantReg

data = sm.datasets.engel.load_pandas().data

mod = smf.quantreg('foodexp ~ income', data)
res = mod.fit(q=.5)
print(res.summary())

                         QuantReg Regression Results                          
==============================================================================
Dep. Variable:                foodexp   Pseudo R-squared:               0.6206
Model:                       QuantReg   Bandwidth:                       64.51
Method:                 Least Squares   Sparsity:                        209.3
Date:                Fri, 09 Oct 2015   No. Observations:                  235
Time:                        15:44:23   Df Residuals:                      233
                                        Df Model:                            1
==============================================================================
                 coef    std err          t      P>|t|      [95.0% Conf. Int.]
------------------------------------------------------------------------------
Intercept     81.4823     14.634      5.568      0.000        52.649   110.315
income         0.5602      0.013     42.516      0.000         0.534     0.586
==============================================================================

The condition number is large, 2.38e+03. This might indicate that there are
strong multicollinearity or other numerical problems.

问题

如何使用Intercept 使用statsmodels.formula.api as smf公式方法,使用from __future__ import print_function import patsy import numpy as np import pandas as pd import statsmodels.api as sm import matplotlib.pyplot as plt from statsmodels.regression.quantile_regression import QuantReg data = sm.datasets.engel.load_pandas().data data = sm.add_constant(data) mod = QuantReg(data['foodexp'], data[['const', 'income']]) res = mod.fit(q=.5) print(res.summary()) QuantReg Regression Results ============================================================================== Dep. Variable: foodexp Pseudo R-squared: 0.6206 Model: QuantReg Bandwidth: 64.51 Method: Least Squares Sparsity: 209.3 Date: Fri, 09 Oct 2015 No. Observations: 235 Time: 22:24:47 Df Residuals: 233 Df Model: 1 ============================================================================== coef std err t P>|t| [95.0% Conf. Int.] ------------------------------------------------------------------------------ const 81.4823 14.634 5.568 0.000 52.649 110.315 income 0.5602 0.013 42.516 0.000 0.534 0.586 ============================================================================== The condition number is large, 2.38e+03. This might indicate that there are strong multicollinearity or other numerical problems. 获得摘要输出?

1 个答案:

答案 0 :(得分:6)

当然,当我把这个问题放在一起时,我想出来了。我会分享,而不是删除它,以防有人在那里遇到过这种情况。

我怀疑,我需要add_constant(),但我不确定如何。我正在做一些愚蠢的事情并将常量添加到Y(endog)变量而不是X(exog)变量。

答案

add_constant()

作为一个仅供参考,我觉得有趣的是1只会在您的数据中添加一列add_constant() s。有关{{1}}的更多信息可以是found here