Como realizar um teste de tendência mann-kendall em python


Um teste de tendência Mann-Kendall é usado para determinar se há ou não uma tendência nos dados de séries temporais. Este é um teste não paramétrico, o que significa que não são feitas suposições subjacentes sobre a normalidade dos dados.

As hipóteses de teste são as seguintes:

H 0 (hipótese nula): nenhuma tendência está presente nos dados.

HA (hipótese alternativa): Uma tendência está presente nos dados. (Esta pode ser uma tendência positiva ou negativa)

Se o valor p do teste estiver abaixo de um certo nível de significância (as escolhas comuns são 0,10, 0,05 e 0,01), então há evidências estatisticamente significativas de que uma tendência está presente nos dados da série temporal.

Este tutorial explica como realizar um teste de tendência Mann-Kendall em Python.

Exemplo: teste de tendência Mann-Kendall em Python

Para realizar um teste de tendência Mann-Kendall em Python, primeiro instalaremos o pacote pymannkendall :

 pip install pymannkendall

Depois de instalar este pacote, podemos realizar o teste de tendência Mann-Kendall em um conjunto de dados de série temporal:

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

Veja como interpretar o resultado do teste:

  • tendência : Isso indica a tendência. O resultado possível inclui uma tendência crescente, decrescente ou nenhuma tendência.
  • h: verdadeiro se a tendência estiver presente. Falso se nenhuma tendência estiver presente.
  • p: O valor p do teste.
  • z: a estatística do teste de normalização.
  • Tau: Kendall Tau.
  • s: Pontuação de Mann-Kendal
  • var_s: desvio S
  • inclinação: estimador Theil-Sen/inclinação
  • interceptação: Interceptação da robusta linha Kendall-Theil

O principal valor que nos interessa é o valor p, que nos diz se existe ou não uma tendência estatisticamente significativa nos dados.

Neste exemplo, o valor p é 0,4226 , que não é inferior a 0,05. Portanto, não há tendência significativa nos dados da série temporal.

Além de realizar o teste de tendência Mann-Kendall, podemos criar um gráfico de linha rápido usando Matplotlib para visualizar os dados reais da série temporal:

 import matplotlib. pyplot as plt

plt. plot (data)

vezes

No gráfico podemos ver que os dados estão um pouco dispersos, o que confirma que não há uma tendência clara nos dados.

Recursos adicionais

Como traçar uma série temporal no Matplotlib
Como realizar um teste Dickey-Fuller aumentado em Python
Como plotar várias séries de um DataFrame do Pandas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *