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