Сравнение временных рядов при авторегрессионном прогнозе (пример)
Материал из MachineLearning.
(→Вычислительный эксперимент) |
|||
Строка 74: | Строка 74: | ||
== Вычислительный эксперимент == | == Вычислительный эксперимент == | ||
+ | === Пример на реальных дынных === | ||
[[Изображение:EnergyConsumptoin.png|thumb|left]] | [[Изображение:EnergyConsumptoin.png|thumb|left]] | ||
+ | [[Изображение:DayPeriod.png|thumb|right]] | ||
Вычислительный эксперимент проводился на реальных данных. Использовались временные ряды потребления электроэнергии в некотором регионе с отсчетами 1 час, период ряда равен <tex>p=24</tex>. | Вычислительный эксперимент проводился на реальных данных. Использовались временные ряды потребления электроэнергии в некотором регионе с отсчетами 1 час, период ряда равен <tex>p=24</tex>. | ||
- | |||
Эксперимент состоит из этапов: | Эксперимент состоит из этапов: | ||
Строка 90: | Строка 91: | ||
была построена их суперпозиция, описывающая потребление электроэнергии за сутки: | была построена их суперпозиция, описывающая потребление электроэнергии за сутки: | ||
- | <tex>$$\widehat{x}_{pn+t}=w_1\cdot{\sqrt{t}}+w_2\cdot{\exp(-t)}+w_3\cdot{\exp(-24*t)}+w_4\cdot \exp\left(w_5\cdot{\sin(t^4)} \right)+w_6\cdot \exp \left( w_7\cdot cos(24*t^{2,5})\right)+$$</tex> | + | <center><tex>$$\widehat{x}_{pn+t}=w_1\cdot{\sqrt{t}}+w_2\cdot{\exp(-t)}+w_3\cdot{\exp(-24*t)}+w_4\cdot \exp\left(w_5\cdot{\sin(t^4)} \right)+w_6\cdot \exp \left( w_7\cdot cos(24*t^{2,5})\right)+$$</tex></center> |
- | + | ||
- | + | ||
+ | <center><tex>$$+w_8\cdot \exp\left(w_9\cdot sin(t^{-0,5}) \right)+w_{10}\cdot cos(t)+w_{11}\cdot cos(\frac{2}{15}\cdot t+\frac{1}{3}))+w_{12}\cdot t\cdot cos(t^3).$$</tex></center> | ||
[[Изображение:Series5.png|thumb|left]] | [[Изображение:Series5.png|thumb|left]] | ||
+ | [[Изображение:KL WarpingPath Distance.png|thumb|right]] | ||
+ | |||
+ | |||
'''2)''' модель настраивается на подпоследовательности | '''2)''' модель настраивается на подпоследовательности | ||
Строка 103: | Строка 106: | ||
'''3)''' строится зависимость расстояния между последовательностями в пространстве параметров: | '''3)''' строится зависимость расстояния между последовательностями в пространстве параметров: | ||
- | |||
- | |||
- | и расстояний в пространстве значений: | + | <center><tex> D_{KL} \left( \mathbf{x}(n), \mathbf{x}(m) \right)= D_{KL}\left(p(w), q(w) \right) = \sum\limits_{w\in \mathcal{W}} p(w) \ln \frac{p(w)}{q(w)} </tex>,</center> где <tex>p(w),q(w)</tex> - плотности распределений случайных величины из <tex>N(\mathbf{w}(n),A(n))</tex> и <tex>N(\mathbf{w}(m),A(m))</tex> соотвественно, и расстояний в пространстве значений: |
+ | |||
+ | [[Изображение:KL SSE Distance.png|thumb|right]] | ||
+ | |||
<center><tex>Dintance \left( \mathbf{x}(n), \mathbf{x}(m) \right)=\sum_{t=1}^{24}\left( x_t(n)-x_t(m) \right)^2 </tex></center> | <center><tex>Dintance \left( \mathbf{x}(n), \mathbf{x}(m) \right)=\sum_{t=1}^{24}\left( x_t(n)-x_t(m) \right)^2 </tex></center> | ||
- | |||
- | Результаты экспериментов на реальных данных | + | Результаты экспериментов на реальных данных показывают, что можно выделить среди множества пар временных рядов похожие и непохожие. Используя расстояние Кульбака-Лейблера между распределениями параметров моделей можно установить порог, который поможет определить похожие на заранее выделенный класс временных рядов. Для пояснения вышесказанного приведем пример на модельных данных, в которых участвуют временные ряды двух типов. |
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Пример на сгенерированных данных=== | ||
+ | [[Изображение:TestExample.png|thumb|left]] | ||
+ | [[Изображение:GeterateSeries5.png|thumb|right]] | ||
+ | |||
+ | Проведен для для 6 моделей распределения данных: | ||
+ | '''1)''' <tex>f(\mathbf{x},\mathbf{w}) = a_1 + b_1\cdot{t}+\epsilon</tex>, где <tex>\epsilon\in N(0, 1)</tex>; | ||
+ | |||
+ | '''2)''' <tex>f(\mathbf{x},\mathbf{w}) = a_1 + b_1\cdot{t}+\epsilon</tex>, где <tex>\epsilon\in N(0, 5)</tex>; | ||
+ | |||
+ | '''3)''' <tex>f(\mathbf{x},\mathbf{w}) = a_1-10*\sigma_{\epsilon} + b_1\cdot{t}+\epsilon</tex>, где <tex>\epsilon\in N(0, 1)</tex>, <tex>\sigma_{\epsilon}</tex> - дисперсия случайной величины; | ||
+ | |||
+ | '''4)''' <tex>f(\mathbf{x},\mathbf{w}) = a_1 + 1,5\cdot b_1\cdot{t}-t^2+\epsilon</tex>, где <tex>\epsilon\in N(0, 5)</tex>; | ||
+ | |||
+ | '''5)''' <tex>f(\mathbf{x},\mathbf{w}) = a_1 + 1,5\cdot b_1\cdot{t}-t^2+\epsilon</tex>, где <tex>\epsilon\in N(0, 10)</tex>; | ||
+ | |||
+ | '''6)''' <tex>f(\mathbf{x},\mathbf{w}) = a_1 -10*\sigma_{\epsilon} + 1,5\cdot b_1\cdot{t}-t^2+\epsilon</tex>, где <tex>\epsilon\in N(0, 5)</tex>. | ||
+ | |||
+ | Первые три модели относится в первому типу (line), три последних модели относятся ко второму типу (parabola). | ||
+ | Прогнозирующая модель была линейной: <tex>\widehat{x}_{t}=w_1+w_2\cdot{t}</tex>. | ||
+ | |||
+ | [[Изображение:TestSample KL SSE Distance.png|thumb|left]] | ||
+ | [[Изображение:TestSample KL WarpingPath Distance.png|thumb|right]] | ||
+ | На тестовом примере видно, что чем больше расстояние между рядами в пространстве значений, тем скорее больше будет разница между распределениями настроенных параметров. На картинках можно явно разделить увидеть, что расстояние Кульбака-Лейблера между распределениями настроенных параметров для похожих моделей (line - line или parabola - parabola) значительно меньше расстояния между параметрами непохожих моделей (line-parabola или parabola-line). Таким образом можно настроить такой порог, по которому можно было бы определить, относится ли временной ряд к заранее фиксированному типу моделей. | ||
+ | |||
== Исходный код == | == Исходный код == | ||
== Смотри также == | == Смотри также == |
Версия 10:39, 22 декабря 2010
Содержание |
Аннотация
Временным рядом называется последовательность упорядоченных по времени значений некоторой вещественной переменной . Элемент последовательности называется отсчетом временного ряда.
Задача авторегрессионного прогноза заключается в нахождении модели , где вектор параметров модели, которая наилучшим образом приближает следущее значение временного ряда . Свертка временного ряда возникает в случае существования на множестве подпоследовательностей временного ряда некоторого инварианта. Примером инварианта является период временного ряда, который физически может означать сезонность в данных. При этом построенная модель должна учитывать наличие инварианта и сохранять данное свойство для ряда прогнозов: .
Постановка задачи
Пусть задан временной ряд . Предполагается, что отсчеты были сделаны через равные промежутки времени, и период временного ряда равен , при этом , где . Задана модель ,где случайная величина имеет нормальное распределение . Вектор параметров модели рассматривается как многомерная случайная величина. Пусть плотность распределения параметров имеет вид многомерного нормального распределения с матрицей ковариации . Модель некоторым образом учитывает период временного ряда. Предполагается, модель временного ряда может меняться с течением времени, т.е. для разных подпоследовательностей длины оптимальные параметры модели будут отличаться.
Расстояние между временными рядами
Расстояние между различными подпоследовательностями и можно вычислить как сумму квадратов отклонений:
Однако этот метод учитывает только расстояния между парами отсчетов временного ряда. Метод поиска пути минимальной стоимости (warping path) учитывает не только расстояние между отсчетами рядов, но и форму самих временных рядов.
Предположим, мы имеем две последовательности и . Тогда построим матрицу попарных расстояний:
Далее из элементов матрицы строим путь:
Построенный путь удовлетворяет следующим условиям:
'1 граничные условия:'Стоимостью пути будет
Среди всех путей есть по крайней мере один с минимальной стоимостью. Его стоимость и будем считать расстоянием между последовательностями:
Расстояние между параметрами модели
Расстояние между параметрами модели , настроенной на разных подпоследовательностях, можно измерить как расстояние Кульбака-Лейблера между функциями распределения 2-ух случайных величин :
Постановка задачи
Требуется исследовать зависимость расстояния между параметрами модели от расстояния между подпоследовательностями, на которых эти параметры были настроены.
Алгоритм
Для настройки параметров модели используется связный байесовский вывод
где — функция ошибки,
— матрица Гессе функции ошибок,
— функция ошибки в пространстве данных.
Настройка параметрической регрессионной модели происходит в 2 этапа, сначала настраиваются параметры при фиксированных гиперпараметрах , затем при вычисленных значениях параметров функция правдоподобия оптимизируется по гиперпараметрам. Процедура повторяется, пока настраиваемые параметры не стабилизируется.
Для простоты вычислений, считаем, что имеет диагональный вид:
.
Вычислительный эксперимент
Пример на реальных дынных
Вычислительный эксперимент проводился на реальных данных. Использовались временные ряды потребления электроэнергии в некотором регионе с отсчетами 1 час, период ряда равен . Эксперимент состоит из этапов:
1) из множества порождающих моделей:
была построена их суперпозиция, описывающая потребление электроэнергии за сутки:
2) модель настраивается на подпоследовательности
,
где - номер суток. В результате получаем набор оптимальных параметров и гиперпараметров модели, оптимальных для данной подпоследовательности:
3) строится зависимость расстояния между последовательностями в пространстве параметров:
Результаты экспериментов на реальных данных показывают, что можно выделить среди множества пар временных рядов похожие и непохожие. Используя расстояние Кульбака-Лейблера между распределениями параметров моделей можно установить порог, который поможет определить похожие на заранее выделенный класс временных рядов. Для пояснения вышесказанного приведем пример на модельных данных, в которых участвуют временные ряды двух типов.
Пример на сгенерированных данных
Проведен для для 6 моделей распределения данных: 1) , где ;
2) , где ;
3) , где , - дисперсия случайной величины;
4) , где ;
5) , где ;
6) , где .
Первые три модели относится в первому типу (line), три последних модели относятся ко второму типу (parabola). Прогнозирующая модель была линейной: .
На тестовом примере видно, что чем больше расстояние между рядами в пространстве значений, тем скорее больше будет разница между распределениями настроенных параметров. На картинках можно явно разделить увидеть, что расстояние Кульбака-Лейблера между распределениями настроенных параметров для похожих моделей (line - line или parabola - parabola) значительно меньше расстояния между параметрами непохожих моделей (line-parabola или parabola-line). Таким образом можно настроить такой порог, по которому можно было бы определить, относится ли временной ряд к заранее фиксированному типу моделей.
Исходный код
Смотри также
Литература
- Стрижов В.В, Пташко Г.О. Построение инвариантов на множестве временных рядов путем динамической свертки свободной переменной. — ВЦ РАН, 2009.
- Стрижов В.В Методы выбора регрессионных моделей. — ВЦ РАН, 2010.