Statsmodel пропускает значение в логистической регрессии? - PullRequest
0 голосов
/ 01 октября 2018

Я построил полиномиальную регрессию с scikit_learn, все работало нормально.Затем я попытался использовать те же данные с statsmodel, поскольку они обеспечивают более глубокое понимание, и кажется, что пропускается первое значение y.Любые идеи о том, что я, возможно, сделал неправильно?

У меня есть 6 переменных in_X и 7 возможных результатов in_y (от y = 1 до y = 7), но statsmodel возвращает только 6 коэффициентов.

Когда я печатаю print(result.summary()), журнал начинается с y = 2

Вот форма данных:

in_y.value_counts()
>>>
3    295
4    154
5    125
2     86
6     28
1      5
7      3
Name: y, dtype: int64

in_X.head()
>>>
    ENTERPRISE_VALUE_   SALES_GROWTH_   EBIT_TO_INT_EXP_    NET_DEBT_TO_EBITDA_ RETURN_COM_EQY_ CASH_RATIO_
918 4.0 4.0 4.0 4.0 5.0 4.0
344 6.0 3.0 4.0 4.0 4.0 6.0
348 5.0 3.0 3.0 5.0 3.0 6.0
906 4.0 5.0 4.0 4.0 4.0 4.0
80  3.0 4.0 4.0 4.0 4.0 4.0

(696, 6)

Код:

import pandas as pd
import statsmodels.discrete.discrete_model as sm

    logit_model = sm.MNLogit(in_y, in_X)
    result = logit_model.fit()

    # Results analysis
    print(result.summary())
    out1 = result.params

out1

0   1   2   3   4   5
ENTERPRISE_VALUE_   -0.228684   -1.274831   -2.546053   -3.440249   -3.602911   -3.822631
SALES_GROWTH_   0.553498    0.706551    1.399920    1.675287    1.646694    1.152329
EBIT_TO_INT_EXP_    -0.036777   -0.304586   -0.895444   -1.351096   -1.614823   -0.593286
NET_DEBT_TO_EBITDA_ 0.772482    1.690700    2.106280    2.881484    3.524116    4.281756
RETURN_COM_EQY_ -0.053659   0.269994    0.487565    0.653377    0.228949    -1.413008
CASH_RATIO_ -0.035479   0.399930    0.808460    0.722607    0.263178    -0.502091

Итоговый результат:

Logit Regression Results                          
==============================================================================
Dep. Variable:                      y   No. Observations:                  696
Model:                        MNLogit   Df Residuals:                      660
Method:                           MLE   Df Model:                           30
Date:                Mon, 01 Oct 2018   Pseudo R-squ.:                  0.2390
Time:                        12:09:15   Log-Likelihood:                -769.38
converged:                       True   LL-Null:                       -1011.0
                                        LLR p-value:                 3.400e-83
=======================================================================================
                y=2       coef    std err          z      P>|z|      [0.025      0.975]
---------------------------------------------------------------------------------------
[...]

1 Ответ

0 голосов
/ 01 октября 2018

Нам нужно отбросить одну из категорий в качестве справочной категории из-за ограничения, которое вероятности должны добавлять к 1. Таким образом, с учетом других параметров вероятность для справочной категории равна только одной минус некоторые из нереферентных вероятностей..

Это то же самое, что и для модели Logit, где мы можем оценить только один набор параметров, например, для вероятности успеха, вероятности второго двоичного выбора, например, вероятность сбоя составляет всего один минус.вероятность успеха.

В обоих случаях прогноз переменной отклика будет двоичной или полиномиальной вероятностью, которая должна удовлетворять ограничениям для вероятностей, то есть значениям от нуля до единицы и добавлению к единице.

...