НачатьНачать бесплатно

Прогнозирование спроса на электроэнергию

Суточный спрос на электроэнергию можно также моделировать как функцию температуры. Как вы, возможно, замечали по счетам за электричество, в жаркие дни потребление растёт из-за кондиционирования воздуха, а в холодные — из-за отопления.

В этом упражнении вы построите квадратичную регрессионную модель с ошибкой ARMA. Один год суточных данных хранится в elecdaily и включает общий суточный спрос, индикаторную переменную рабочих дней (рабочий день обозначен как 1, нерабочий — как 0) и дневные максимальные температуры. Поскольку в данных присутствует недельная сезонность, параметр frequency установлен равным 7.

Взглянем на первые три строки:

> elecdaily[1:3, ]
       Demand Temperature Workday
[1,] 174.8963        26.0       0
[2,] 188.5909        23.0       1
[3,] 188.9169        22.2       1

elecdaily уже загружен в вашу рабочую среду.

Это упражнение является частью курса

Прогнозирование в R

Посмотреть курс

Инструкции к упражнению

  • Постройте временны́е графики только для суточного спроса и максимальных температур с разбивкой на панели.
  • Сформируйте матрицу регрессоров, включив MaxTemp для максимальных температур, MaxTempSq — квадрат максимальной температуры — и Workday, именно в таком порядке. Обратите внимание: второй аргумент cbind() потребует простого математического оператора.
  • Подберите динамическую регрессионную модель для столбца спроса с ошибками ARIMA и сохраните результат в переменную fit.
  • Если следующий день является рабочим (индикатор равен 1), а прогноз максимальной температуры составляет 20°C, каков прогнозируемый спрос? Укажите соответствующие значения в cbind() для аргумента xreg функции forecast().

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Time plots of demand and temperatures
autoplot(elecdaily[, c(___, ___)], facets = ___)

# Matrix of regressors
xreg <- cbind(MaxTemp = elecdaily[, "Temperature"],
              MaxTempSq = ___,
              Workday = ___)

# Fit model
fit <- auto.arima(___, xreg = xreg)

# Forecast fit one day ahead
forecast(___, xreg = cbind(___, ___, ___))
Редактировать и запускать код