Comment effectuer un test KPSS dans R (y compris un exemple)



Un test KPSS peut être utilisé pour déterminer si une série chronologique a une tendance stationnaire.

Ce test utilise l’hypothèse nulle et alternative suivante :

  • H 0 : La série chronologique est à tendance stationnaire.
  • H A : La série temporelle n’est pas tendance stationnaire.

Si la valeur p du test est inférieure à un certain niveau de signification (par exemple α = 0,05), alors nous rejetons l’hypothèse nulle et concluons que la série chronologique n’a pas de tendance stationnaire.

Sinon, nous ne parviendrons pas à rejeter l’hypothèse nulle.

Les exemples suivants montrent comment effectuer un test KPSS dans R.

Exemple 1 : test KPSS dans R (avec données stationnaires)

Tout d’abord, créons de fausses données dans R avec lesquelles travailler :

#make this example reproducible
set.seed(100)

#create time series data
data<-rnorm(100)

#plot time series data as line plot
plot(data, type='l')

Nous pouvons utiliser la fonction kpss.test() du package tseries pour effectuer un test KPSS sur ces données de série chronologique :

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

La valeur p est de 0,1 . Puisque cette valeur n’est pas inférieure à 0,05, nous ne parvenons pas à rejeter l’hypothèse nulle du test KPSS.

Cela signifie que nous pouvons supposer que la série chronologique a une tendance stationnaire.

Remarque : La valeur p est en fait encore supérieure à 0,1, mais la valeur la plus basse que la fonction kpss.test() produira est 0,1.

Exemple 2 : Test KPSS dans R (avec données non stationnaires)

Tout d’abord, créons de fausses données dans R avec lesquelles travailler :

#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')

Encore une fois, nous pouvons utiliser la fonction kpss.test() du package tseries pour effectuer un test KPSS sur ces données de série temporelle :

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

La valeur p est de 0,04751 . Cette valeur étant inférieure à 0,05, nous rejetons l’hypothèse nulle du test KPSS.

Cela signifie que la série chronologique n’est pas stationnaire.

Ressources additionnelles

Les didacticiels suivants fournissent des informations supplémentaires sur la manière d’utiliser des données de séries chronologiques dans R :

Comment tracer une série chronologique dans R
Comment effectuer un test Dickey-Fuller augmenté dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *