Logotipo de Zephyrnet

Prueba de tendencia de Mann-Kendall usando Python

Fecha:

Introducción

La prueba de tendencia de Mann-Kendall, llamada así por HA Mann y DR Kendall, es una prueba no paramétrica utilizada para determinar que la tendencia sea significativa en el tiempo extra. La tendencia puede aumentar o disminuir monótonamente con el tiempo. Dado que es una prueba no paramétrica, no tenemos que preocuparnos por la distribución de los datos. Pero los datos no deben tener correlación serial/autocorrelación (el término de error en la transferencia de series temporales de un período a otro).

La prueba de Mann-Kendall está diseñada para detectar tendencias monótonas, que son tendencias que aumentan o disminuyen constantemente con el tiempo, sin asumir ninguna distribución específica para los datos. Es particularmente útil cuando se trata de datos que pueden no cumplir con los supuestos de las pruebas paramétricas, como la normalidad.

Este artículo fue publicado como parte del Blogatón de ciencia de datos.

Tabla de contenidos.

Requisito de tamaño de muestra

Si tiene muestras muy pequeñas, tan pequeñas como 3 o 4, entonces existe una alta probabilidad de no encontrar ninguna tendencia. Cuantas más muestras tengamos con el tiempo, más confiables serán las estadísticas de prueba. Aunque la prueba también se puede realizar con muestras muy muestra. Por lo tanto, el dato recomendado es al menos 10.

Prueba de tendencia de Mann-Kendall | Pitón

Objetivo de la prueba

En este artículo estudiamos los accidentes relacionados con descarrilamientos de nuestro tren a lo largo del tiempo. El reciente descarrilamiento de un tren en Odisha ha vuelto a cuestionar la seguridad en los ferrocarriles. Los accidentes ferroviarios pueden clasificarse por sus tipos de accidentes (ejemplos, colisiones frontales, colisiones traseras, explosiones, colisiones laterales, descarrilamientos, incendios, etc.). Con el tiempo ha habido muchas mejoras en los ferrocarriles técnicamente y en cuanto a infraestructura. Con todos los avances modernos implementados, los accidentes de tren son comunes en todo el mundo. Los accidentes de tren son incidentes desafortunados que ocurren en los sistemas ferroviarios de todo el mundo. Estos accidentes pueden tener consecuencias devastadoras, provocando la pérdida de vidas, lesiones y daños a la propiedad.

En este estudio, determinaremos, con el tiempo, si hemos sido capaces de reducir los accidentes de tren (aquí estudiaremos la categoría de accidente de descarrilamiento) en India dados todos los avances realizados a lo largo de los años. Los datos que hemos obtenido sobre los descarrilamientos en la India son series temporales por naturaleza. Tenemos datos de descarrilamientos desde 2001 hasta 2016. Los datos están ordenados cronológicamente.

Nuestros datos

Año Descarrilamientos
2001 350
2002 280
2003 218
2004 202
2005 138
2006 131
2007 96
2008 100
2009 85
2010 80
2011 80
2012 55
2013 49
2014 53
2015 63
2016 65

En la tabla anterior podemos ver claramente una tendencia decreciente en los datos. Desde 2001 el número de descarrilamientos se ha reducido en gran medida. En 2001, tuvimos 350 accidentes relacionados con descarrilamientos, que se redujeron a 65 en 2016. Dado que los datos están ordenados, podemos introducirlos directamente pitón entorno y trabajar en él. Tengamos un gráfico para visualizar los datos correctamente en python.

!pip install seaborn
import seaborn as sns
import matplotlib.pyplot as plt
fig = plt.subplots(figsize=(20, 5))
sns.lineplot(x='Year', y='Derailments', data=df)
sns.set_theme(style='white', font_scale=3)
Prueba de tendencia de Mann-Kendall | Pitón

En el gráfico anterior, podemos ver claramente que hay una tendencia a la baja. Pero podemos decir que esta tendencia a la baja es significativa. Aunque es evidente de la trama altamente
probable que sea significativo. Verifiquemos lo mismo usando la prueba de hipótesis de tendencia de Mann-Kendall.

