Математическое бюро
Прогнозирование на ОРЭМ

Московская энергетическая биржа нам декламирует: «Модель оптового рынка электрической энергии и мощности (ОРЭМ) требует от энергетиков профессионального подхода к организации и планированию производства и потребления электроэнергии, учета рисков ценовых колебаний, умения их прогнозировать и своевременно страховать (хеджировать) через ликвидный рынок финансовых контрактов». Так что прогнозировать индексы хабов нужно и важно!

Постановка задачи прогнозирования индексов хабов

Трейдером была поставлена задача прогнозирование двух временных рядов индексов хабов на два месяца вперед от текущего. То есть, например, если сейчас август, то требуется спрогнозировать сентябрь и октябрь в суточном разрешении, то есть получить будущие суточные значения временного ряда индекса хаба на два месяца вперед.

Для оценки качества прогнозов Математического бюро на данной постановке задачи были выбраны следующие хабы:

  • Центр
  • Западная Сибирь.

В связи с тем, что создание модели и предварительное тестовое прогнозирование выполнялось пост фактум, то принималось условие, что фактические значения индексов хабов в текущем месяце имеются до середины, то есть до 15 числа. Горизонты прогнозирования указаны на рисунке.

Момент прогноза и горизонт прогнозирования для индексов хабов

Момент прогноза и горизонт прогнозирования для индексов хабов

Формирование модели

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

На первом этапе при помощи адаптированного алгоритма сглаживания я получала средние значения на все недели прогнозных месяцев. Причем недельные прогнозы получались итерационно — ниже приведен псевдокод алгоритма.

Коэффициенты alpha, gamma и delta определялись заранее на этапе создания модели. Об этом читайте подробно мою запись о прогнозировании продаж при помощи экспоненциального сглаживания.

FW = 1; // Неделя прогноза (Forecast week)
WQ = 13; // Количество недель (Weeks quantity)
Цикл {FW от 1 до WQ}
   	Прогноз{FW} = delta * (gamma * (alpha * Факт{FW-1} + (1-alpha) * Факт{FW-2}) + (1-gamma) * Факт{FW-3}) + (1-delta) * Факт{FW-4}; // Вычисляем будущее значение недели FW
   Факт{длина Факт + 1} = Прогноз{FW}; // Полученное значение записываем в факт
   FW = FW + 1; // Устанавливаем счетчик на следующую неделю

На втором этапе прогнозирования полученное недельное значение разбивалось по суткам следующим образом.

Прогноз(понедельник, неделя FW) = Прогноз{FW} * K(пон, неделя FW),

где Прогноз{FW} — полученное на предыдущем этапе значение недельного прогноза, а K(пон) — коэффициент понедельника для этой недели года. Например, мы получили среднее значение Прогноз{1} = 950 руб/МВт.ч при этом мы знаем, что для этой недели года цена в понедельник значение индекса хаба в среднем составляет около 1.059 от средненедельного значения. Тогда Прогноз(понедельник, неделя 1) = 950 * 1.059 = 1006.05 руб/МВт.ч

Алгоритм определения коэффициентов несложный, однако несколько громоздкий. Для любопытных, а также практиков я сделала выдержку из своего кода в MATLAB с демонстрацией собственной реализации подобного разбиения.

В следующей записи блога я познакомлю читателей с результатами тестового прогнозирования индекса хабов на периоде с октября по март 2012 года, а затем, познакомлю с результатами боевого прогнозирования за период с марта по май 2012 года, а также с результатами ежедневного прогнозирования за период с июня по август 2012 года.

Комментарии