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

(и это легко)

Привет, Хабр! Вас приветствуют Нане Бегларян (инженер данных) и Дмитрий Распопов (эксперт отдела искусственного интеллекта) из компании «Цифрум» Госкорпорации «Росатом». В этой статье мы поговорим с вами о задаче, связанной с разработкой комплексной модели для прогнозирования цен на электроэнергию, которая позволяет обеспечить стабильность и надежность работы энергосистемы.

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

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

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

Под понятием рынок электроэнергии мы рассматриваем рынок на сутки вперед (РСВ, DAM). Он представляет собой спотовый рынок, аукционного типа, который определяет цены на электроэнергию на сутки вперед для каждого из 24 часов следующего дня.

Также существует еще один тип спотового рынка — внутридневной рынок (ВР, IDM), который намного меньше и предоставляет участникам возможность корректировать свои позиции на день вперед за определенное время до физической подачи электроэнергии (от пяти минут до двух часов). Поскольку спрос и предложение электроэнергии невозможно точно спрогнозировать, в электросети всегда будет наблюдаться некоторый дисбаланс после закрытия IDM для торговли, и этими дисбалансами необходимо управлять. С этой целью системный оператор организует рынок крайней меры, называемый рынком дисбаланса (или рынком резервных мощностей), чтобы гарантировать равенство спроса и предложения в режиме реального времени. Хронология этих рынков проиллюстрирована на рисунке 1.

Рисунок 1 – Хронология рынков

Рисунок 1 — Хронология рынков

При проектировании рынка электроэнергии РСВ находится в центре внимания, поскольку его цены обычно принимаются в качестве ориентира для производных финансовых инструментов (фьючерсов, форвардов, свопов, опционов и т.д.) и других двусторонних рынков. Регулирующие органы также обычно индексируют тарифы на электроэнергию в соответствии с ценами на плотины.

Участниками аукционов РСВ являются генерирующие электроэнергию предприятия, коммунальные компании, крупные промышленные потребители, трейдеры и розничные продавцы электроэнергии. Каждый участник делает заявку на покупку или продажу определенного количества электроэнергии по определенной цене на следующий день. Если бы функции спроса и предложения были непрерывными и делимыми, проблема определения расчетной рыночной цены (MCP) была бы тривиальной. Однако на практике технологические и экономические ограничения требуют, чтобы некоторые заявки размещались в виде неделимых блоков. Например, угольная электростанция обычно работает 24 часа в сутки, и, следовательно, она размещает заявки на продажу электроэнергии блоком в течение 24 часов. Для большинства электростанций, работающих на угле, неэкономично останавливать установку и запускать ее снова.

Основные бизнес-процессы, протекающие на РСВ, приведены в таблице 1.

Таблица 1 — Описание ежедневных операций на РСВ

Time Slot

Operation

00:00 — 17:00

Двусторонние соглашения на следующий день вводятся участниками рынка в систему.

00:00 — 12:30

Участники РСВ подают свои заявки на предстоящий день.

12:30 — 13:00

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

13:00 — 13:10

С помощью инструмента оптимизации определяется цена на ЭЭ (MCP)

13:10 — 13:30

Результаты публикуются, и принимаются возражения против сопоставления заявок.

13:30 — 14:00

Оцениваются и разрешаются возражения среди участников рынка.

14:00

Финальная цена на ЭЭ (MCP), средние почасовые цены и объемы торговли объявляются публично.

Любая задача, решаемая с помощью методов машинного обучения, связана с актуальной бизнес-проблемой. В результате анализа характеристик РСВ можем выявить бизнес-проблему, заключающуюся в повышении эффективности расчета плановых финансовых требований и обязательств. Кроме того, прогноз цен на рынке на сутки вперед необходим для поэтапного решения задачи планирования как генераторам, так и потребителям электроэнергии (ЭЭ).

 Сформулируем гипотезу: Используя используя исторические данные о выработке электроэнергии, ценах на газ, а также данные по другим связанным показателям РСВ (погодно-климатические факторы, цены фьючерсов, совокупные объемы спроса и предложения, плановая выработка основных типов генерации, индекс цен производителей и потребителей), можно выполнить прогноз цен на ЭЭ на несколько суток вперед и тем самым повысить эффективность расчета плановых финансовых требований и обязательств.

