#python #pandas #statsmodels
#python #панды #statsmodels
Вопрос:
Не понимаю, что означает эта ошибка, мои данные слишком велики для публикации, но даже уменьшенная версия (скажем, 2 столбца) выдает аналогичную ошибку. Вот код:
X = regressions[[x for x in regressions.columns if 'prev' in x]]
Y = regressions['PTSN']
X = sm.add_constant(X)
model = sm.OLS(Y,X)
fitted = model.fit()
predictions = fitted.predict(x)
print(fitted.summary())
Оба из Y и X имеют длину 252 строки, Y содержит 1 столбец, а X содержит 32 столбца. Как мне начать распутывать эту ошибку? или каково решение?
Комментарии:
1. Трудно увидеть проблему без MCVE, но можете ли вы попробовать
X = regressions[x for x in regressions.columns if 'prev' in x]
, удалив одну пару дополнительных[ ]
2. Увеличивается ли это в predict? Какой нижний регистр
x
в predict? X в predict должен иметь столбцы того же типа, что и X в модели. Покажите хотя бы соответствующие части обратной трассировки. Я предполагаю, чтоx dot params
имеет несоответствие формы, потому что вашx
прогноз неверен.3. Удаление набора скобок приводит к этой ошибке: X = регрессии [x для x в regressions.columns если ‘prev’ в x] ^ Ошибка синтаксиса: недопустимый синтаксис
4. @Josef АХ!!! Вы правы. Это был символ x в нижнем регистре. Мои усталые глаза этого не заметили. Спасибо, что разоблачили мое невнимание к деталям.