Долгосрочное прогнозирование ежедневных цен на электроэнергию (пример)

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

(Различия между версиями)
Перейти к: навигация, поиск
(Литература)
Строка 1: Строка 1:
 +
Решается задача долгосрочного прогнозирования цен на электроэнергию. Долгосрочное прогнозирование цен является основой для планирования и инвестирования. Для решения задачи рассматривается метод авторегрессии. При построении модели также производится отбор признаков при помощи [[Метод наименьших углов (пример)|метода наименьших углов]]
 +
== Постановка задачи ==
== Постановка задачи ==
-
Задана выборка <tex> D= \Bigl\{(\mathbf{x^i}, \mathbf{y^i})\Bigr\} _1 ^ m -</tex> множество <tex> m </tex> пар, состоящих из вектора значений свободных переменных <tex>\mathbf{x^i} </tex> и значения зависимой переменной <tex>\mathbf{y^i} </tex>. Индекс <tex> i </tex> объектов далее будем рассматривать, как элементы множества <tex> i \subset I =\Bigl\{1, \cdots, m\Bigr\}. </tex> Выборка разбивается на два множества <tex> I= \mathfrak{L} \sqcup \mathfrak{C} </tex> на обучающую и контрольную. Контрольная выборка содержит данные за последний месяц.
+
Дан временной ряд <tex>\mathbf{s}_1=[x_1,\ldots,x_{T-1}]^T</tex>, <tex>x\in\mathbb{R}^1</tex> и матрица признаков, столбцами которой являются <tex> \mathbf{s}_2, \mathbf{s}_3 \ldots \mathbf{s}_m</tex>. Необходимо спрогнозировать следующую величину <tex>x_{T}</tex>.
-
Дан временной ряд
+
Предполагается, что
-
<tex>x=\begin{Vmatrix}
+
-
x_1 \\
+
-
x_2 \\
+
-
\vdots \\
+
-
x_T
+
-
\end{Vmatrix}
+
-
</tex>.
+
-
Составляется <tex> (m {X} k) </tex> -матрица значений временного ряда:
+
1) отсчёты сделаны через равные промежутки времени,
 +
 
 +
2) ряд имеет периодическую составляющую,
 +
 
 +
3) ряд не имеет пропущенных значений,
 +
 
 +
4) длина ряда кратна периоду $k$.
 +
 
 +
 
 +
Составляется <tex> (m \times k) </tex> -матрица значений временного ряда:
<tex>
<tex>
-
X=\begin{Vmatrix}
+
A =
-
x_T & x_T-1 \cdots & x_T-k+1 \\
+
\left(
-
x_(m-1)k & x_(m-1)k-1 \cdots & x_(m-2)k+1 \\
+
\begin{array}{llll}
-
\vdots
+
x_T & x_{T-1} & \ldots & x_{T-k+1} \\
-
\\
+
x_{(m-1)k} & x_{(m-1)k-1} & \ldots & x_{(m-2)k+1} \\
-
x_k & x_k-1 \cdots & x_1\\
+
\ldots & \ldots & \ldots & \ldots \\
-
\end{Vmatrix}
+
x_{nk} & x_{nk-1} & \ldots & x_{n(k-1)+1} \\
-
</tex>, в которой длина ряда <tex> T= mk </tex>.
+
\ldots & \ldots & \ldots & \ldots \\
 +
x_k & x_{k-1} & \ldots & x_1 \\
 +
\end{array}
 +
\right),
 +
</tex>
 +
в которой длина ряда <tex> T= mk </tex>.
-
Обозначим столбцы матрицы <tex> x_k, \cdots x_1\\ </tex>. Для каждого столбца <tex> i </tex> матрицы <tex> X </tex> построим набор моделей-предикатов. Для это зафиксируем столбец <tex> x_i </tex> , считая, что прогнозируеем значение ряда в момент времени <tex> i+k </tex>.
+
<tex>
-
==Пути решения задачи==
+
A =
 +
\left(
 +
\begin{array}{l|lll}
 +
x_T & x_{T-1} & \ldots & x_{T-k+1} \\
 +
\hline\\
 +
x_{(m-1)k} & x_{(m-1)k-1} & \ldots & x_{(m-2)k+1} \\
 +
\ldots & \ldots & \ldots & \ldots \\
 +
x_{nk} & x_{nk-1} & \ldots & x_{n(k-1)+1} \\
 +
\ldots & \ldots & \ldots & \ldots \\
 +
x_k & x_{k-1} & \ldots & x_1 \\
 +
\end{array}
 +
\right).
 +