Из поставленной гипотезы формулируем решаемую задачу в терминах машинного обучения: необходимо, используя данные по фактическим ценам на электроэнергию и предикаты, разработать комплексную прогнозную модель (КПМ), представляющую собой модель машинного обучения и предназначенную для краткосрочного прогнозирования цен на электроэнергию.

Решение поставленной задачи происходило в несколько традиционных этапов, представленных на рисунке 2:

Рисунок 2 – Основные этапы разработки математической модели

Рисунок 2 — Основные этапы разработки математической модели

Сбор данных

Так как объект исследования — рынок электроэнергии, то информация собирается вручную с открытых источников. Основным источником сбора датасета стала платформа Exist Transparency (EPIAS) [1], которая предоставляет необходимые данные для прозрачной и надежной работы энергетических рынков. С платформы EPIAS были получены данные по объему выработки ЭЭ для каждого типа электростанций, доступной мощности для генерации, значения индексов потребительских цен, объемы заявок на покупку, а также цены на газ. Собранный датасет был обогащен данными с других интернет-ресурсов — курс валют, цены на фьючерсы и другие атрибуты, связанные с экономической отраслью.

Разведочный анализ, подготовка и предварительная обработка данных 

Разведочный анализ и подготовка данных выполнялись
совместно. Все признаки были приведены к единому периоду дискретизации —
1 час, а пустые значения заполнены с помощью сезонной интерполяции (способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений. Интерполяция использует значения некоторой функции, заданные в ряде точек, чтобы предсказать значения функции между ними).

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

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

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

  • Sum_PrIndVol — суммарное значение по возобновляемым источникам электроэнергии (ветроэнергетика, геотермальная, биомассовая энергетика, гидроэнергетика и другое);

  • PrIndVolRatio — отношение суммарного значения по ежедневному планированию к общему объему планирования выработки;

  • GasVolRatio — отношение объемов производства природного газа к общему объему планирования выработки;

  • DeficitVol — отношение потребления к общему объему планирования выработки.

Также были созданы признаки с помощью функции синуса для дня в неделе, часа и других атрибутов, полученных из даты. Кроме того, исходя из логики были созданы признаки, соответствующие временному лагу (сдвигу) значений инфляции на 3 и 4 месяца назад.

Все признаки были приведены к единому масштабу (среднее значение 0, стандартное отклонение 1) с помощью алгоритма стандартизации. Категориальные признаки были закодированы и приведены к числовому типу данных.

Рассмотрим подробнее график изменения цен на электроэнергию в доступный период с 1 января 2018 по 20 декабря 2022 гг, представленный на рисунке 1.

17ca6bf095f126d286228d24c79df13a.png

По динамике изменения цен на электроэнергию видно, что, начиная с середины 2021-ого произошел рост значений, по которому можно построить характерный тренд вплоть до настоящего времени. Можно предположить, что это происходит из-за нестабильной ситуации на рынке и в мировой экономике. Мы решили подробнее изучить ситуацию на РСВ в рассматриваемый период. Исходя из открытых источников [1,2] было выявлено, что на РСВ с января 2019 года был введен верхний лимит цены (price caps), и нет, к кепкам, к сожалению, это не имеет никакого отношения, хотя, принцип работы абсолютно схожий.  Price caps представляет собой искусственное ограничение цен, другими словами верхний лимит, значения которого представлены на рисунке 3.

Рисунок 3 – Графики изменения цены на ЭЭ и значений верхнего лимита

Рисунок 3 — Графики изменения цены на ЭЭ и значений верхнего лимита

В конце 2020 года и вначале 2021 значения верхнего предела были резко уменьшены, что стало ограничивать максимальную цену ЭЭ. Таким образом из-за введенного верхнего предела мы не можем оценить истинное влияние признаков на целевую переменную, а также использовать данные без «price caps» для обучения модели, поскольку зависимости, установленные математической моделью, будут совершенно иные.

Было принято решение, что для построения модели будут использоваться данные с price caps начиная с 1 января 2021 года, так как они соответствуют состоянию того рынка, который сохраняется до сих пор.

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

