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