Uploaded by Дмитрий Трифонов

Time Series Riabenko

advertisement
Временные ряды
ARIMA
Прогнозирование временных рядов
Рябенко Евгений
riabenko.e@gmail.com
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
Рябенко Евгений
Временные ряды
Download