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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Постановка задачи)
(Алгоритм)
Строка 16: Строка 16:
== Алгоритм ==
== Алгоритм ==
-
В терминах поставленной задачи следует решить следующую задачу оптимизации: <tex>||\mathbf{y}- \mathbf{X}\mathbf{w}||_2\rightarrow\min_{\mathbf{w}}</tex>, где
+
 
-
<tex>
+
Для настройки параметров модели <tex>f(\mathbf{x}, \mathbf{w})+\epsilon</tex> используется [[Связанный Байесовский вывод|связный байесовский вывод]]
-
\left(
+
 
-
\begin{array}{l|ccccc}
+
<tex>\ln p(D|\beta, A)=-\frac{1}{2}\ln|A|-\frac{N}{2}\ln2\pi+\frac{N}{2}\ln\beta-S(\mathbf{w_0})-\frac{1}{2}\ln|H|,</tex>
-
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 \\
+
где <tex>S(\mathbf{w})=\frac{1}{2}\mathbf{w}^TA\mathbf{w}+\beta E_D</tex> — функция ошибки,
-
x_{p} & \phi^1(x_{p-1})&\dots &\phi^u(x_{p-1})& \ldots & \phi^u(x_{1}) \\
+
 
-
\end{array}
+
<tex>H=-\nabla\nabla S(\mathbf{w})|_{\mathbf{w}=\mathbf{w_0}}</tex> — [http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0_%D0%93%D0%B5%D1%81%D1%81%D0%B5 матрица Гессе] функции ошибок,
-
\right)=
+
 
-
\left(
+
<tex>E_D=\frac{1}{2}\sum^n_{i=1}(\widehat{x_i}-x_i)^2</tex> — функция ошибки в пространстве данных.
-
\begin{array}{l|l}
+
 
-
\mathbf{y} & \mathbf{X}
+
Настройка параметрической регрессионной модели происходит в 2 этапа, сначала настраиваются параметры <tex>\mathbf{w}</tex> при фиксированных гиперпараметрах <tex>\beta, A</tex>, затем при вычисленных значениях параметров функция правдоподобия <tex>\ln p(D|\beta, A)</tex> оптимизируется по гиперпараметрам. Процедура повторяется, пока настраиваемые параметры не стабилизируется.
 +
 
 +
Для простоты вычислений, считаем, что<tex> A </tex> имеет диагональный вид:
 +
 
 +
<tex>A=\left(
 +
\begin{array}{cccc}
 +
\alpha_{1} & 0 & \dots & 0\\
 +
0 & \alpha_2 & \dots & 0 \\
 +
\vdots & \vdots & \ddots & 0\\
 +
0 & \dots & 0 & \alpha_M\\
\end{array}
\end{array}
\right).
\right).
-
</tex>
+
</tex>.
-
Если зафиксировать набор порождающих функций <tex>\{\phi_i\}_{i=1}^u-</tex>, то возникает задача линейной регрессии, которую можно решать несколькими способами. Так как за счет большого количества порождающих функций у нас появится огромное количество признаков то наиболее подходящими будут методы, проводящие отбор признаков: [[ридж-регрессия|гребневая регрессия]], [[лассо|лассо]], [[шаговая регрессия|шаговая регрессия]], метод наименьших углов(ЛАРС).
+
== Вычислительный эксперимент ==
== Вычислительный эксперимент ==

Версия 16:39, 19 декабря 2010

Содержание

Аннотация

Временным рядом называется последовательность упорядоченных по времени значений некоторой вещественной переменной $\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}. Задана модель $\mathbf{x}=f(\mathbf{x}, w)+\epsilon$,где случайная величина \mathbf{\varepsilon} имеет нормальное распределение \mathbf{\varepsilon} \in N(0, \sigma^2). Вектор параметров модели \mathbf{w} рассматривается как многомерная случайная величина. Пусть плотность распределения параметров имеет вид многомерного нормального распределения N(\mathbf{0}, A) с матрицей ковариации A. Модель некоторым образом учитывает период временного ряда. Предполагается, модель временного ряда может меняться с течением времени, т.е. для разных подпоследовательностей длины p оптимальные параметры модели $\mathbf{x}=f(\mathbf{x}, w)+\epsilon$ будут отличаться. Расстояние между различными подпоследовательностями  x_{n_1\cdot{p}+1},\dots,x_{(n_1+1)\cdot{p}} и  x_{n_2\cdot{p}+1},\dots,x_{(n_2+1)\cdot{p}} измеряется как сумма квадратов отклонений:

SSE=\sum_{i=1}^p{(x_{n_2{p}+i}-x_{n_1{p}+i})^2}
.

Расстояние между параметрами модели $\mathbf{x}=f(\mathbf{x}, w)+\epsilon$, настроенной на разных подпоследовательностях, можно измерить как расстояние Кульбака-Лейблера между функциями распределения 2-ух случайных величин {p(x)},{q(x)}:

D_{KL}(p, q) = \sum\limits_{x\in \mathcal{X}} p(x) \ln \frac{p(x)}{q(x)}.

Требуется исследовать зависимость расстояния между параметрами модели $\mathbf{x}=f(\mathbf{x}, w)+\epsilon$ от расстояния между подпоследовательностями, на которых эти параметры были настроены.

Алгоритм

Для настройки параметров модели f(\mathbf{x}, \mathbf{w})+\epsilon используется связный байесовский вывод

\ln p(D|\beta, A)=-\frac{1}{2}\ln|A|-\frac{N}{2}\ln2\pi+\frac{N}{2}\ln\beta-S(\mathbf{w_0})-\frac{1}{2}\ln|H|,

где S(\mathbf{w})=\frac{1}{2}\mathbf{w}^TA\mathbf{w}+\beta E_D — функция ошибки,

H=-\nabla\nabla S(\mathbf{w})|_{\mathbf{w}=\mathbf{w_0}} — матрица Гессе функции ошибок,

E_D=\frac{1}{2}\sum^n_{i=1}(\widehat{x_i}-x_i)^2 — функция ошибки в пространстве данных.

Настройка параметрической регрессионной модели происходит в 2 этапа, сначала настраиваются параметры \mathbf{w} при фиксированных гиперпараметрах \beta, A, затем при вычисленных значениях параметров функция правдоподобия \ln p(D|\beta, A) оптимизируется по гиперпараметрам. Процедура повторяется, пока настраиваемые параметры не стабилизируется.

Для простоты вычислений, считаем, что A имеет диагональный вид:

A=\left(
\begin{array}{cccc}
\alpha_{1} & 0 & \dots & 0\\
0 & \alpha_2 & \dots & 0 \\
\vdots & \vdots & \ddots & 0\\
0 & \dots & 0 & \alpha_M\\
\end{array}
\right).
.

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

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

Исходный код

Смотри также

Литература

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