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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *