Ошибка значения с использованием Patsy для модели логистической регрессии

#python #logistic-regression #predict #patsy

#python #логистическая регрессия #прогнозировать #простофиля

Вопрос:

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

 import patsy
import pandas as pd
import statsmodels.api as sm

df = pd.DataFrame()

for i in range(5):
    df.at[i, 'response'] = 1
    if i == 3:
        df.at[i,'response'] = 0

df['x'] = range(5)

y, X = patsy.dmatrices('response ~ x', df,return_type = 'dataframe')
logit_model=sm.Logit(y,X)
result=logit_model.fit()

ypred = logit_model.predict(X)
print(ypred)
 

Пожалуйста, извините за мой дерьмовый код, я пишу это в спешке — нужно идти на работу, ха-ха. Этот код выдает ошибку значения — ValueError: фигуры (5,2) и (5,2) не выровнены: 2 (dim 1) != 5 (dim 0) около строки 18.

Я искренне не понимаю, как они не выровнены, поскольку я просто передаю данные поезда X обратно в модель, используя predict() . У меня такое чувство, что я что-то упускаю в patsy.dmatrices.

У кого-нибудь есть идея?

Комментарии:

1. Я не могу воспроизвести вашу ошибку. я использую statsmodels 0.12.0

2. Я использую statsmodels 0.12.1

3. просто понял, что я идиот, и это должно быть ypred = result.predict(X)

Ответ №1:

Вы назначили подогнанный объект result , поэтому вы должны использовать это для прогнозирования:

 result.predict(X)
 

Чтобы получить установленные значения, вы также можете сделать:

 result.fittedvalues