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


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

Esempio: test di tendenza di Mann-Kendall in Python

Per eseguire un test di tendenza di Mann-Kendall in Python, installeremo prima il pacchetto pymannkendall :

 pip install pymannkendall

Una volta installato questo pacchetto, possiamo eseguire il test di tendenza di Mann-Kendall su un set di dati di serie temporali:

 #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)

Ecco come interpretare il risultato del test:

  • trend : indica il trend. Il possibile risultato include una tendenza in aumento, in diminuzione o nessuna tendenza.
  • h: vero se il trend è presente. Falso se non è presente alcun trend.
  • p: il valore p del test.
  • z: la statistica del test di normalizzazione.
  • Tau: Kendall Tau.
  • s: punteggio Mann-Kendal
  • var_s: deviazione S
  • pendenza: stimatore Theil-Sen/pendenza
  • intercettazione: Intercettazione della robusta linea Kendall-Theil

Il valore principale che ci interessa è il valore p, che ci dice se esiste o meno un trend statisticamente significativo nei dati.

In questo esempio, il valore p è 0,4226 , che non è inferiore a 0,05. Pertanto non vi è alcun trend significativo nei dati delle serie storiche.

Oltre a eseguire il test di tendenza di Mann-Kendall, possiamo creare un rapido grafico a linee utilizzando Matplotlib per visualizzare i dati effettivi delle serie temporali:

 import matplotlib. pyplot as plt

plt. plot (data)

volte

Dal grafico possiamo vedere che i dati sono un po’ sparsi, il che conferma che non c’è una tendenza chiara nei dati.

Risorse addizionali

Come tracciare una serie temporale in Matplotlib
Come eseguire un test Dickey-Fuller aumentato in Python
Come tracciare più serie da un Pandas DataFrame

Aggiungi un commento

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