Распределение ошибок в ETS

Ещё в самом начале, когда я стал изучать подход пространства состояний к экспоненциальному сглаживанию, меня удивила одна вещь: Роб Хайндман и др. в книге «Forecasting with Exponential Smoothing» предполагали везде в своих выкладках, что ошибки в моделях распределены нормально. Ну, это вообще само по себе популярное предположение относительно ошибок, но речь сейчас не о том, нормальны ли они на самом деле на практике или нет (обычно нет), а о том, что это предположение вводилось у авторов даже относительно моделей с мультипликативными ошибками… Давайте немного поясню.

Мультипликативные модели в представлении авторов имеют следующий вид:

\begin{equation} \label{eq:etserror}
y_t = \mu_{t|t-1} \cdot (1 + \epsilon_{t})
\end{equation}

Если предполагать, что ошибка \(\epsilon_{t}\) распределена нормально, то мы фактически допускаем, что она лежит в пределах от минус бесконечности, до плюс бесконечности и ничем не ограничена. А раз так, то по какому-нибудь волшебному стечению обстоятельств она может оказаться сильно отрицательной (например, -5), в результате чего итоговое фактическое значение в \eqref{eq:etserror} не будет иметь никакого смысла: математическое ожидание оказывается положительным, а фактические значения ни с того, ни с сего — отрицательными… Причём очень отрицательными! В мультипликативных моделях это немыслимая наглость! Конечно, на практике дисперсия у такой ошибки обычно невелика, в связи с чем в 99.99% случаев она не будет существенно больше -1, но противоречие на лицо. Более того, если из формулы \eqref{eq:etserror} выразить часть с ошибкой, то получится следующее:

\begin{equation} \label{eq:multiplicativeerror}
1 + \epsilon_{t} = \frac{y_t}{\mu_{t|t-1}}
\end{equation}

Накладывать на \eqref{eq:multiplicativeerror} ограничение о нормальном распределении по меньше мере не разумно, а по большей — не имеет смысла. Всё дело в дроби в правой части этой формулы. Предполагать, что отношение фактического значения к расчётному будет распределено нормально — это то же самое, как предполагать, что при делении реальности на воображение будет получаться что-то нормальное… Сравнивать их лучше с помощью разности, а не дроби. Поэтому решением проблемы здесь будет взятие логарифма \eqref{eq:multiplicativeerror}. Получится вот что:

\begin{equation} \label{eq:logerror}
\ln(1 + \epsilon_{t}) = \ln \left( \frac{y_t}{\mu_{t|t-1}} \right) = \ln y_t -\ln \mu_{t|t-1}
\end{equation}

Вот эта величина уже может быть распределена нормально. Более того, именно такие предположения относительно таких ошибок, как \eqref{eq:logerror}, обычно и принято накладывать.

В общем, всё указывало на то, что ошибка \(1 + \epsilon_{t}\) в моделях типа \eqref{eq:etserror} должна быть распределена не нормально, а скорее лог-нормально. В пользу этого ещё говорит и то, что величина, распределённая лог-нормально, не может быть меньше нуля, а логарифмирование этой величины будет давать переменную, распределённую нормально.

— Прекрасно! Что же теперь с этим делать? — спросит читатель, дошедший до этой строки.

— А теперь возьмём, да используем это знание для расчёта функции правдоподобия для моделей с мультипликативными ошибками.

Первоначальная формула для такой функции выглядит вот так (здесь используется функция плотности лог-нормального распределения):

\begin{equation} \label{eq:likelihoodlognormal}
L(\theta, \sigma^2 | Y) = \prod_{t=1}^T \frac{1}{y_t} \frac{1}{\sqrt{2 \pi \sigma^2}} e ^{- \frac{\left(\ln y_t -\ln \mu_{t|t-1} \right)^2}{2\sigma^2}} ,
\end{equation}

где \(Y\) — вектор фактических значений, \(\sigma^2\) — дисперсия ошибки, которую можно оценить по выборке по формуле:

\begin{equation} \label{eq:likelihoodvariance}
\hat{\sigma}^2 = \frac{1}{T} \sum_{t=1}^T \left(\ln y_t -\ln \mu_{t|t-1} \right)^2 = \frac{1}{T} \sum_{t=1}^T \ln^2(1 + \epsilon_{t}) .
\end{equation}

Итоговая формула выглядит следующим образом:

\begin{equation} \label{eq:concentratedloglikelihoodlognormal}
\ell(\theta | Y) = -\frac{T}{2} \left( \ln \left( 2 \pi e \right) +\ln \left( \hat{\sigma}^2 \right) \right) -\sum_{t=1}^T \ln y_t
\end{equation}

Задача со звёздочкой: попробуйте восполнить все пробелы в математических выкладках между \eqref{eq:likelihoodlognormal} и \eqref{eq:concentratedloglikelihoodlognormal}…

Самая распоследняя формула \eqref{eq:concentratedloglikelihoodlognormal} нам как раз и нужна. Именно она нам и позволяет осуществлять выбор модели, наиболее близкой к некой «утопической» на основе информационных критериев. Эта формула немного напоминает предложенную Робом Хайндманом и компанией в их книге. Разница в том, что последний элемент в \eqref{eq:concentratedloglikelihoodlognormal} у них заменён на расчётные значения, и они исходят из нормальности распределения ошибок. Эта разница между их и нашей формулами была бы совершенно незначительной, если бы средняя величина по фактическим значениям совпадала со средней по расчётным (как это обычно происходит с регрессиями), но в моделях экспоненциального сглаживания это условие редко выполняется.

Как только я вывел вот это всё и реализовал в функции ets2 для R, так у меня сразу же всё встало на свои места, пасьянс сошёлся, а пазл собрался — стал получаться выбор модели для траекторных функций.

Справедливости ради надо заметить, что в главе 15 авторы обсуждают и другие распределения (не только нормальное) и упоминают, что лог-нормальное и Гамма в случае с мультипликативными ошибками дают более точные результаты, но там же они показывают, что разница между распределениями при прогнозе на один шаг вперёд оказывается несущественной, но в случае с прогнозами на несколько шагов различия в распределениях растут. Для ETS с классической функцией правдоподобия это не критично, но для ETS с траекторной функцией различия становятся критичными.

Добавить комментарий