</tex>
 +
Введём обозначения
 +
<tex>
 +
A=
 +
\left(
 +
\begin{array}{l|l}
 +
x_T & \mathbf{x}^T\\
 +
\hline \\
 +
\mathbf{y} & X \\
 +
\end{array}
 +
\right).
 +
</tex>
-
* Прогноз вектора <tex> \mathbf{y} </tex> с горизонтом прогноза, равным длине периода выполняется при помощи авторегрессии.
 
-
* Прогноз временных рядов матрицы <tex> X </tex> выполняется при помощи авторегрессии. Построение вектора <tex> \mathbf{y} </tex> по матрице признаков <tex> X </tex>, выполняется при помощи [[Метод наименьших углов (пример)|LARS]].
 
-
===Авторегрессия===
+
В случае, когда учитываются временные ряды <tex> \mathbf{s}_1, \mathbf{s}_2 \cdots \mathbf{s}_m</tex>, для каждого <tex>j</tex>-го временного ряда строится матрица <tex>S_j</tex> и присоединяется справа. Полученная матрица <tex> A= \begin{bmatrix} S_1 & S_2 & \cdots & S_m \end{bmatrix} .</tex>
-
Построение авторегрессионной матрицы.
+
Пусть задан набор функций <tex>G=\{g_1,\ldots,g_r\}</tex>, например,
-
Зафиксируем столбец <tex> x_i </tex>, и для каждого из них построим набор моделей предикатов.
+
 
