Een kpss-test uitvoeren in r (inclusief een voorbeeld)
Om te bepalen of een tijdreeks een stationaire trend heeft, kan een KPSS-test worden gebruikt.
Deze test maakt gebruik van de volgende nul- en alternatieve hypothese:
- H 0 : De tijdreeks heeft een stationaire trend.
- H A : De tijdreeks kent geen stationaire trend.
Als de p-waarde van de test onder een bepaald significantieniveau ligt (bijvoorbeeld α = 0,05), dan verwerpen we de nulhypothese en concluderen we dat de tijdreeks geen stationaire trend kent.
Anders zullen we er niet in slagen de nulhypothese te verwerpen.
De volgende voorbeelden laten zien hoe u een KPSS-test uitvoert in R.
Voorbeeld 1: KPSS-test in R (met stationaire gegevens)
Laten we eerst een aantal nepgegevens in R maken om mee te werken:
#make this example reproducible
set. seeds (100)
#create time series data
data<-rnorm(100)
#plot time series data as line plot
plot(data, type=' l ')
We kunnen de functie kpss.test() uit het tseries- pakket gebruiken om een KPSS-test uit te voeren op deze tijdreeksgegevens:
library (tseries) #perform KPSS test kpss. test (data, null=" Trend ") KPSS Test for Trend Stationarity data:data KPSS Trend = 0.034563, Truncation lag parameter = 4, p-value = 0.1 Warning message: In kpss.test(data, null = "Trend"): p-value greater than printed p-value
De p-waarde is 0,1 . Omdat deze waarde niet minder dan 0,05 bedraagt, slagen we er niet in de nulhypothese van de KPSS-test te verwerpen.
Dit betekent dat we kunnen aannemen dat de tijdreeks een stationaire trend kent.
Opmerking : de p-waarde is feitelijk nog steeds groter dan 0,1, maar de laagste waarde die de functie kpss.test() zal produceren is 0,1.
Voorbeeld 2: KPSS-test in R (met niet-stationaire gegevens)
Laten we eerst een aantal nepgegevens in R maken om mee te werken:
#make this example reproducible
#create time series data
data <-c(0, 3, 4, 3, 6, 7, 5, 8, 15, 13, 19, 12, 29, 15, 45, 23, 67, 45)
#plot time series data as line plot
plot(data, type=' l ')
Wederom kunnen we de functie kpss.test() uit het tseries- pakket gebruiken om een KPSS-test uit te voeren op deze tijdreeksgegevens:
library (tseries) #perform KPSS test kpss. test (data, null=" Trend ") KPSS Test for Trend Stationarity data:data KPSS Trend = 0.149, Truncation lag parameter = 2, p-value = 0.04751
De p-waarde is 0,04751 . Omdat deze waarde kleiner is dan 0,05, verwerpen we de nulhypothese van de KPSS-test.
Dit betekent dat de tijdreeks niet stationair is .
Aanvullende bronnen
De volgende zelfstudies bieden aanvullende informatie over het werken met tijdreeksgegevens in R:
Hoe een tijdreeks in R te plotten
Hoe u een uitgebreide Dickey-Fuller-test uitvoert in R