Было установлено, что наибольшее влияние на цену за ЭЭ оказывают такие признаки (в скобках показаны значения коэффициента корреляции): индекс потребительских цен, цена на газ, цены на фьючерсы, объем фьючерсов, индекс цен производителей, курс валюты, сгенерированные детерминированные признаки, ежедневное планирование выработки по некоторым типам электростанций, сумма объемов заявок на продажу, совокупное количество заказов за час.

Рисунок 4 – Корреляционная матрица

Рисунок 4 — Корреляционная матрица

Обучение и тестирование модели

Обучение и оценка точности модели выполнялась на различных временных интервалах — 3, 7 и 30 дней. В зависимости от этого объемы обучающей и тестовой выборки изменялись при каждом обучении модели для конкретного промежутка времени.

Для оценки точности моделей используются следующие метрики:

· MAPE — средняя абсолютная ошибка в процентах;

· RMSE — квадратный корень из средней квадратичной ошибки.

В результате сравнения нескольких предиктивных моделей на данных с price caps, то есть в диапазоне с января 2021 года по декабрь 2022 года, лучший результат показал алгоритм градиентного бустинга — CatBoost. Результаты сравнения моделей продемонстрированы в таблице 3.

Таблица 2 — Результаты сравнения моделей

MAPE

RMSE

Название модели

Примечания

3 дня

7 дней 

1 месяц

3 дня

7 дней 

1 месяц

LinearRegression

С price caps (с января 2021 до декабря 2022)

35,30

25,65

37,74

906,36

832,44

1143,34

RandomForestRegressor

С price caps (с января 2021 до декабря 2022)

24,60

17,23

20,93

640,92

573,19

608,33

KNeighborsRegressor

С price caps (с января 2021 до декабря 2022)

41,91

41,66

70,54

946,72

1813,20

2724,86

SVR

С price caps (с января 2021 до декабря 2022)

58,57

63,36

73,40

2412,36

2628,34

2825,87

ExtraTreesRegressor

С price caps (с января 2021 до декабря 2022)

24,45

16,70

23.04

637,53

550,45

726,60

LGBMRegressor

С price caps (с января 2021 до декабря 2022)

17.12

13,60

17,61

558,09

517,59

563,80

MLPRegressor

С price caps (с января 2021 до декабря 2022)

20,68

15,90

26,18

721,83

629,54

834,48

XGBRegressor

Без price caps (c сентября 2018 года до сентября 2020 года)

1,70

2,00

4,90

7,06

10,32

17,08

С price caps (с января 2021 до декабря 2022)

20,92

15,47

20.04

633,56

583,16

621,87

CatBoostRegressor

С price caps (с января 2021 до декабря 2022)

16,31

13,97

17,29

524,50

510,45

565,77

Прогноз с использованием предсказаний других признаков с price caps

84,01

63,14

52,56

2261,94

1984,90

1978,65

Авторегрессионная модель (ARIMA)

С price caps (с января 2021 до декабря 2022)

53,33

27,67

68,94

1205,19

1060,83

2644,92

LSTM 

С price caps (с января 2021 до декабря 2022)

27,98

19,87

17,86

848,79

742,90

649,31

RNN

Прогноз с использованием только целевой переменной (Цена на ЭЭ) с price caps (с января 2021 до декабря 2022)

28,41

19,12

23,47

0,16

647,03

667,81

Прогноз с использованием других фичей (факторная модель) с price caps

17,36

42,38

26,66

599,02

1642,01

874,82

Stacked LSTM

С price caps (с января 2021 до декабря 2022)

43,79

30,18

48,88

1027,37

940,34

940,60

CNN-LSTM

С price caps (с января 2021 до декабря 2022)

20,64

14,96

17,42

653,30

539,96

609,37

LSTM 2

С price caps (с января 2021 до декабря 2022)

33,98

19,04

799,56

919,22

749,18

799,56

Выбранная модель имеет минимальную среднюю абсолютную ошибку в процентах, равную 16.3% в трехдневном окне, что значительно ниже результатов остальных моделей. На рисунках 5–7 продемонстрированы прогнозы модели на 3 дня, 7 дней и 1 месяц соответственно.

