Прогноз ARIMA с сезонностью и трендом, странный результат

9

Поскольку я перехожу к прогнозированию с использованием моделей ARIMA, я пытаюсь понять, как можно улучшить прогноз на основе соответствия ARIMA сезонности и отклонениям.

Мои данные представляют собой следующие временные ряды (более 3 лет, с явной тенденцией к росту и видимой сезонностью, которая, по-видимому, не поддерживается автокорреляцией при лагах 12, 24, 36 ??).

    > bal2sum3years.ts
             Jan     Feb     Mar     Apr     May     Jun     Jul     Aug          
    2010 2540346 2139440 2218652 2176167 2287778 1861061 2000102 2560729 
    2011 3119573 2704986 2594432 2362869 2509506 2434504 2680088 2689888 
    2012 3619060 3204588 2800260 2973428 2737696 2744716 3043868 2867416 
             Sep     Oct     Nov     Dec
    2010 2232261 2394644 2468479 2816287
    2011 2480940 2699780 2760268 3206372
    2012 2951516 3119176 3032960 3738256

Модель, предложенная auto.arima(bal2sum3years.ts)мной, дала мне следующую модель:

    Series: bal2sum3years.ts 
    ARIMA(0,0,0)(0,1,0)[12] with drift         

    Coefficients:
              drift
          31725.567
    s.e.   2651.693

    sigma^2 estimated as 2.43e+10:  log likelihood=-321.02
    AIC=646.04   AICc=646.61   BIC=648.39

Тем acf(bal2sum3years.ts,max.lag=35)не менее, не показывает коэффициенты акф выше 0,3. Сезонность данных, однако, довольно очевидна - всплеск в начале каждого года. Вот как выглядит серия на графике: Оригинальный временной ряд

Использование прогноза fit=Arima(bal2sum3years.ts,seasonal=list(order=c(0,1,0),period=12),include.drift=TRUE), вызванного функцией forecast(fit), приводит к тому, что средние значения следующих 12 месяцев равны последним 12 месяцам данных плюс константа. Это можно увидеть по телефону plot(forecast(fit)),

Актуальные и прогнозные данные

Я также проверил невязки, которые не имеют автокорреляции, но имеют положительное среднее значение (не ноль).

По моему мнению, подгонка не точно моделирует исходный временной ряд (синий - это временные ряды, красный - это fitted(fit):

Оригинал против пригонки

Вопрос в том, является ли модель неверной? Я что-то пропустил? Как я могу улучшить модель? Кажется, что модель буквально занимает последние 12 месяцев и добавляет константу для достижения следующих 12 месяцев.

Я относительный новичок в моделях прогнозирования временных рядов и статистике.

Zima
источник
« По моему мнению, подгонка не точно моделирует исходный временной ряд », - почему вы ожидаете этого?
Glen_b
@Glen_b, это мнение основывалось на различиях, которые я вижу, когда смотрю на сюжет. Если я пытаюсь прогнозировать, например, ежемесячные продажи для целей бухгалтерского учета, ошибка может быть значительной ...
Зима
« Различия, которые я вижу, когда смотрю на сюжет » - это еще один способ сказать « не точно моделировать временной ряд ». Это не оспаривается. Ваше выражение желания лучшего прогноза - это то же самое желание, которое есть у каждого синоптика. Во многих случаях это может быть очень важно. Тем не менее, это желание не помещает больше информации в данные. Каждая модель ARIMA - фактически любая модель временного ряда, имеющая отношение к этой задаче - имеет ненулевой термин ошибки. Там будет всегда быть несоответствие между данными и посадкой. Есть ли что-то, что заставляет вас думать, что ваша модель упустила что-то, что можно смоделировать?
Glen_b
Я только что подумал о чем-то ... Может быть, модель ARIMA действительно не способна отражать данные из-за того, что не учитывается характер данных - активность пользователей на сайте. Я думаю, что могут быть и другие события, влияющие на цифры, а не только сезонность - такие как специальные события, рекламные акции. Возможно, другие методы прогнозирования (не ARIMA), но более сложные, включающие методы машинного обучения, способны лучше прогнозировать значения. Я посмотрю на это.
Зима
Вполне правдоподобно. Если это так, вы должны быть в состоянии идентифицировать такой сбой в остатках. Обратите внимание, что как модели ARIMA, так и модели структурных временных рядов могут включать в себя такие вещи, как специальные события и рекламные акции через термины регрессии; регрессионные модели временных рядов довольно распространены.
Glen_b

Ответы:

9

I[12]

Да, действительно, предлагаемая модель «Этот июнь = последний июнь + постоянная + ошибка», и аналогично для других месяцев.

Что именно с этим не так? Кажется, это отличное описание ваших данных.

Вы можете найти декомпозицию временных рядов более интуитивно понятной и более простой для объяснения, возможно, даже нечто основанное на базовой структурной модели - модели с сезонностью - но это не обязательно подразумевает модель, которая функционирует лучше, чем та, которая у вас есть. Тем не менее, стоит попробовать одну или несколько стандартных методик декомпозиции - многое можно сказать о модели, которую вы хорошо понимаете.

Glen_b - Восстановить Монику
источник
1

Я считаю, что наша проблема в том, что мы прыгаем напрямую к модели ARIMA, не пробуя традиционные модели. по этой причине вы можете найти модель, не дающую необходимых результатов. В вашем случае я проверил ваши данные, обнаружил, что каждые 12 месяцев существует сезонность, которая вам понятна, но также я обнаружил, что простое скользящее среднее из 3 слагаемых Сезонная корректировка: мультипликативная модель - лучшая модель. На мой взгляд, мы должны попробовать традиционные алгоритмы прогнозирования, прежде чем переходить к какой-либо продвинутой технике. Прогноз на 12 месяцев для данных вопросов

Awbath
источник
1
Модель, которую вы предлагаете, представляет собой модель ARIMA вида (3,0,0) (0,0,0), где вы жестко кодируете три коэффициента: 0,333, 0,333 и 0,333 и постоянную 0,0. Таким образом, вы не только принимаете форму модели аримы, НО вы предполагаете значения коэффициентов И в серии не существует выбросов. Позвольте данным говорить самим за себя с точки зрения формы модели и оптимальных значений параметров ... вам нечего терять и много выигрывать. Если действительно ваша модель верна, то она будет найдена. Все модели аримы являются взвешенными функциями прошлого.
IrishStat
1
stats.stackexchange.com/questions/40905/… объясняет , как взвешенное моделирование и арима связаны. Таким образом, модель ARIMA может быть объяснена как ответ на вопрос, сколько исторических значений я должен использовать для вычисления взвешенной суммы прошлое? Что это за ценности?
IrishStat