Как улучшить модель SARIMAX, чтобы прогноз был более точным?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как улучшить модель SARIMAX, чтобы прогноз был более точным?

Сообщение Anonymous »

Моя цель — спрогнозировать продажи продукта на конец месяца, используя модель SARIMAX. Указанный набор данных представляет собой ежедневную дату с соответствующими продажами на каждую дату. Похоже, что набор данных имеет ежемесячную сезонность (и годовую сезонность, но об этом речь пойдет позже). Более того, у меня также есть будние дни в качестве экзогенной переменной, так как по выходным продаж не будет (продажи = 0).
набор данных
график набора данных
набор данных
график набора данных
набор данных
график набора данных
p>
Seasonal_decompose
Сначала я проверил стационарность данных с помощью теста Дики Фуллера и получил значение p как 0,000002, что меньше 0,05, следовательно, данные стационарный. Поэтому я попытался найти p,d,q и P,D,Q, используя autoarima из pmarima с m=30.

Код: Выделить всё

import pmdarima as pm

SARIMA_model = pm.auto_arima(df['Premium'].iloc[0:911], start_p=1, start_q=1,
test='adf',
max_p=3, max_q=3,
m=30,
start_P=0,
seasonal=True,
d=None,
D=1,
trace=False,
error_action= 'ignore',
suppress_warnings=True,
stepwise=True)
Я получил order=(2,0,0), Seasonal_order=(2,1,0,30) с AIC = 21569,538 и BIC = 21591,946.
Затем я тренировался и использовал модель для прогнозирования на тестовом наборе, я получил MAPE как 127.722, ошибку MSE: 1.132537192e+13 и
ошибку RMSE: 3365318.993.
Прогноз SARIMA (2,0 ,0),(2,1,0,30)
После этого я попытался улучшить его, включив экзогенную переменную в качестве дней недели.

Код: Выделить всё

exog=train['Weekday_detect']
Я использовал SARIMAX(2, 0, 0)x(2, 1, 0, 30) с AIC = 22177,846 и BIC = 22218,492. -> как-то хуже, чем модель SARIMA
Предсказание SARIMAX (2,0,0)x(2,1,0,30)
Я получил MAPE = 172.365, ошибка MSE: 1.2762327619e+13 и ошибка RMSE: 3.5724400092e+06.
Поэтому мой вопрос - где это могло пойти не так, имея не совсем-плохое- оранжевые линии прогнозирования по сравнению с невероятно большими MAPE, MSE и RMSE? Что является причиной таких больших цифр? Как я могу улучшить эту модель, чтобы она была более точной? Может ли быть причиной этого годовая сезонность, о которой я здесь не упомянул?
И как подойти к включению годовой сезонности в эту модель?

Подробнее здесь: https://stackoverflow.com/questions/787 ... e-accurate
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Season_order в statsmodels.tsa.statespace.sarimax.SARIMAX для ежедневных данных
    Anonymous » » в форуме Python
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • При вращении объекта вокруг целевого объекта радиус не выглядит очень точным на 100%. как сделать радиус точным?
    Anonymous » » в форуме C#
    0 Ответы
    95 Просмотры
    Последнее сообщение Anonymous
  • Могу ли я улучшить прогноз своей модели намного больше?
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как улучшить прогноз осадков, когда большинство значений в наборе данных равны нулю?
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • SARIMA и SARIMAX определяют длину прогноза и длину ввода
    Гость » » в форуме Python
    0 Ответы
    110 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»