Рисунок 5 - Прогноз модели CatBoostRegressor

Рисунок 5 — Прогноз модели CatBoostRegressor

Рисунок 6 - Прогноз модели CatBoostRegressor на 7 дней

Рисунок 6 — Прогноз модели CatBoostRegressor на 7 дней

Рисунок 7 - Прогноз модели CatBoostRegressor на 1 месяц

Рисунок 7 — Прогноз модели CatBoostRegressor на 1 месяц

Значимость признаков для алгоритма CatBoostRegressor показана на рисунке 8.

Рисунок 8 - Значимость признаков алгоритма CatBoostRegressor

Рисунок 8 — Значимость признаков алгоритма CatBoostRegressor

Выводы по результатам моделирования

Исходя из оценки качества и точности работы моделей для прогноза ЭЭ, будем использовать факторную регрессионную модель CatBoostRegressor, обученную на данных, содержащих price caps, с 1 января 2021 года по 20 декабря 2022 года.

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

  • средняя абсолютная ошибка в процентах на 3 дня — 16.3%;

  • средняя абсолютная ошибка на 7 дней — 13.2%;

  • средняя абсолютная ошибка на 30 дней — 17.2%.

Таким образом гипотеза об использовании исторических данных для прогноза цен на ЭЭ на РСВ была подтверждена и решена поставленная задача.

Надеемся и верим, что мы были полезны и будем рады обратной связи. До новых встреч!

И делимся списком источников, вдруг будет интересно

1.       EXIST TRANSPARENCY PLATFORM: официальный сайт.

URL: https://seffaflik.epias.com.tr/transparency/ 

2.              EXIST TRANSPARENCY PLATFORM: официальный сайт.

URL: https://www.epias.com.tr/wp-content/uploads/2016/03/public_document_eng_v4.pdf

3.              Cost Savings From Relaxation of Operational Constraints on a Power System With High Wind Penetration — Scientific Figure on ResearchGate: официальный сайт. URL: https://www.researchgate.net/figure/Flowchart-describing-the-simulation-of-day-ahead-and-real-time-scheduling-and-dispatch-in_fig1_275949636 (дата обращения 17 Mar, 2023)

4.              EXIST TRANSPARENCY PLATFORM: официальный сайт.

URL: https://www.epias.com.tr/gun-oncesi-piyasasi/eslestirme/

5.              NordPool — Europe’s leading power market and offers trading: официальный сайт. URL: https://www.nordpoolgroup.com/en/the-power-market/Day-ahead-market/Price-formation/

6.              EXIST TRANSPARENCY PLATFORM: официальный сайт.

URL: https://www.epias.com.tr/gun-oncesi-piyasasi/surecler/

7.              EXIST TRANSPARENCY PLATFORM: официальный сайт.

URL: https://seffaflik.epias.com.tr/transparency/piyasalar/gop/fiyattan-bagimsiz-satis-teklifi.xhtml

8.              EXIST TRANSPARENCY PLATFORM: официальный сайт.

URL: https://seffaflik.epias.com.tr/transparency/piyasalar/gop/fiyattan-bagimsiz-alis-teklifi.xhtml

9.              EXIST TRANSPARENCY PLATFORM: официальный сайт.

URL: https://seffaflik.epias.com.tr/transparency/piyasalar/gop/fiyattan-bagimsiz-satis-teklifi.xhtml  

10.          EXIST TRANSPARENCY PLATFORM: официальный сайт.

URL: https://seffaflik.epias.com.tr/transparency/uretim/planlama/kgup.xhtml

11.          EXIST TRANSPARENCY PLATFORM: официальный сайт.

URL: https://seffaflik.epias.com.tr/transparency/piyasalar/gop/eslesme-miktari.xhtml

12.          EXIST TRANSPARENCY PLATFORM: официальный сайт.

URL: https://seffaflik.epias.com.tr/transparency/tuketim/gerceklesen-tuketim/gercek-zamanli-tuketim.xhtml

13.          EXIST TRANSPARENCY PLATFORM: официальный сайт.

URL: https://seffaflik.epias.com.tr/transparency/uretim/planlama/eak.xhtml

© Habrahabr.ru