«ValueError: формы не выровнены» при выполнении регрессии OLS в DataFrame

avatar
Nazmul Islam
7 апреля 2018 в 23:36
2549
1
2

Я пытался запустить регрессию OLS на имеющемся у меня DataFrame, но получил следующую ошибку:

ValueError: фигуры (48,34) и (48,34) не выровнены: 34 (тусклый 1) != 48 (тусклый 0)

Я не знаю, как исправить выравнивание. Я включил код OLS, который пытался запустить, и изображение вывода DataFrame. Весь DataFrame состоит из 4 столбцов и 48 строк.

DataFrame output

import numpy as np
import statsmodels.formula.api as sm
result = sm.ols(formula="price ~ ownership + shipping + title", data=sold1).fit()
result.summary()
Источник
meyj
8 апреля 2018 в 03:41
0

@nazul sold1 уже является фреймворком данных? можете поделиться формой, используйте np.shape(sold1)

Josef
8 апреля 2018 в 13:04
2

проверьте dtypes вашего фрейма данных. Он должен быть числовым, за исключением категориальных переменных. Я предполагаю, что ваш ценовой столбец представляет собой строки/объект.

Ответы (1)

avatar
Som Dubey
12 мая 2020 в 10:58
1

Возникла аналогичная проблема при выполнении линейной регрессии в цикле для расчета vif для факторов. Как упоминал Йозеф в комментариях, причина была в том, что у меня есть два столбца как «объект», а остальные были «int». Удалил эти два столбца «Объект», и все заработало.