Statsmodels OLS线性回归 - 为什么我有多个回归参数?

时间:2017-08-16 15:20:30

标签: python statsmodels

我正在执行线性回归以拟合y = x + c1 + c2 + c3 + c4 + ... + cn(c1..cn是协变量)。

输出摘要结果后会发生奇怪的事情,我不确定为什么会这样:

    OLS Regression Results                            
==============================================================================
Dep. Variable:                   pgrs   R-squared:                       0.038
Model:                            OLS   Adj. R-squared:                 -0.012
Method:                 Least Squares   F-statistic:                    0.7565
Date:                Wed, 16 Aug 2017   Prob (F-statistic):              0.716
Time:                        11:12:02   Log-Likelihood:                -18.623
No. Observations:                 284   AIC:                             67.25
Df Residuals:                     269   BIC:                             122.0
Df Model:                          14                                         
Covariance Type:            nonrobust                                         
================================================================================
                   coef    std err          t      P>|t|      [0.025      0.975]
--------------------------------------------------------------------------------
Intercept        0.5331      0.272      1.957      0.051      -0.003       1.069
x[T.0]    -0.2568      0.327     -0.786      0.433      -0.900       0.387
x[T.1]    -0.0574      0.280     -0.205      0.837      -0.608       0.493
x[T.2]    -0.1556      0.277     -0.562      0.575      -0.701       0.390
x[T.3]     0.0182      0.273      0.067      0.947      -0.519       0.555
x[T.4]    -0.0114      0.271     -0.042      0.967      -0.545       0.523
x[T.5]     0.0067      0.272      0.025      0.980      -0.529       0.542
x[T.6]    -0.0321      0.269     -0.119      0.905      -0.562       0.498
x[T.7]     0.0262      0.271      0.097      0.923      -0.507       0.559
x[T.8]    -0.0542      0.270     -0.200      0.841      -0.586       0.478
x[T.9]    -0.0529      0.272     -0.195      0.846      -0.588       0.482
c1           0.0625      0.039      1.615      0.107      -0.014       0.139
c2           -0.0016      0.007     -0.219      0.827      -0.016       0.013
c3              0.2052      0.356      0.576      0.565      -0.496       0.906
c4              0.0986      0.397      0.249      0.804      -0.682       0.880
==============================================================================
Omnibus:                        2.789   Durbin-Watson:                   1.865
Prob(Omnibus):                  0.248   Jarque-Bera (JB):                3.018
Skew:                          -0.000   Prob(JB):                        0.221
Kurtosis:                       3.505   Cond. No.                         525.
==============================================================================

Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

为什么我有多个x参数?当x是我的数据集中的特定要素时,这只适用于我。有没有办法解决这个问题,或者这是某种预期的行为,它是什么意思?具体来说,[T.0],...... [T.9]是什么意思吗?

我正在使用statsmodels来适应上述功能。

    # Returns a string y ~ trait + c1 + ... + cn
    f = math_expr([trait] + covariates, y)
    lm = ols(formula=f, data=df).fit()

1 个答案:

答案 0 :(得分:1)

您的数据似乎没有被解释为数字,也许数据中存在缺失值的占位符(例如'?'),这意味着整个列将被分配给字符串类型。您需要将列转换为数值,例如在导入数据帧后粘贴此代码片段:

df[column_name] = pd.to_numeric(df[column_name], errors='coerce')

第二个参数会将任何错误值(例如“?”)更改为数字NaN。