Comment effectuer un test de tendance Mann-Kendall en Python



Un test de tendance Mann-Kendall est utilisé pour déterminer s’il existe ou non une tendance dans les données de séries chronologiques. Il s’agit d’un test non paramétrique, ce qui signifie qu’aucune hypothèse sous-jacente n’est formulée quant à la normalité des données.

Les hypothèses du test sont les suivantes :

H 0 (hypothèse nulle) : aucune tendance n’est présente dans les données.

H A (hypothèse alternative) : Une tendance est présente dans les données. (Cela pourrait être une tendance positive ou négative)

Si la valeur p du test est inférieure à un certain niveau de signification (les choix courants sont 0,10, 0,05 et 0,01), il existe alors une preuve statistiquement significative qu’une tendance est présente dans les données de la série chronologique.

Ce didacticiel explique comment effectuer un test de tendance Mann-Kendall en Python.

Exemple : test de tendance Mann-Kendall en Python

Pour effectuer un test de tendance Mann-Kendall en Python, nous allons d’abord installer le package pymannkendall :

pip install pymannkendall

Une fois que nous avons installé ce package, nous pouvons effectuer le test de tendance Mann-Kendall sur un ensemble de données de séries chronologiques :

#create dataset
data = [31, 29, 28, 28, 27, 26, 26, 27, 27, 27, 28, 29, 30, 29, 30, 29, 28]

#perform Mann-Kendall Trend Test
import pymannkendall as mk

mk.original_test(data)

Mann_Kendall_Test(trend='no trend', h=False, p=0.422586268671707,
                  z=0.80194241623, Tau=0.147058823529, s=20.0,
                  var_s=561.33333333, slope=0.0384615384615, intercept=27.692307692)

Voici comment interpréter le résultat du test :

  • tendance : Ceci indique la tendance. Le résultat possible inclut une tendance croissante, décroissante ou inexistante.
  • h : vrai si la tendance est présente. Faux si aucune tendance n’est présente.
  • p : La valeur p du test.
  • z : la statistique du test de normalisation.
  • Tau : Kendall Tau.
  • s : partition de Mann-Kendal
  • var_s : écart S
  • pente : estimateur Theil-Sen/pente
  • interception : Interception de la ligne robuste Kendall-Theil

La principale valeur qui nous intéresse est la valeur p, qui nous indique s’il existe ou non une tendance statistiquement significative dans les données.

Dans cet exemple, la valeur p est de 0,4226 , ce qui n’est pas inférieur à 0,05. Il n’y a donc pas de tendance significative dans les données des séries chronologiques.

En plus d’effectuer le test de tendance Mann-Kendall, nous pouvons créer un tracé linéaire rapide à l’aide de Matplotlib pour visualiser les données réelles de la série chronologique :

import matplotlib.pyplot as plt

plt.plot(data)

fois

Sur le graphique, nous pouvons voir que les données sont un peu dispersées, ce qui confirme qu’il n’y a pas de tendance claire dans les données.

Ressources additionnelles

Comment tracer une série chronologique dans Matplotlib
Comment effectuer un test Dickey-Fuller augmenté en Python
Comment tracer plusieurs séries à partir d’un DataFrame Pandas

Ajouter un commentaire

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