Cursus
Als je onze cursus Introduction to Time Series Analysis in R wilt volgen, hier is de link.
Autocorrelaties berekenen
Autocorrelaties of vertragingscorrelaties worden gebruikt om te beoordelen of een tijdreeks afhankelijk is van zijn verleden. Voor een tijdreeks x van lengte n beschouwen 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 kan worden geschat als de steekproefcorrelatie van deze (x[t], x[t-1])-paren.
In het algemeen kunnen we deze paren handmatig maken. Maak eerst twee vectors, 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. Toepassing van acf(..., lag.max = 1, plot = FALSE) op een reeks x berekent automatisch de lag-1-autocorrelatie.
Let ten slotte op dat de twee schattingen licht verschillen omdat ze een iets andere schaling gebruiken bij de berekening van de steekproefcovariantie, 1/(n-1) versus 1/n. Hoewel de laatste een scheve schatting oplevert, 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 zijn lengte n (150) zijn al geladen. De reeks staat in de grafiek rechts.
Instructies
- Maak twee vectors,
x_t0enx_t1, elk met lengten-1zodat de rijen overeenkomen met de(x[t], x[t-1])-paren. - Bevestig met de voorgecodeerde regels dat
x_t0enx_t1(x[t], x[t-1])-paren zijn. - Gebruik
plot()om de scatterplot vanx_t0enx_t1te bekijken. - Gebruik
cor()om de correlatie tussenx_t0enx_t1te bekijken. - Gebruik
acf()metxom automatisch de lag-1-autocorrelatie te berekenen. Zet het argumentlag.maxop1om één lagperiode te produceren en zet het argumentplotopFALSE. - Bevestig met de voorgecodeerde regels dat de verschilfactor
(n-1)/nis.
Als dat duidelijk is, ga dan door naar de volgende oefening! Zo niet, bekijk dan deze overzichtsvideo.
Overzichtsvideo over autocorrelatie
De autocorrelatiefunctie
Autocorrelaties kunnen bij veel lags worden geschat om beter te beoordelen hoe een tijdreeks zich verhoudt tot zijn verleden. We zijn meestal het meest geïnteresseerd in hoe een reeks zich verhoudt tot zijn meest recente verleden.
De functie acf(..., lag.max = ..., plot = FALSE) schat alle autocorrelaties van 0, 1, 2, ... tot en met de waarde die is opgegeven door het argument lag.max. In de vorige oefening focuste je op de lag-1-autocorrelatie door het argument lag.max op 1 te zetten.
In deze oefening verken je enkele verdere toepassingen van het commando acf(). Ook nu is de tijdreeks x al voor je geladen en zichtbaar in de grafiek rechts.
Instructies
- Gebruik
acf()om de autocorrelaties van reeksxvan 0 tot 10 te bekijken. Zet het argumentlag.maxop10en laat het argumentplotopFALSEstaan. - Kopieer en plak de autocorrelatieschatting (ACF) bij lag-10.
- Kopieer en plak de autocorrelatieschatting (ACF) bij lag-5.
De autocorrelatiefunctie visualiseren
Door de autocorrelatiefunctie (ACF) bij veel lags te schatten, kunnen we beoordelen hoe een tijdreeks x zich verhoudt tot zijn verleden. De numerieke schattingen zijn belangrijk voor gedetailleerde berekeningen, maar het is ook nuttig om de ACF als functie van de lag te visualiseren.
Het commando acf() maakt standaard zelfs een figuur. Het kiest ook standaard een waarde voor lag.max, het maximale aantal lags dat wordt weergegeven.
Drie tijdreeksen x, y en z zijn in je R-omgeving geladen en rechts geplot. De tijdreeks x vertoont sterke persistentie, wat betekent dat de huidige waarde nauw verwant is aan de waarden die eraan voorafgaan. De tijdreeks y vertoont een periodiek patroon met een cycluslengte van ongeveer vier waarnemingen, wat betekent dat de huidige waarde relatief dicht bij de waarneming vier stappen eerder ligt. De tijdreeks z vertoont geen duidelijk patroon.
In deze oefening plot je voor elke tijdreeks een geschatte autocorrelatiefunctie. In de plots die acf() produceert, staat de lag voor elke autocorrelatieschatting op de horizontale as en wordt elke autocorrelatieschatting aangegeven door de hoogte van de verticale balken. Onthoud dat de ACF bij lag-0 altijd 1 is.
Ten slotte bevat elke ACF-figuur een paar blauwe, horizontale, stippellijnen die laggewijze 95%-betrouwbaarheidsintervallen rond nul weergeven. Deze worden gebruikt om de statistische significantie van een afzonderlijke autocorrelatieschatting bij een gegeven lag te bepalen ten opzichte van een nulwaarde van nul, oftewel geen autocorrelatie bij die lag.
Instructies
Gebruik drie aanroepen van de functie acf() om de geschatte ACF's van elk van je drie tijdreeksen (x, y en z) te tonen. Het is niet nodig om extra argumenten in je aanroepen van acf() op te geven.
Wil je meer leren uit deze cursus, hier is de link.
Bekijk onze Time Series Analysis using R: Tutorial.
