Сравнение временных рядов при авторегрессионном прогнозе (пример)

Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

Аннотация

Временным рядом называется последовательность упорядоченных по времени значений некоторой вещественной переменной $\mathbf{x}=\{x_{t}\}_{t=1}^T\in\mathbb{R}^T$. Элемент последовательности называется отсчетом временного ряда.

Задача авторегрессионного прогноза заключается в нахождении модели $f(\mathbf{x}, \mathbf{w})$, где $\mathbf{w}\in\mathbb{R}^M$ вектор параметров модели, которая наилучшим образом приближает следущее значение временного ряда $x_{T+1}:\widehat{x}_{T+1}=f(\mathbf{x}, \mathbf{w})$. Свертка временного ряда возникает в случае существования на множестве подпоследовательностей временного ряда некоторого инварианта. Примером инварианта является период временного ряда, который физически может означать сезонность в данных. При этом построенная модель должна учитывать наличие инварианта и сохранять данное свойство для ряда прогнозов: $\{\widehat{x}_{t}\}_{t=1}^T\in\mathbb{R}^T$.

Постановка задачи

Пусть задан временной ряд $\mathbf{x}=\{x_{t}\}_{t=1}^T\in\mathbb{R}^T$. Предполагается, что отсчеты t=1,\dots, T были сделаны через равные промежутки времени, и период временного ряда равен $p$, при этом $ {T}+1=p\cdot{n}$, где n\in\mathbb{N}. Требуется спрогнозировать следующий отсчет временного ряда x_{T+1}.

Построим матрицу n\times{p} 
\left(
\begin{array}{l|cc}
x_{T+1}     & x_{T}   & \ldots & x_{T+1-(p-1)}   \\
x_{(n-1)p} & x_{(n-1)p-1} & \ldots & x_{(n-1)p-(p-1)} \\
\vdots  & \vdots    & \ddots & \vdots    \\
x_{p}     & x_{p-1}   & \ldots & x_1       \\
\end{array}
\right)
.

Модель имеет вид \widehat{x}_{kp} = f \left (\{x_{kp-1},\dots,x_{kp-(p-1)}\}, \mathbf{w}\right)= \sum_{i=1}^u{\sum_{j=1}^{p-1}{\phi^i(x_{kp-j})\cdot{w_j^i}}, где 1\leq{k}\leq{n-1}, а \{\phi_i\}_{i=1}^u- набор порождающих функций.

Алгоритм

В терминах поставленной задачи следует решить следующую задачу оптимизации: ||\mathbf{y}- \mathbf{X}\mathbf{w}||_2\rightarrow\min_{\mathbf{w}}, где 
\left(
\begin{array}{l|ccccc}
x_{(n-1)p} & \phi^1(x_{(n-1)p-1})&\dots &\phi^u(x_{(n-1)p-1})& \ldots & \phi^u(x_{(n-1)p-(p-1)}) \\
\vdots  & \vdots    & \ddots & \vdots & \ddots & \vdots   \\
x_{p}   & \phi^1(x_{p-1})&\dots &\phi^u(x_{p-1})& \ldots & \phi^u(x_{1}) \\
\end{array}
\right)=
\left(
\begin{array}{l|l}
\mathbf{y} & \mathbf{X}
\end{array}
\right).
Если зафиксировать набор порождающих функций \{\phi_i\}_{i=1}^u-, то возникает задача линейной регрессии, которую можно решать несколькими способами. Так как за счет большого количества порождающих функций у нас появится огромное количество признаков то наиболее подходящими будут методы, проводящие отбор признаков: гребневая регрессия, лассо, шаговая регрессия, метод наименьших углов(ЛАРС).

Вычислительный эксперимент

Вычислительный эксперимент проводился на реальных данных. Использовались временные ряды потребления электроэнергии в некотором регионе с отсчетами а) 1 час и b) 24 часа. В первом случае период ряда был равен p=24, во втором p=7. Для решения задача линейной регрессии использовался метод наименьших углов (ЛАРС).

Исходный код

Смотри также

Литература

  1. Стрижов В.В, Пташко Г.О. Построение инвариантов на множестве временных рядов путем динамической свертки свободной переменной. — ВЦ РАН, 2009.
  2. Стрижов В.В Методы выбора регрессионных моделей. — ВЦ РАН, 2010.
Личные инструменты