Временные ряды ARIMA Прогнозирование временных рядов Рябенко Евгений [email protected] 8 декабря 2016 г. Рябенко Евгений Временные ряды Временные ряды ARIMA Прогнозирование временного ряда Временной ряд: y1 , . . . , yT , . . . , yt ∈ R, — признак, измеренный через постоянные временные интервалы. Задача прогнозирования — найти функцию fT : yT +d ≈ fT (yT , . . . , y1 , d) ≡ ŷT +d|T , d ∈ {1, . . . , D}, D — горизонт прогнозирования. Рябенко Евгений Временные ряды Временные ряды ARIMA Главная особенность временных рядов В классических задачах анализа данных предполагается независимость наблюдений При прогнозировании временных рядов, наоборот, мы надеемся, что значения ряда в прошлом содержат информацию о его поведении в будущем Рябенко Евгений Временные ряды Временные ряды ARIMA Не i.i.d. Это явно не случайная выборка! Рябенко Евгений Временные ряды Временные ряды ARIMA Регрессия? Простейшая идея: сделать регрессию на время. Рябенко Евгений Временные ряды Временные ряды ARIMA Регрессия? Остатки не выглядят как шум: Рябенко Евгений Временные ряды Временные ряды ARIMA Компоненты временных рядов Тренд — плавное долгосрочное изменение уровня ряда. Сезонность — циклические изменения уровня ряда с постоянным периодом. Цикл — изменения уровня ряда с переменным периодом (экономические циклы, периоды солнечной активности). Ошибка — непрогнозируемая случайная компонента ряда. Рябенко Евгений Временные ряды Временные ряды ARIMA Компоненты временных рядов Количество контрактов сокровищницы США в день: Тренд Рябенко Евгений Временные ряды Временные ряды ARIMA Компоненты временных рядов Объём производства электричества в Австралии: Тренд, годовая сезонность Рябенко Евгений Временные ряды Временные ряды ARIMA Компоненты временных рядов Объём продаж жилых домов: Годовая сезонность, экономические циклы Рябенко Евгений Временные ряды Временные ряды ARIMA Компоненты временных рядов Ежедневные изменения индекса Доу-Джонса: Ничего Рябенко Евгений Временные ряды Временные ряды ARIMA Продажи вина в Австралии Рябенко Евгений Временные ряды Временные ряды ARIMA Продажи вина в Австралии Каждый декабрь продажи большие: Рябенко Евгений Временные ряды Временные ряды ARIMA Продажи вина в Австралии Каждый январь продажи падают: Рябенко Евгений Временные ряды Временные ряды ARIMA Продажи в соседние месяцы Рябенко Евгений Временные ряды Временные ряды ARIMA Продажи в соседние месяцы Рябенко Евгений Временные ряды Временные ряды ARIMA Продажи в соседние месяцы Рябенко Евгений Временные ряды Временные ряды ARIMA Продажи через 1 месяц Рябенко Евгений Временные ряды Временные ряды ARIMA Продажи через 2 месяца Рябенко Евгений Временные ряды Временные ряды ARIMA Продажи через год Рябенко Евгений Временные ряды Временные ряды ARIMA Автокорреляция rτ = E ((yt − Ey) (yt+τ − Ey)) . Dy rτ ∈ [−1, 1] , τ — лаг автокорреляции. Рябенко Евгений Временные ряды Временные ряды ARIMA Автокорреляция rτ = E ((yt − Ey) (yt+τ − Ey)) . Dy rτ ∈ [−1, 1] , τ — лаг автокорреляции. Выборочная автокорреляция: rτ = T! −τ t=1 (yt − ȳ) (yt+τ − ȳ) T ! t=1 Рябенко Евгений (yt − ȳ)2 Временные ряды Временные ряды ARIMA Коррелограммы Рябенко Евгений Временные ряды Временные ряды ARIMA Коррелограммы Рябенко Евгений Временные ряды Временные ряды ARIMA Коррелограммы Рябенко Евгений Временные ряды Временные ряды ARIMA Коррелограммы Рябенко Евгений Временные ряды Временные ряды ARIMA Коррелограммы Рябенко Евгений Временные ряды Временные ряды ARIMA Значимость автокорреляции Рябенко Евгений Временные ряды Временные ряды ARIMA Значимость автокорреляции временной ряд: нулевая гипотеза: альтернатива: статистика: нулевое распределение: y T = y1 , . . . , yT ; H0 : rτ = 0; H1 : rτ ̸= 0; √ " # T y T = rτ√T −τ2−2 ; 1−rτ " T# T y ∼ St (T − τ − 2) при H0 . Рябенко Евгений Временные ряды Временные ряды ARIMA Значимость автокорреляции Рябенко Евгений Временные ряды Временные ряды ARIMA Q-критерий Льюнга-Бокса ряд ошибок прогноза: нулевая гипотеза: альтернатива: статистика: εT = ε1 , . . . , εT ; H0 : r1 = · · · = rL = 0; H1 : H0 неверна; L 2 " # ! rτ ; Q εT = T (T + 2) T −τ τ =1 нулевое распределение: χ2L−K , K — число настраиваемых параметров модели ряда. Рябенко Евгений Временные ряды Временные ряды ARIMA Стационарность Ряд y1 , . . . , yT стационарен, если ∀s распределение yt , . . . , yt+s не зависит от t, т. е. его свойства не зависят от времени. тренд ⇒ нестационарность сезонность ⇒ нестационарность цикл ! нестационарность (нельзя предсказать заранее, где будут находится максимумы и минимумы) Рябенко Евгений Временные ряды Временные ряды ARIMA Примеры Рябенко Евгений Временные ряды Временные ряды ARIMA Примеры Нестационарны из-за тренда: Рябенко Евгений Временные ряды Временные ряды ARIMA Примеры Нестационарны из-за сезонности: Рябенко Евгений Временные ряды Временные ряды ARIMA Примеры Нестационарны из-за меняющейся дисперсии: Рябенко Евгений Временные ряды Временные ряды ARIMA Примеры Стационарны: Рябенко Евгений Временные ряды Временные ряды ARIMA Критерий Дики-Фуллера временной ряд: нулевая гипотеза: альтернатива: статистика: нулевое распределение: Рябенко Евгений y T = y1 , . . . , yT ; H0 : ряд нестационарен; H1 : ряд стационарен; неважно; табличное. Временные ряды Временные ряды ARIMA Стабилизация дисперсии Для рядов с монотонно меняющейся дисперсией можно использовать стабилизирующие преобразования. Часто используют логарифмирование: Рябенко Евгений Временные ряды Временные ряды ARIMA Стабилизация дисперсии Преобразования Бокса-Кокса: $ yt′ = ln yt , " λ # yt − 1 /λ, Рябенко Евгений λ = 0, λ ̸= 0. Временные ряды Временные ряды ARIMA Стабилизация дисперсии После построения прогноза для трансформированного ряда его нужно преобразовать в прогноз исходного: $ exp (ŷt′ ) , λ = 0, ŷt = 1/λ (λŷt′ + 1) , λ ̸= 0. Если некоторые yt ⩽ 0, преобразования Бокса-Кокса невозможны (нужно прибавить к ряду константу). Можно округлять значение λ, чтобы упростить интерпретацию. Рябенко Евгений Временные ряды Временные ряды ARIMA Дифференцирование Дифференцирование ряда — переход к попарным разностям соседних значений: yt′ = yt − yt−1 . позволяет стабилизировать среднее значение ряда и избавиться от тренда может применяться неоднократно Рябенко Евгений Временные ряды Временные ряды ARIMA Дифференцирование Сезонное дифференцирование ряда — переход к попарным разностям значений в соседних сезонах: yt′ = yt − yt−s . убирает сезонность сезонное и обычное дифференцирование могут применяться к ряду в любом порядке если ряд имеет выраженный сезонный профиль, рекомендуется начинать с сезонного дифференцирования — после него ряд уже может оказаться стационарным Рябенко Евгений Временные ряды Временные ряды ARIMA Дифференцирование Критерий Дики-Фуллера: для исходного ряда p = 0.3636, для ряда первых разностей — p = 5.2 × 10−29 . Рябенко Евгений Временные ряды Временные ряды ARIMA Авторегрессия Что если делать регрессию ряда на собственные значения в прошлом? yt = α + φ1 yt−1 + φ2 yt−2 + · · · + φp yt−p + εt Модель авторегрессии порядка p (AR(p)): yt — линейная комбинация p предыдущих значений ряда и шумовой компоненты. Рябенко Евгений Временные ряды Временные ряды ARIMA Скользящее среднее Пусть у нас есть независимый одинаково распределённый во времени шум εt : Рябенко Евгений Временные ряды Временные ряды ARIMA Скользящее среднее Среднее по двум соседним точкам: Рябенко Евгений Временные ряды Временные ряды ARIMA Скользящее среднее Среднее по трём соседним точкам: Рябенко Евгений Временные ряды Временные ряды ARIMA Скользящее среднее Среднее по четырём соседним точкам: Рябенко Евгений Временные ряды Временные ряды ARIMA Скользящее среднее Обобщим и добавим веса: yt = α + εt + θ1 εt−1 + θ2 εt−2 + · · · + θq εt−q Модель скользящего среднего порядка q (M A(q)): yt — линейная комбинация q последних значений шумовой компоненты. Рябенко Евгений Временные ряды Временные ряды ARIMA ARMA Модель ARM A(p, q): yt = α + φ1 yt−1 + · · · + φp yt−p + εt + θ1 εt−1 + θ2 εt−2 + · · · + θq εt−q Теорема Вольда: любой стационарный ряд может быть описан моделью ARM A(p, q). Рябенко Евгений Временные ряды Временные ряды ARIMA Поголовье рыси Рябенко Евгений Временные ряды Временные ряды ARIMA Поголовье рыси Модель ARM A(2, 2): Рябенко Евгений Временные ряды Временные ряды ARIMA Поголовье рыси Модель ARM A(2, 2): Рябенко Евгений Временные ряды Временные ряды ARIMA ARIMA Модель ARIM A(p, d, q) — модель ARM A(p, q) для d раз продифференцированного ряда. Рябенко Евгений Временные ряды Временные ряды ARIMA Индекс Доу-Джонса Рябенко Евгений Временные ряды Временные ряды ARIMA Индекс Доу-Джонса Модель ARIM A(0, 1, 0): Рябенко Евгений Временные ряды Временные ряды ARIMA SARMA Пусть ряд имеет сезонный период длины S. Возьмём модель ARM A(p, q): yt = α + φ1 yt−1 + · · · + φp yt−p + εt + θ1 εt−1 + · · · + θq εt−q и добавим P авторегрессионных компонент: +φS yt−S + φ2S yt−2S + · · · + φP S yt−P S и Q компонент скользящего среднего: +θS εt−S + θ2S εt−2S + · · · + θP S εt−P S . Это модель SARM A(p, q) × (P, Q) Рябенко Евгений Временные ряды Временные ряды ARIMA SARIMA Модель SARIM A(p, d, q) × (P, D, Q) — модель SARM A(p, q) × (P, Q) для ряда, к которому d раз было применено обычное дифференцирование и D раз — сезонное. Часто называют просто ARIMA. Рябенко Евгений Временные ряды Временные ряды ARIMA Реальная заработная плата Критерий Дики-Фуллера: p = 0.2265. Рябенко Евгений Временные ряды Временные ряды ARIMA Реальная заработная плата После преобразования Бокса-Кокса с λ = 0.22: Критерий Дики-Фуллера: p = 0.1661. Рябенко Евгений Временные ряды Временные ряды ARIMA Реальная заработная плата После сезонного дифференцирования: Критерий Дики-Фуллера: p = 0.01. Рябенко Евгений Временные ряды Временные ряды ARIMA Реальная заработная плата Модель ARM A(2, 2) для преобразованного ряда: Рябенко Евгений Временные ряды Временные ряды ARIMA Реальная заработная плата Модель SARIM A(2, 0, 2) × (0, 1, 0) с преобразованием Бокса-Кокса: Рябенко Евгений Временные ряды Временные ряды ARIMA Реальная заработная плата Остатки регрессий на время: Рябенко Евгений Временные ряды Временные ряды ARIMA Реальная заработная плата Остатки построенной модели: Рябенко Евгений Временные ряды Временные ряды ARIMA Подбор параметров α, φ, θ d, D q, Q p, P Рябенко Евгений Временные ряды Временные ряды ARIMA α, φ, θ Если все остальные параметры фиксированы, коэффициенты регрессии подбираются методом наименьших квадратов. Чтобы найти коэффициенты θ, шумовая компонента предварительно оценивается с помощью остатков авторегрессии. Если шум белый (независимый одинаково распределённый гауссовский), то МНК даёт оценки максимального правдоподобия. Рябенко Евгений Временные ряды Временные ряды ARIMA d, D Порядки дифференцирования подбираются так, чтобы ряд стал стационарным. Ещё раз: если ряд сезонный, рекомендуется начинать с сезонного дифференцирования. Чем меньше раз мы продифференцируем, тем меньше будет дисперсия итогового прогноза. Рябенко Евгений Временные ряды Временные ряды ARIMA q, Q, p, P Гиперпараметры нельзя выбирать из принципа максимума правдоподобия: L всегда увеличивается с их ростом. Для сравнения моделей с разными q, Q, p, P можно использовать критерий Акаике: AIC = −2 log L + 2k, k = P + Q + p + q + 1 — число параметров в модели. Начальные приближения можно выбрать с помощью автокорреляций. Рябенко Евгений Временные ряды Временные ряды ARIMA q, Q Q ∗ S — номер последнего сезонного лага, при котором автокорреляция значима (здесь 0). q — номер последнего несезонного лага, при котором автокорреляция значима (здесь 8). Рябенко Евгений Временные ряды Временные ряды ARIMA p, P Частичная автокорреляция — автокорреляция после снятия авторегрессии предыдущего порядка. Рябенко Евгений Временные ряды Временные ряды ARIMA p, P P ∗ S — номер последнего сезонного лага, при котором частичная автокорреляция значима (здесь 2). p — номер последнего несезонного лага, при котором частичная автокорреляция значима (здесь 2). Рябенко Евгений Временные ряды Временные ряды ARIMA Реальная заработная плата Перебирая модели с D = 1, d = 0 и преобразованием Бокса-Кокса, получаем наименьший AIC на ARIM A(2, 0, 1) × (2, 1, 2): Рябенко Евгений Временные ряды Временные ряды ARIMA Подбор ARIMA 1 Смотрим на ряд. 2 При необходимости стабилизируем дисперсию. 3 Если ряд нестационарен, подбираем порядок дифференцирования. 4 Анализируем ACF/PACF, определяем примерные p, q, P, Q 5 Обучаем модели-кандидаты, сравниваем их по AIC, выбираем победителя. 6 Смотрим на остатки полученной модели, если они плохие, пробуем что-то поменять. Рябенко Евгений Временные ряды Временные ряды ARIMA Прогнозирование yt = α̂ + φˆ1 yt−1 + · · · + φˆp yt−p + εt + θˆ1 εt−1 + · · · + θˆq εt−q Заменяем t на T + 1: ŷT +1|T = α̂ + φˆ1 yT + · · · + φˆp yT +1−p + εT +1 + θˆ1 εT + · · · + θˆq εT +1−q Заменяем будущие ошибки на нули: ŷT +1|T = α̂ + φˆ1 yT + · · · + φˆp yT +1−p + θˆ1 εT + · · · + θˆq εT +1−q Заменяем прошлые ошибки на остатки: ŷT +1|T = α̂ + φˆ1 yT + · · · + φˆp yT +1−p + θˆ1 ε̂T + · · · + θˆq ε̂T +1−q Если мы прогнозируем на момент времени T + 2, в формуле появляется значение ряда из будущего: ŷT +2|T = α̂ + φˆ1 yT +1 + · · · + φˆp yT +2−p + θˆ1 ε̂T +1 + · · · + θˆq ε̂T +2−q Заменяем его на прогноз ŷT +1|T . Рябенко Евгений Временные ряды Временные ряды ARIMA Прогнозирование Рябенко Евгений Временные ряды Временные ряды ARIMA Остатки Остатки — разность между фактом и прогнозом: ε̂t = yt − ŷt|t−1 . Нужно проверять, обладают ли они некоторыми свойствами. Рябенко Евгений Временные ряды Временные ряды ARIMA Несмещённость Несмещённость — равенство среднего значения нулю: Рябенко Евгений Временные ряды Временные ряды ARIMA Несмещённость Можно проверить гипотезу H0 : ε = 0 с помощью критерия Стьюдента или Уилкоксона Если не выполняется, с моделью что-то серьёзно не так (необходим визуальный анализ) Рябенко Евгений Временные ряды Временные ряды ARIMA Стационарность Стационарность — отсутствие зависимости от времени: Рябенко Евгений Временные ряды Временные ряды ARIMA Стационарность Стационарность — отсутствие зависимости от времени: Рябенко Евгений Временные ряды Временные ряды ARIMA Стационарность Можно проверить с помощью критерия Дики-Фуллера Если не выполняется, значит, модель не одинаково точна в разные периоды (необходим визуальный анализ) Рябенко Евгений Временные ряды Временные ряды ARIMA Неавтокоррелированность Неавтокоррелированность — отсутствие зависимости от предыдущих наблюдений: Рябенко Евгений Временные ряды Временные ряды ARIMA Неавтокоррелированность Можно проверить на коррелограмме и с помощью Q-критерия Льюнга-Бокса Если не выполняется, значит, модель учитывает не все особенности данных — возможно, её можно улучшить Рябенко Евгений Временные ряды Временные ряды ARIMA Праздники Потребление электричества в Турции по месяцам: Падения соответствуют месяцам, на которые выпадают праздники по исландскому календарю (год примерно на 11 дней короче, чем в грегорианском) Рябенко Евгений Временные ряды Временные ряды ARIMA SARIMAX yt = k % βj xjt + zt , j=1 zt = α + φ1 zt−1 + . . . + φp zt−p + + θ1 εt−1 + . . . + θq εt−q + + φS zt−S + . . . + φP S zt−P S + + θS εt−S + . . . + θP S εt−P S + εt . Рябенко Евгений Временные ряды Временные ряды ARIMA Сложная сезонность Потребление электричества в Турции по дням: недельная сезонность; годовая сезонность; праздники по исламскому календарю. Рябенко Евгений Временные ряды Временные ряды ARIMA Сложная сезонность Сложности: при длинных периодах сезонности в модели SARIMA получается слишком много параметров; поведение дневного ряда вряд ли определяется его значением ровно 365 дней назад; длина года — 365.25 дней и 52.18 недель. Решение: брать в качестве S период самой короткой сезонности, а сезонность более высоких порядков учитывать регрессией на фурье-гармоники с периодами, например, 365.25, 365.25/2, 365.25/3 и т.д. Рябенко Евгений Временные ряды Временные ряды ARIMA Регрессионные признаки гармоники по длинным периодам сезонности индикаторы номера периода в коротких сезонностях индикаторы праздников индикаторы пред- и постпраздничных дней тренды (линейный, квадратичный и т.д.) скользящие средние ряда за предыдущие периоды При хорошем подборе признаков регрессии часто оказывается достаточно. Рябенко Евгений Временные ряды Временные ряды ARIMA Массовое прогнозирование Пример: дневные продажи товаров в магазинах. Информация: продажи, остатки, цены, скидки, промо-акции, иерархия товаров, иерархия и расположение торговых точек. Задача: построить прогнозы продаж всех товаров во всех магазинах. Проблема: ручной подбор прогнозирующих моделей для каждой пары товар-магазин невозможен. Решение: регрессионная модель с хорошо подобранными признаками. Рябенко Евгений Временные ряды Временные ряды ARIMA Резюме в ARIMA можно учитывать внешние факторы при хорошем подборе внешних факторов специфические модели временных рядов часто оказываются не нужны. Рябенко Евгений Временные ряды Временные ряды ARIMA Литература Hyndman R.J., Athanasopoulos G. Forecasting: principles and practice. — OTexts, https://www.otexts.org/book/fpp Рябенко Евгений Временные ряды