-
Для каждого из прочих столбцов <tex> x_j, j= 1 \cdots ,k\\ </tex> решим задачу линейной регрессии <tex> |x_i-\mathbf{G_jw}\|^2\longrightarrow\min </tex>, где матрица
+
<tex>g_1=1, g_2=\sqrt{x}, g_3=x, g_4=x\sqrt{x}</tex>. Матрица порождённых признаков
<tex>
<tex>
-
G=\begin{Vmatrix}
+
A =
-
g_1(x_mj) & g_2(x_mj) \cdots & g_r(x_mj) \\
+
\left(
-
g_1(x_(m-1)j & g_2(x_(m-1)j) \cdots & g_r(x_(m-1)j \\
+
\begin{array}{l|lllllll}
-
\vdots
+
x_T & g_1\circ x_{T-1} & \ldots & g_r\circ x_{T-1} & \ldots & g_1\circ x_{T-k+1} & \ldots & g_r\circ x_{T-k+1}\\
-
\\
+
\hline\\
-
g_1(x_j) & g_2(x_j) \cdots & g_r(x_j)\\
+
x_{(m-1)k} & g_1\circ x_{(m-1)k-1}& \ldots & g_r\circ x_{(m-1)k-1} & \ldots & g_1\circ x_{(m-2)k+1} & \ldots & g_r\circ x_{(m-2)k+1} \\
-
\end{Vmatrix}
+
\ldots & \ldots & \ldots & \ldots & \ldots & \ldots & \ldots & \ldots\\
 +
x_{nk} & g_1\circ x_{nk-1} & \ldots & g_r\circ x_{nk-1} & \ldots & g_1\circ x_{n(k-1)+1} & \ldots & g_r\circ x_{n(k-1)+1}\\
 +
\ldots & \ldots & \ldots & \ldots & \ldots & \ldots & \ldots & \ldots\\
 +
x_k & g_1\circ x_{k-1} & \ldots & g_r\circ x_{k-1} & \ldots & g_1\circ x_1 & \ldots & g_r\circ x_1\\
 +
\end{array}
 +
\right).
</tex>
</tex>
-
Функции <tex> g_1, \cdots , g_r </tex> заданы или определены, исходя из дополнительных условий.
+
==Пути решения задачи==
 +
Требуется решить задачу линейной регресии <tex>|X\mathbf{w}-\mathbf{y}\|^2\longrightarrow\min. </tex>
 +
Требуется найти такие параметры <tex>\mathbf{w}</tex>, которые доставляют минимум норме вектора невязок <tex>X\mathbf{w}-\mathbf{y}</tex>.
 +
 
 +
<tex> \mathbf{w}=(X^TX)^{-1}(X^T\mathbf{y}).</tex>
 +
 
 +
В терминах линейной регрессии
 +
 
 +
<tex>\mathbf{y}= X\mathbf{w}</tex>
 +
 
 +
<tex>y_T= <\mathbf{x}^{T}, \mathbf{w}></tex>
-
Выбирается заданное число <tex> p </tex> векторов <tex> G_jw </tex> , доставляющих наибольшее значение функционалу качества. Обозначим <tex> P </tex> - множество выбранных индексов <tex> {j} </tex>. Строится корректор над множеством моделей-предикатов- линейная регрессия <tex> |x_i-\mathbf{H_pb}\|^2\longrightarrow\min </tex> с ограничением на неотрицательность векторов <tex> b </tex>. Матрица <tex> H_p </tex> - присоединённые векторы <tex> G_jw </tex>. Прогнозируемое значение ряда <tex> x </tex> в момент времени <tex> k+i </tex> равно значению первого элемента вектора <tex> H_pb </tex>.
+
Возможны два подхода к нахождению значения <tex>x_T</tex>. Первый заключается в последовательном построении прогнозируемых значений. В качестве вектора <tex>\mathbf{x}^{T}</tex> выбираюся <tex>K-1</tex> предыдущих значений временного ряда, и для каждого следующего значения <tex>x_{T+1}, x_{T+2}, ..., x_{T+l}</tex> необходимо заново строить авторегрессионную матрицу <tex>X</tex>. Второй подход заключается в прогнозировании периода ряда по предыдущему. В качестве вектора <tex>\mathbf{x}^{T}</tex> выбираются <tex>K-1</tex> значений ряда предшествующего периода. При данном подходе перестраивать авторегрессионную матрицу <tex>X</tex> не нужно.
 +
При увеличении числа признаков (в случае добавления столбцов <tex>\mathbf{s}_2..., \mathbf{s}_m)</tex> необходимо уменьшить размерность пространства засчёт отбора признаков. В качестве алгоритма отбора признаков выбран [[Метод наименьших углов (пример)|метод наименьших углов]]. Проверяется, улучшает ли отбор признаков прогнозирование.

Версия 21:58, 6 декабря 2010

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

Содержание

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

Дан временной ряд \mathbf{s}_1=[x_1,\ldots,x_{T-1}]^T, x\in\mathbb{R}^1 и матрица признаков, столбцами которой являются  \mathbf{s}_2, \mathbf{s}_3 \ldots \mathbf{s}_m. Необходимо спрогнозировать следующую величину x_{T}.

Предполагается, что

1) отсчёты сделаны через равные промежутки времени,

2) ряд имеет периодическую составляющую,

3) ряд не имеет пропущенных значений,

4) длина ряда кратна периоду $k$.


Составляется  (m \times k) -матрица значений временного ряда:


A =
\left(
\begin{array}{llll}
x_T     & x_{T-1}   & \ldots & x_{T-k+1}   \\
x_{(m-1)k} & x_{(m-1)k-1} & \ldots & x_{(m-2)k+1} \\
\ldots  & \ldots    & \ldots & \ldots    \\
x_{nk} & x_{nk-1} & \ldots & x_{n(k-1)+1} \\
\ldots  & \ldots    & \ldots & \ldots    \\
x_k     & x_{k-1}   & \ldots & x_1       \\
\end{array}
\right),
в которой длина ряда  T= mk .


A =
\left(
\begin{array}{l|lll}
x_T     & x_{T-1}   & \ldots & x_{T-k+1}   \\
\hline\\
x_{(m-1)k} & x_{(m-1)k-1} & \ldots & x_{(m-2)k+1} \\
\ldots  & \ldots    & \ldots & \ldots    \\
x_{nk} & x_{nk-1} & \ldots & x_{n(k-1)+1} \\
\ldots  & \ldots    & \ldots & \ldots    \\
x_k     & x_{k-1}   & \ldots & x_1       \\
\end{array}
\right).

Введём обозначения 
A= 
\left(
\begin{array}{l|l}
x_T     & \mathbf{x}^T\\
\hline \\
\mathbf{y} & X \\
\end{array}
\right).


