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, из-за которого возникла неполная проблема ранга, ошибка будет исправлена.