Comment effectuer un test de tendance Mann-Kendall dans R



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 dans R.

Exemple : test de tendance Mann-Kendall dans R

Pour effectuer un test de tendance Mann-Kendall dans R, nous utiliserons la fonction MannKendall() de la bibliothèque Kendall , qui utilise la syntaxe suivante :

MannKendall(x)

où:

  • x = un vecteur de données, souvent une série chronologique

Pour illustrer comment réaliser le test, nous utiliserons l’ensemble de données PrecipGL intégré de la bibliothèque Kendall , qui contient des informations sur les précipitations annuelles pour tous les Grands Lacs de 1900 à 1986 :

#load Kendall library and PrecipGL dataset
library(Kendall)
data(PrecipGL)

#view dataset
PrecipGL

Time Series:
Start = 1900 
End = 1986 
Frequency = 1 
[1] 31.69 29.77 31.70 33.06 31.31 32.72 31.18 29.90 29.17 31.48 28.11 32.61
[13] 31.31 30.96 28.40 30.68 33.67 28.65 30.62 30.21 28.79 30.92 30.92 28.13
[25] 30.51 27.63 34.80 32.10 33.86 32.33 25.69 30.60 32.85 30.31 27.71 30.34
[37] 29.14 33.41 33.51 29.90 32.69 32.34 35.01 33.05 31.15 36.36 29.83 33.70
[49] 29.81 32.41 35.90 37.45 30.39 31.15 35.75 31.14 30.06 32.40 28.44 36.38
[61] 31.73 31.27 28.51 26.01 31.27 35.57 30.85 33.35 35.82 31.78 34.25 31.43
[73] 35.97 33.87 28.94 34.62 31.06 38.84 32.25 35.86 32.93 32.69 34.39 33.97
[85] 32.15 40.16 36.32
attr(,"title")
[1] Annual precipitation, 1900-1986, Entire Great Lakes

Pour voir s’il y a une tendance dans les données, nous pouvons effectuer le test de tendance Mann-Kendall :

#Perform the Mann-Kendall Trend Test
MannKendall(PrecipGL)

tau = 0.265, 2-sided pvalue =0.00029206

La statistique du test est de 0,265 et la valeur p bilatérale correspondante est de 0,00029206 . Cette valeur p étant inférieure à 0,05, nous rejetterons l’hypothèse nulle du test et conclurons qu’une tendance est présente dans les données.

Pour visualiser la tendance, nous pouvons créer un tracé chronologique des précipitations annuelles par année et ajouter une ligne lisse pour représenter la tendance :

#Plot the time series data
plot(PrecipGL)

#Add a smooth line to visualize the trend 
lines(lowess(time(PrecipGL),PrecipGL), col='blue')

Graphique de série chronologique avec ligne lisse

Notez que nous pouvons également effectuer un test de tendance Mann-Kendall désaisonnalisé pour tenir compte de toute saisonnalité dans les données à l’aide de la commande SeasonalMannKendall(x) :

#Perform a seasonally-adjusted Mann-Kendall Trend Test
SeasonalMannKendall(PrecipGL)

tau = 0.265, 2-sided pvalue =0.00028797

La statistique du test est de 0,265 et la valeur p bilatérale correspondante est de 0,00028797 . Encore une fois cette p-value est inférieure à 0,05, nous rejetterons donc l’hypothèse nulle du test et conclurons qu’une tendance est présente dans les données.

Ajouter un commentaire

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