Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment effectuer un test KPSS en Python



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 en Python.

Exemple 1 : test KPSS en Python (avec données stationnaires)

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

import numpy as np
import matplotlib.pyplot as plt

#make this example reproducible
np.random.seed(1)

#create time series data
data = np.random.normal(size=100)

#create line plot of time series data
plt.plot(data)

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

import statsmodels.api as sm

#perform KPSS test
sm.tsa.stattools.kpss(data, regression='ct')

(0.0477617848370993,
 0.1,
 1,
 {'10%': 0.119, '5%': 0.146, '2.5%': 0.176, '1%': 0.216})

InterpolationWarning: The test statistic is outside of the range of p-values available
in the look-up table. The actual p-value is greater than the p-value returned.

Voici comment interpréter le résultat :

  • La statistique du test KPSS : 0,04776
  • La valeur p : 0,1
  • Le paramètre de décalage de troncature : 1
  • Les valeurs critiques à 10 % , 5 % , 2,5 % et 1 %

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 1 : La valeur p est en fait encore supérieure à 0,1, mais la valeur la plus basse que la fonction kpss() produira est 0,1.

Note 2 : Il faut utiliser l’argument regression=’ct’ pour préciser que l’hypothèse nulle du test est que la donnée est tendance stationnaire.

Exemple 2 : test KPSS en Python (avec des données non stationnaires)

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

import numpy as np
import matplotlib.pyplot as plt

#make this example reproducible
np.random.seed(1)

#create time series data
data =np.array([0, 3, 4, 3, 6, 7, 5, 8, 15, 13, 19, 12, 29, 15, 45, 23, 67, 45])

#create line plot of time series data
plt.plot(data)

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

import statsmodels.api as sm

#perform KPSS test
sm.tsa.stattools.kpss(data, regression='ct')

(0.15096358910843685,
 0.04586367574296928,
 3,
 {'10%': 0.119, '5%': 0.146, '2.5%': 0.176, '1%': 0.216})

Voici comment interpréter le résultat :

  • La statistique du test KPSS : 0,1509
  • La valeur p : 0,0458
  • Le paramètre de décalage de troncature : 3
  • Les valeurs critiques à 10 % , 5 % , 2,5 % et 1 %

La valeur p est de 0,0458 . 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.

Remarque : Vous pouvez trouver la documentation complète de la fonction kpss() à partir du package statsmodels ici .

Ressources additionnelles

Les didacticiels suivants fournissent des informations supplémentaires sur la façon de travailler avec des données de séries chronologiques en Python :

Comment effectuer un test Dickey-Fuller augmenté en Python
Comment effectuer un test de tendance Mann-Kendall en Python
Comment tracer une série chronologique dans Matplotlib

Ajouter un commentaire

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