В прошлой статье мы видели, как можно найти форму наилучшего линейного предиктора для X_{n+h}, используя все предыдущие наблюдения до n имеет вид

где коэффициенты удовлетворяют

Мы также видели, что на практике очень сложно инвертировать гамма-матрицу слева. Поэтому мы хотели бы иметь способ найти коэффициенты без необходимости обращать матрицу вручную.

Алгоритм Дубина-Левинсона

Пусть {X_{t}} — стационарный временной ряд с нулевым средним, тогда для n=0,1,.., алгоритм Дубина-Левинсона вычисляет коэффициенты

Позволять

Тогда алгоритм Дубинсона задается выражением

для n=2,… Хотя это может показаться немного сложным, оказывается, что, выполняя этот алгоритм, мы рекурсивно получаем коэффициенты BLP на каждом шаге для такого количества шагов, которое нам нужно. Эти коэффициенты производятся в процессе! Кроме того, обратите внимание, что, хотя мы можем предсказывать только на один шаг вперед,

мы действительно можем использовать эти прогнозы для рекурсивного вычисления дальнейших наблюдений. Круто а! Поскольку нам не нужно инвертировать какую-либо матрицу, получается, что этот алгоритм работает за O(n²)время, что на один полиномиальный уровень ниже простой инверсии матриц! Кроме того, мы также получаем MSE прогноза на каждом временном шаге, как

Подтверждение правильности

Эта часть на самом деле довольно утомительна и не для слабонервных. Я оставлю это здесь для тех, кто склонен к математике, но в остальном вы можете перейти к разделу «Функция частичной автокорреляции». Во-первых, давайте определим

То есть первая — это просто Гамма-матрица, масштабированная по дисперсии (или нулевой ковариации). Мы также определяем справа два вектора: один представляет собой набор всех корреляций от 1 до n, а другой представляет собой тот же вектор, но в обратном направлении. Теперь обратите внимание, что

Первое уравнение выполняется из того, что мы ранее вывели в предыдущей статье, то есть

. Здесь мы просто даем другое имя коэффициентам. Давайте теперь рассмотрим, почему этот алгоритм работает, используя математическую индукцию.

Действительно, это правильный коэффициент, как мы ранее показали, что

минимизирует MSE при использовании только последнего наблюдения.

Обратите внимание, что мы, по сути, хотим показать, что эта линейная комбинация правильно создает серию частичных автокорреляций, которые являются коэффициентами лучшего линейного предиктора!

Давайте посмотрим, что здесь происходит:

  1. Во-первых, мы просто ставим определение матрицы, и понимаем, что ее элементы заданы именно так (помните, что это симметричная матрица!), а также заданы на рекурсивном шаге. Крайний правый вектор задается определениями алгоритма.
  2. Приступаем к умножению матриц, как и во втором шаге (вы можете в этом убедиться).
  3. На третьем шаге мы распределяем члены и понимаем, что первый член в уравнении можно заменить определением, так что мы можем переупорядочить члены и разложить на множители как верхние, так и нижние элементы.
  4. В последней части мы видим, что второй член первой записи равен нулю, путем добавления в определение по индукции.

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

Теперь, одна вещь, которую мы должны показать, это то, что

Это следует из того, что мы ранее показали, что MSE BLP имеет векторную форму выше в последней статье. В последнем уравнении мы просто факторизовали ACV(0). Мы можем использовать эти факты для второй записи последнего вектора в приведенном выше уравнении, чтобы получить

Таким образом, используя эти результаты, мы показали, что

Наконец, нам нужно показать, что

Мы можем сделать это как

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

Функция частичной автокорреляции

Более явно,

Действительно, это говорит нам об автокорреляции, заданной последним timsetmp и первым, игнорируя временные метки между ними. Интересно то, что благодаря алгоритму Давина-Левинсона мы уже получаем эти коэффициенты, которые также являются PACF! Помните, что в самом начале этой серии мы кратко представили PACF, но мало рассказали о том, как он появился. Теперь вы знаете, как :). Обязательно вернитесь к статьям Классическая декомпозиция и Дифференциация, чтобы узнать, как интерпретировать PACF!

Примечание. На практике нам неизвестны фактические интересующие значения ACV. Однако мы можем просто использовать демонстрацию ACV из данных в качестве оценок!

Как Р

Мы представим очень краткий пример использования алгоритма Дурбина-Левинсона. Для этого нам понадобится пакет R FitAR . Сначала мы строим модель AR(4), то есть модель, зависящую от 4 последних наблюдений, т.е.

Выше мы сначала задаем случайное место, затем задаем вектор истинных значений модели AR(4). Затем мы преобразуем это в список и используем функцию arima.sim для соответствующей имитации некоторых данных. Затем мы определяем пример функции автокорреляции для всего ряда, используя встроенную функцию acv, наконец, функцию FitAR::PacfDL для расчета частичной автокорреляции следующим образом:

Мы указываем отставание 4, потому что знаем, что наш ряд получен из процесса AR (4). Если бы мы не знали, нам пришлось бы сначала подогнать кучу моделей, чтобы определить это (позже мы увидим, как). Мы также можем сравнить это со встроенной функцией автокорреляции:

Наконец, мы можем визуализировать это с помощью ggPacf :

Заметили что-то интересное? Не случайно за пределы границ выпадают ровно четыре лага, и они пропорциональны величине коэффициентов модели AR(4). Мы увидим, почему это так, в следующей статье.

Примечание. Пример взят из Документации пакета FitAR.

В следующий раз

И это все на сегодня! Как вы могли видеть, инвертирование гамма-матрицы может стать довольно утомительным. В следующей статье мы увидим, как мы можем вместо этого использовать умный алгоритм, который избавит нас от этого, и при этом получить желаемые коэффициенты. Оставайтесь с нами, и увидимся в следующий раз!

Последний раз

Лучший линейный предсказатель (часть I)



Главная страница



Следуй за мной в

  1. https://blog.jairparraml.com/
  2. https://www.linkedin.com/in/hair-parra-526ba19b/
  3. https://github.com/JairParra
  4. https://medium.com/@hair.parra