Come eseguire un test kpss in r (incluso un esempio)
Un test KPSS può essere utilizzato per determinare se una serie temporale ha un trend stazionario.
Questo test utilizza la seguente ipotesi nulla e alternativa:
- H 0 : La serie storica ha un andamento stazionario.
- H A : La serie storica non ha un andamento stazionario.
Se il p-value del test è inferiore ad un certo livello di significatività (es. α = 0,05), allora rifiutiamo l’ipotesi nulla e concludiamo che la serie storica non ha un trend stazionario.
Altrimenti non riusciremo a rifiutare l’ipotesi nulla.
Gli esempi seguenti mostrano come eseguire un test KPSS in R.
Esempio 1: test KPSS in R (con dati stazionari)
Innanzitutto, creiamo alcuni dati falsi in R con cui lavorare:
#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 ')
Possiamo utilizzare la funzione kpss.test() dal pacchetto tseries per eseguire un test KPSS sui dati di queste serie temporali:
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
Il valore p è 0,1 . Poiché questo valore non è inferiore a 0,05, non riusciamo a rifiutare l’ipotesi nulla del test KPSS.
Ciò significa che possiamo assumere che la serie storica abbia un andamento stazionario.
Nota : il valore p in realtà è ancora maggiore di 0,1, ma il valore più basso prodotto dalla funzione kpss.test() è 0,1.
Esempio 2: test KPSS in R (con dati non stazionari)
Innanzitutto, creiamo alcuni dati falsi in R con cui lavorare:
#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 ')
Ancora una volta, possiamo utilizzare la funzione kpss.test() del pacchetto tseries per eseguire un test KPSS sui dati di questa serie temporale:
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
Il valore p è 0,04751 . Essendo questo valore inferiore a 0,05, rifiutiamo l’ipotesi nulla del test KPSS.
Ciò significa che la serie storica non è stazionaria.
Risorse addizionali
Le esercitazioni seguenti forniscono informazioni aggiuntive su come utilizzare i dati delle serie temporali in R:
Come tracciare una serie temporale in R
Come eseguire un test Dickey-Fuller aumentato in R