QuantileRegression ValueError: операнды не могут быть переданы вместе с фигурами

Я пытаюсь спрогнозировать свою целевую переменную, используя квантильную регрессию в Python.

Данные, которые я рассматриваю для обучения и проверки, относятся к периоду 2015 г. октябрь -2017 г. 31 декабря.

Сейчас модель разработана, я пытаюсь спрогнозировать значения на январь 2018 года, которая выдает следующую ошибку:

ValueError: операнды не могут быть переданы вместе с фигурами (34,) (33,)

mod = smf.quantreg('ASBCU_SUM~Month+Year+WeekofMonth+DayNum+isHoliday+PCOP_CS+PCOP_LS+PCOP_IFS+PCOP_LSS+PCOP_FSS+PCOP_FS+DayOfWeek_6+DayOfWeek_5+DayOfWeek_2+DayOfWeek_7+DayOfWeek_3+DayOfWeek_4',dfTrainingData)

res = mod.fit(q=0.8)

Если я проверю, ошибка происходит из файла quantile regression.py внутри statmodels.

diff = np.max(np.abs(beta - beta0))

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

ASBCU_SUM: int64

Месяц: категория

Год: категория

WeekofMonth: категория

isHoliday: int64

DayNum: int32

PCOP_SUM: int64

PCOP_CS: int64

PCOP_LS: int64

PCOP_IFS: int64

PCOP_LSS: int64

PCOP_FS: int64

PCOP_FSS: int64

DayOfWeek_3: float64

DayOfWeek_2: float64

DayOfWeek_5: float64

DayOfWeek_7: float64

DayOfWeek_4: float64

DayOfWeek_6: float64

Типы данных одинаковы при разработке модели с использованием данных за 2015-2017 гг.

Я действительно ценю любую помощь..

1 ответ

Раньше я сталкивался с той же ошибкой. Проверил ответ @Josef, я обнаружил, что входная матрица не имеет полного ранга, после исправления проблемы ранга ошибка исправлена. Например, если вы запустите код ниже:

      import statsmodels.api as sm
import statsmodels.formula.api as smf
import pandas as pd
data = {'col_1': [3, 2, 1, 0], 'col_2': [0, 0, 0, 0],
        'y': [1,2,3,4]}
data = pd.DataFrame.from_dict(data)
data.head()
model =smf.quantreg("y ~ col_1 + col_2", data).fit()
print(model.summary())

Ошибка появится:

      diff = np.max(np.abs(beta - beta0))
ValueError: operands could not be broadcast together with shapes (3,)
(2,) 

Если вы удалите col_2, из-за которого возникла неполная проблема ранга, ошибка будет исправлена.

Другие вопросы по тегам