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

Материал из 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-, то возникает задача линейной регрессии, которую можно решать несколькими способами. Так как за счет большого количества порождающих функций у нас появится огромное количество признаков то наиболее подходящими будут методы, проводящие отбор признаков: гребневая регрессия, лассо, шаговая регрессия, метод наименьших узлов (ЛАРС).

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

Исходный код

Смотри также

Литература