Come eseguire un test di tendenza di mann-kendall in r


Un test di tendenza di Mann-Kendall viene utilizzato per determinare se esiste o meno una tendenza nei dati delle serie temporali. Questo è un test non parametrico, il che significa che non vengono fatte ipotesi sottostanti sulla normalità dei dati.

Le ipotesi del test sono le seguenti:

H 0 (ipotesi nulla): nei dati non è presente alcun trend.

H A (ipotesi alternativa): nei dati è presente una tendenza. (Questa potrebbe essere una tendenza positiva o negativa)

Se il valore p del test è inferiore a un certo livello di significatività (le scelte comuni sono 0,10, 0,05 e 0,01), allora esiste un’evidenza statisticamente significativa della presenza di una tendenza nei dati delle serie temporali.

Questo tutorial spiega come eseguire un test di tendenza di Mann-Kendall in R.

Esempio: test di tendenza di Mann-Kendall in R

Per eseguire un test di tendenza Mann-Kendall in R, utilizzeremo la funzione MannKendall() della libreria Kendall , che utilizza la seguente sintassi:

MannKendall(x)

Oro:

  • x = un vettore di dati, spesso una serie temporale

Per illustrare come eseguire il test, utilizzeremo il set di dati PrecipGL integrato nella Kendall Library, che contiene informazioni sulle precipitazioni annuali per tutti i Grandi Laghi dal 1900 al 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

Per vedere se c’è una tendenza nei dati, possiamo eseguire il test di tendenza di Mann-Kendall:

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

tau = 0.265, 2-sided pvalue = 0.00029206

La statistica del test è 0,265 e il corrispondente valore p a due code è 0,00029206 . Poiché questo valore p è inferiore a 0,05, rifiuteremo l’ipotesi nulla del test e concluderemo che nei dati è presente una tendenza.

Per visualizzare la tendenza, possiamo creare un grafico temporale delle precipitazioni annuali per anno e aggiungere una linea morbida per rappresentare la tendenza:

 #Plot the time series data
plot(PrecipGL)

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

Grafico delle serie temporali con linea morbida

Tieni presente che possiamo anche eseguire un test di tendenza di Mann-Kendall adattato alla stagionalità per tenere conto di qualsiasi stagionalità nei dati utilizzando il comando SeasonalMannKendall(x) :

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

tau = 0.265, 2-sided pvalue = 0.00028797

La statistica del test è 0,265 e il corrispondente valore p a due code è 0,00028797 . Anche in questo caso questo valore p è inferiore a 0,05, quindi rifiuteremo l’ipotesi nulla del test e concluderemo che nei dati è presente una tendenza.

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *