Aan de slagGa gratis aan de slag

Autocorrelaties berekenen

Autocorrelaties of vertragingscorrelaties worden gebruikt om te beoordelen of een tijdreeks afhankelijk is van zijn verleden. Voor een tijdreeks x met lengte n bekijken we de n-1 paren waarnemingen die één tijdseenheid uit elkaar liggen. Het eerste paar is (x[2],x[1]), en het volgende is (x[3],x[2]). Elk paar heeft de vorm (x[t],x[t-1]), waarbij t de index van de waarneming is, die we in dit geval laten variëren van 2 tot n. De lag-1-autocorrelatie van x kun je schatten als de steekproefcorrelatie van deze (x[t], x[t-1])-paren.

In het algemeen kunnen we deze paren handmatig maken. Maak eerst twee vectoren, x_t0 en x_t1, elk met lengte n-1, zodat de rijen overeenkomen met (x[t], x[t-1])-paren. Pas daarna de functie cor() toe om de lag-1-autocorrelatie te schatten.

Gelukkig biedt het commando acf() een snelkoppeling. Door acf(..., lag.max = 1, plot = FALSE) toe te passen op een reeks x wordt de lag-1-autocorrelatie automatisch berekend.

Let tot slot op dat de twee schattingen licht verschillen omdat ze net iets andere schalingen gebruiken bij het berekenen van de steekproefcovariantie, 1/(n-1) versus 1/n. Hoewel de laatste een vertekende schatting geeft, heeft die in tijdreeksanalyse de voorkeur, en de resulterende autocorrelatieschattingen verschillen slechts met een factor (n-1)/n.

In deze oefening oefen je zowel de handmatige als de automatische berekening van een lag-1-autocorrelatie. De tijdreeks x en de lengte n (150) zijn al ingeladen. De reeks staat afgebeeld in de grafiek rechts.

Deze oefening maakt deel uit van de cursus

Tijdreeksanalyse in R

Cursus bekijken

Oefeninstructies

  • Maak twee vectoren, x_t0 en x_t1, elk met lengte n-1, zodat de rijen overeenkomen met de (x[t], x[t-1])-paren.
  • Bevestig met de voorgecodeerde regels dat x_t0 en x_t1 (x[t], x[t-1])-paren zijn.
  • Gebruik plot() om de spreidingsplot van x_t0 en x_t1 te bekijken.
  • Gebruik cor() om de correlatie tussen x_t0 en x_t1 te bekijken.
  • Gebruik acf() met x om automatisch de lag-1-autocorrelatie te berekenen. Zet het argument lag.max op 1 om één vertragingsperiode te krijgen en zet het argument plot op FALSE.
  • Bevestig dat de verschilfactor (n-1)/n is met de voorgecodeerde regels.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Define x_t0 as x[-1]
x_t0 <- 

# Define x_t1 as x[-n]
x_t1 <- 

# Confirm that x_t0 and x_t1 are (x[t], x[t-1]) pairs  
head(cbind(x_t0, x_t1))
  
# Plot x_t0 and x_t1
plot(___, ___)

# View the correlation between x_t0 and x_t1
cor(___, ___)

# Use acf with x
acf(___, lag.max = ___, plot = ___)

# Confirm that difference factor is (n-1)/n
cor(x_t1, x_t0) * (n-1)/n
Code bewerken en uitvoeren