Ошибка значения: фигуры (259,2) и (1,33) не выровнены: 2 (dim 1) != 1 (dim 0)

#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 в нижнем регистре. Мои усталые глаза этого не заметили. Спасибо, что разоблачили мое невнимание к деталям.