pasos

  • La hipótesis nula (H0) de esta prueba es que no hay una tendencia monótona en los datos.
  • La hipótesis alternativa (H1) es que existe una tendencia. La tendencia puede ser una tendencia positiva creciente monótona o una tendencia negativa decreciente monótona.
  • Prueba estadística: La prueba M produce una estadística de prueba denotada como "T". Un valor positivo de T indica una tendencia creciente, mientras que un valor negativo indica una tendencia decreciente. La magnitud de T representa la fuerza de la tendencia.
  • Importancia (alfa): un nivel de significación (p. ej., 0.05 o 0.10) para determinar el umbral de significancia estadística. Esto representa la probabilidad máxima de observar una tendencia cuando no existe una tendencia real en los datos.
  • Valor P: La prueba MK calcula un valor p que cuantifica la probabilidad de observar una estadística de prueba tan extrema como la observada, asumiendo que la hipótesis nula es verdadera. El valor p representa la evidencia en contra de la hipótesis nula.
    • Si el valor p es menor que el nivel de significación (p < α), sugiere una fuerte evidencia para rechazar la hipótesis nula. Esto indica una tendencia estadísticamente significativa en los datos.
    • Si el valor de p es mayor que el nivel de significación (p ≥ α), sugiere evidencia insuficiente para rechazar la hipótesis nula. Esto significa que no hay una tendencia estadísticamente significativa en los datos.
    • Conclusión: con base en el valor p y el nivel de significación, puede sacar una conclusión con respecto a la presencia o ausencia de una tendencia significativa en los datos.
    • Si p < α, puede concluir que existe una tendencia estadísticamente significativa en los datos. Asegúrese de considerar la dirección de la tendencia según el signo de la estadística de prueba (T).
    • Si p ≥ α, puede concluir que no hay una tendencia estadísticamente significativa en los datos. No hay evidencia suficiente para sugerir la presencia de una tendencia.

Pasos del código de Python

  • Leer los conjuntos de datos
import pandas as pd
df=pd.read_csv("C:UsersDELLOneDriveDesktopAnalyticsVidhyaderailment.csv")
df.head()
  Año Descarrilamientos
0 2001 350
1 2002 280
2 2003 218
3 2004 202
4 2005 138
  • Importar las bibliotecas:
!pip install pymannkendall
import numpy as np
import pymannkendall 
"
  • Prueba de Mann-Kendall:
mk.original_test(df["Derailments"])
salida | Prueba de tendencia de Mann-Kendall | Pitón

Conclusión

La tendencia es decreciente, el valor P es muy significativo. Por lo tanto, rechazamos la hipótesis nula y concluimos que los descarrilamientos de trenes se han reducido significativamente con el tiempo. El avance técnico y el cambio de infraestructura han llevado a una reducción significativa de los accidentes relacionados con el descarrilamiento.

  • Robusto y versátil: la prueba de Mann-Kendall es sólida frente a valores atípicos y no asume una distribución de datos específica.
  • Amplia aplicabilidad: la prueba de Mann-Kendall encuentra aplicaciones en varios campos, incluida la ciencia del clima, la hidrología, el monitoreo ambiental, la economía y otras disciplinas que se ocupan de los datos de series temporales.
  • Cálculo simple: el cálculo de la estadística de Mann-Kendall implica clasificar los datos, determinar los signos de las diferencias por pares y sumar estos signos. La estadística resultante se utiliza luego para evaluar la presencia de una tendencia.

Preguntas frecuentes

Q1. ¿Cuáles son los supuestos de la prueba de Mann-Kendall?

R. La prueba de Mann-Kendall es una prueba no paramétrica o sin distribución, lo que significa que no asume ninguna distribución de probabilidad específica para los datos. Tampoco se ve afectado por valores atípicos. Sin embargo, asume que las observaciones son independientes y que no hay correlación serial en los datos.

Q2. ¿Cómo funciona la prueba de Mann-Kendall?

A. La prueba genera el no. de pares concordantes y discordantes dentro de los datos de la serie temporal. Utiliza estos pares para calcular una estadística de prueba que sigue una distribución normal bajo la hipótesis nula de que no hay tendencia. Luego, la estadística de prueba se compara con valores críticos para determinar si la tendencia es estadísticamente significativa.

Q3. ¿Cuál es el alcance de Mann-Kendall?

R. Cualquier dato relacionado con la serie temporal se puede probar para determinar si es monótonamente significativo. Por ejemplo, se puede probar que la temperatura en todo el mundo está aumentando (fenómeno del calentamiento global), el iceberg se está derritiendo más rápido, el nivel del mar está aumentando monótonamente, las islas han desaparecido con el tiempo. En el campo médico: a más pacientes se les diagnostica diabetes, problemas de insuficiencia cardíaca y obesidad.

Q4. ¿Puede la prueba de Mann-Kendall determinar la dirección de la tendencia?

R. Sí, puede determinar la dirección de la tendencia. El signo del estadístico de prueba (positivo o negativo) indica la dirección de la tendencia: positivo para una tendencia creciente y negativo para una tendencia decreciente. Una estadística de prueba de cero sugiere que no hay tendencia.

P5. ¿Existen alternativas a la prueba de Mann-Kendall?

R. Las pruebas de tendencias alternativas, como el estimador de pendiente de Sen, la prueba de correlación de rangos de Spearman y el estimador de Theil-Sen tienen suposiciones diferentes. Tal vez más adecuado según las características específicas de los datos o la pregunta de investigación.

Los medios que se muestran en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.

punto_img

Información más reciente

punto_img