Zacznij terazZacznij za darmo

Prognozowanie zapotrzebowania na energię elektryczną

Dzienne zapotrzebowanie na energię elektryczną można również modelować jako funkcję temperatury. Jak pewnie wiesz z rachunków za prąd, w upalne dni zużywa się więcej energii na klimatyzację, a w zimne – na ogrzewanie.

W tym ćwiczeniu dostosujesz kwadratowy model regresji z błędem ARMA. Roczne dane dzienne są przechowywane jako elecdaily i obejmują łączne dzienne zapotrzebowanie, zmienną wskaźnikową dla dni roboczych (dzień roboczy jest oznaczony wartością 1, a dzień wolny – wartością 0) oraz dzienne maksymalne temperatury. Ze względu na sezonowość tygodniową parametr frequency został ustawiony na 7.

Przyjrzyjmy się pierwszym trzem wierszom:

> 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 został wcześniej wczytany do twojego środowiska pracy.

To ćwiczenie jest częścią kursu

Prognozowanie w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Stwórz wykresy czasowe wyłącznie dla dziennego zapotrzebowania i maksymalnych temperatur z podziałem na panele (facetting).
  • Zbuduj macierz regresorów zawierającą: MaxTemp dla maksymalnych temperatur, MaxTempSq reprezentujący kwadrat maksymalnej temperatury oraz Workday – w tej kolejności. Drugi argument cbind() będzie wymagał prostego operatora matematycznego.
  • Dopasuj dynamiczny model regresji kolumny zapotrzebowania z błędami ARIMA i nazwij go fit.
  • Jeśli następny dzień jest dniem roboczym (wskaźnik wynosi 1), a prognozowana maksymalna temperatura wynosi 20°C, jakie jest prognozowane zapotrzebowanie? Uzupełnij odpowiednie wartości w cbind() dla argumentu xreg w funkcji forecast().

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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(___, ___, ___))
Edytuj i uruchom kod