В случае, когда учитываются временные ряды  \mathbf{s}_1, \mathbf{s}_2 \cdots \mathbf{s}_m, для каждого j-го временного ряда строится матрица S_j и присоединяется справа. Полученная матрица  A= \begin{bmatrix} S_1 & S_2 & \cdots & S_m \end{bmatrix} .

Пусть задан набор функций G=\{g_1,\ldots,g_r\}, например,

g_1=1, g_2=\sqrt{x}, g_3=x, g_4=x\sqrt{x}. Матрица порождённых признаков


A =
\left(
\begin{array}{l|lllllll}
x_T  & g_1\circ x_{T-1}    & \ldots & g_r\circ x_{T-1}        & \ldots & g_1\circ x_{T-k+1} & \ldots   & g_r\circ x_{T-k+1}\\
\hline\\
x_{(m-1)k} & g_1\circ x_{(m-1)k-1}& \ldots & g_r\circ x_{(m-1)k-1}   & \ldots & g_1\circ x_{(m-2)k+1} & \ldots & g_r\circ x_{(m-2)k+1} \\
\ldots & \ldots      & \ldots & \ldots        & \ldots & \ldots  & \ldots      & \ldots\\
x_{nk} & g_1\circ x_{nk-1}    & \ldots & g_r\circ x_{nk-1}       & \ldots & g_1\circ x_{n(k-1)+1} & \ldots & g_r\circ x_{n(k-1)+1}\\
\ldots & \ldots      & \ldots & \ldots        & \ldots & \ldots  & \ldots      & \ldots\\
x_k & g_1\circ x_{k-1}     & \ldots & g_r\circ x_{k-1}        & \ldots & g_1\circ x_1  & \ldots         & g_r\circ x_1\\
\end{array}
\right).

Пути решения задачи

Требуется решить задачу линейной регресии |X\mathbf{w}-\mathbf{y}\|^2\longrightarrow\min. Требуется найти такие параметры \mathbf{w}, которые доставляют минимум норме вектора невязок X\mathbf{w}-\mathbf{y}.

 \mathbf{w}=(X^TX)^{-1}(X^T\mathbf{y}).

В терминах линейной регрессии

\mathbf{y}= X\mathbf{w}

y_T=  <\mathbf{x}^{T}, \mathbf{w}>

Возможны два подхода к нахождению значения x_T. Первый заключается в последовательном построении прогнозируемых значений. В качестве вектора \mathbf{x}^{T} выбираюся K-1 предыдущих значений временного ряда, и для каждого следующего значения x_{T+1}, x_{T+2}, ..., x_{T+l} необходимо заново строить авторегрессионную матрицу X. Второй подход заключается в прогнозировании периода ряда по предыдущему. В качестве вектора \mathbf{x}^{T} выбираются K-1 значений ряда предшествующего периода. При данном подходе перестраивать авторегрессионную матрицу X не нужно.

При увеличении числа признаков (в случае добавления столбцов \mathbf{s}_2..., \mathbf{s}_m) необходимо уменьшить размерность пространства засчёт отбора признаков. В качестве алгоритма отбора признаков выбран метод наименьших углов. Проверяется, улучшает ли отбор признаков прогнозирование.


Смотри также

ссылка на статью и код

Литература

  1. Vadim Strijov Model Generation and its Applications in Financial Sector. — Middle East Technical University, 2009.
  2. Bradley Efron, Trevor Hastie, Iain Johnstone and Robert Tibshirani Least Angle Regression. — 2002.
  3. Стрижов В.В Методы выбора регрессионных моделей. — ВЦ РАН, 2010.
  4. Rafal Weron Modeling and Forecasting Electricity Loads and Prices. — 2006.
  5. Hsiao-Tien Pao A Neural Network Approach to m-Daily-Ahead Electricity Price Prediction. — 2006.
  6. Wei Wu, Jianzhong Zhou,Li Mo and Chengjun Zhu Forecasting Electricity Market Price Spikes Based on Bayesian Expert with Support Vector Machines. — 2006.


Данная статья является непроверенным учебным заданием.
Студент: Раиса Джамтырова
Преподаватель: В.В.Стрижов
Срок: 24 декабря 2010

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.

Личные инструменты