Долгосрочное прогнозирование ежедневных цен на электроэнергию (пример)
Материал из MachineLearning.
Содержание |
Постановка задачи
У нас есть временной ряд из матрицы признаков и вектора ответов. Нам необходимо восстановить вектор ответов по матрице признаков . Известно, что временной ряд, который необходимо восстановить идет непосредственно после временного ряда, ответы для которого нам известны.
Предлагается использовать функционал качества MAPE:
- ,
где -- восстановленные ответы, а -- правильные ответы.
Описание данных
У нас есть данные с 01/01/2003 до сегодняшнего дня. Данные для прогнозирования состоят из временного ряда, различных погодных параметров (температура, скорость ветра, относительная влажность, ...) и средних цен на электричество.
В нашей задаче мы используем следующие данные - матрицу переменных xRegression и вектор откликов yRegression. Мы будем обозначать их X и Y соответственно. Размер X -- , где -- количество объектов (временной ряд дней), а -- количество переменных. Размер Y -- .
Первый столбец и -- временной ряд. Второй столбец -- вектор откликов. Они нормализованы на среднегодичное значение. Количество переменных в -- 26. Они представлены в таблице ниже.
# | Описание |
---|---|
1 | временной ряд |
2-6 | день недели |
7-18 | месяц |
19 | средняя температура |
20 | индекс HDD |
21 | индексCDD |
22 | максимальная температура |
23 | минимальная температура |
24 | относительная влажность |
25 | осадки |
26 | скорость ветра |
Предположения о характере данных
- Предполагается, что отсчеты времени сделаны через равные промежутки.
- Предполагается, что ряд имеет периодическую составляющую.
- Предполагается, что ряд имеет пропущенные значения.
- Предполагается, что длина ряда кратна периоду. Это условие можно достичь, присоединив к началу ряда необходимое число пропущенных значений.
В нашем случае, данные имеют ярко выраженную годовую периодическую составляющyю. Это можно проследить на примере данных о средней температуре за день. Data-mean_temp.png
Пути решения задачи
- Данные имеют годовую периодику. Будем выполнять прогноз с горизонтом прогноза, равным длине периода, при помощи авторегрессии.
- Параметры модели, с помощью которых выполняется прогноз вектора Y, находятся с помощью алгоритма LARS.
Авторегрессия
Построение авторегрессионной матрицы. Дан временной ряд .
Составляется -матрица значений временного ряда:
, в которой длина ряда .
Обозначим столбцы матрицы . Для каждого столбца матрицы построим набор моделей-предикатов. Для это зафиксируем столбец , считая, что прогнозируеем значение ряда в момент времени .
Для каждого из прочих столбцов решим задачу линейной регрессии , где матрица
Функции заданы или определены, исходя из дополнительных условий.
Выбирается заданное число векторов , доставляющих наибольшее значение функционалу качества. Обозначим - множество выбранных индексов . Строится корректор над множеством моделей-предикатов- линейная регрессия с ограничением на неотрицательность векторов . Матрица - присоединённые векторы . Прогнозируемое значение ряда в момент времени равно значению первого элемента вектора .
Вычислительный эксперимент
Авторегрессия
Выборка разбивается на обучающую и тестовую. Тестовой выборкой являются данные за последний год. Прогнозирование выполняется с помощью построения авторегрессионной матрицы. На примере нескольких временных рядом посмотрим, как реальные данные соотносятся с прогнозируемыми.
Cредняя температура
Минимальная температура
Индекс HDD
Осадки
LARS
Выборка разбивается на обучающую и тестовую. Тестовой выборкой являются данные за последний год. Вектор Y находим с помощью алгоритма LARS.Проверим, насколько реальные данные соотносятся с прогнозируемыми.
График LARS
График MAPE
Код
Смотри также
Литература
- Vadim Strijov Model Generation and its Applications in Financial Sector. — 2009.
- Bradley Efron, Trevor Hastie, Iain Johnstone and Robert Tibshirani Least Angle Regression. — 2002.
- Стрижов В.В Методы выбора регрессионных моделей. — 2010.
- Rafal Weron Modeling and Forecasting Electricity Loads and Prices. — 2006.