Aan de slagGa gratis aan de slag

Electriciteitsvraag voorspellen

Je kunt de dagelijkse electriciteitsvraag ook modelleren als een functie van temperatuur. Zoals je misschien op je energierekening hebt gezien, wordt er op hete dagen meer elektriciteit verbruikt door airconditioning en op koude dagen door verwarming.

In deze oefening pas je een kwadratisch regressiemodel met een ARMA-fout toe. Eén jaar aan dagelijkse data staat in elecdaily, met daarin de totale dagelijkse vraag, een indicatorvariabele voor werkdagen (een werkdag is 1, een niet-werkdag is 0), en de dagelijkse maximumtemperaturen. Omdat er wekelijkse seizoenspatronen zijn, is de frequency ingesteld op 7.

Laten we de eerste drie rijen bekijken:

> 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 is alvast in je werkruimte geladen.

Deze oefening maakt deel uit van de cursus

Voorspellen in R

Cursus bekijken

Oefeninstructies

  • Maak tijdplots van alleen de dagelijkse vraag en de maximumtemperaturen met facetten.
  • Stel een matrix met regressoren op met MaxTemp voor de maximumtemperaturen, MaxTempSq voor het kwadraat van de maximumtemperatuur, en Workday, in die volgorde. Duidelijk is dat het tweede argument van cbind() een eenvoudige wiskundige bewerking vereist.
  • Pas een dynamisch regressiemodel toe op de kolom met vraag met ARIMA-fouten en noem dit fit.
  • Als de volgende dag een werkdag is (indicator is 1) met een verwachte maximumtemperatuur van 20°C, wat is dan de voorspelde vraag? Vul de juiste waarden in cbind() in voor het xreg-argument in forecast().

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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(___, ___, ___))
Code bewerken en uitvoeren