/ Proyectos / Ambiente / Pronóstico de caudal hídrico con LSTM

Pronóstico de caudal hídrico con LSTM multivariado

Pronóstico de caudal hídrico con LSTM a partir de datos abiertos de gobierno, comparando arquitecturas univariadas, multivariadas y multi-step con métricas hidrológicas reales.

11 min de lectura Python · TensorFlow/Keras · scikit-learn Datos: caudal y precipitación horaria, gobierno abierto Aplicable a tesis y proyectos aplicados
Serie de tiempo de caudal y precipitación horaria usada para entrenar un modelo LSTM de pronóstico hidrológico

Pronosticar caudal con horas de anticipación importa para algo muy concreto: alerta temprana ante crecidas, operación de infraestructura hídrica, y planeación de riego o abastecimiento. No hace falta un sensor nuevo ni un satélite propio para empezar, muchas veces los datos ya existen.

Este proyecto partió de un recordatorio simple: los datos hidrometeorológicos abiertos que publican las entidades de gobierno son reales, gratuitos, y suficientes para construir algo con aplicación tanto académica como industrial. El caso concreto usa caudal observado y precipitación de tres estaciones en una subcuenca, con registros horarios de más de cuatro años.


Mapa del casoContenido


Estructura de alto nivelDiagrama de la solución

Fuente Datos hidrometeorológicos abiertos Caudal + lluvia, horario, 2018-2022 Ventanas de rezago Uniformes → distintas por variable LSTM univariada Solo caudal, 72h de rezago Nash prueba = 0.716 LSTM multivariada Caudal + 3 lluvias, 8h ventana Nash prueba = 0.758 Evaluación hidrológica Nash · BIAS · RMSE · r · r² Extensión: LSTM multi-step Arquitectura Encoder-Decoder RMSE crece con el horizonte (0.54 → 0.81 m³/s) Pronóstico de caudal Con métrica de confianza por hora

Pasa el cursor sobre cada bloque para ver qué hace ese paso.

La línea base univariada y el modelo multivariado se entrenaron y evaluaron por separado, con el mismo corte temporal de entrenamiento, validación y prueba, para que la comparación entre ambos fuera justa.


Cómo se construyóConstrucción de la solución

Condiciones del proyecto

RestricciónDato
Calidad de los datosRegistros horarios reales, con huecos de medición en varias estaciones
Persistencia temporal por variableEl caudal cambia más lento que la lluvia, cada una necesita su propia memoria
Régimen del periodo de pruebaPuede diferir del visto en entrenamiento, hay que aceptar y reportar una posible caída
Objetivo finalUn pronóstico útil, no solo un buen ajuste histórico
OpciónPor qué se descartó
Modelo puramente autoregresivo con 72 horas de rezago, sin covariablesFunciona razonablemente bien (Nash de prueba 0.716), pero deja fuera información útil de la lluvia
Ventana de rezago uniforme para todas las variablesTrata igual variables con dinámicas distintas, caudal y lluvia no se comportan igual en el tiempo
LSTM multivariada con rezago específico por variableRefleja mejor la persistencia real de cada variable, mejor desempeño en validación
Reportar solo el desempeño en entrenamiento y validaciónHubiera ocultado la caída real de desempeño en el conjunto de prueba

Pasos

1

Partir de datos abiertos reales

Agente: no tenía forma de proponer esto, requería investigar la fuente.
Criterio aplicado: usar caudal horario y precipitación de tres estaciones, publicados por la entidad gubernamental de monitoreo hidrometeorológico, con más de cuatro años de historia.

2

Construir una línea base univariada

Agente: propuso ir directo al modelo multivariado.
Criterio aplicado: entrenar primero una LSTM usando solo el caudal histórico, con hasta 72 horas de rezago, como punto de comparación antes de complicar el modelo.

3

Incorporar las covariables de lluvia

Agente: propuso concatenar todas las variables con la misma ventana de tiempo.
Criterio aplicado: reconocer que el caudal y la lluvia no tienen la misma persistencia temporal, y probar después una ventana de rezago distinta para cada variable.

4

Evaluar con métricas de hidrología

Agente: hubiera reportado solo error cuadrático medio.
Criterio aplicado: usar Nash-Sutcliffe, BIAS, RMSE, r y r², el estándar de la disciplina, y extender el modelo a pronóstico de varias horas con una arquitectura Encoder-Decoder.

Proceso de iteración

Resultado inesperado, no forzado

El modelo multivariado alcanzó un Nash de 0.986 en entrenamiento y 0.982 en validación, cifras casi perfectas. En el conjunto de prueba, el Nash cayó a 0.758, probablemente porque el periodo de prueba contiene un comportamiento hidrológico distinto al visto en entrenamiento. El modelo puramente autoregresivo, con 72 horas de rezago y sin covariables, tuvo un Nash de prueba de 0.716, muy cercano, la ganancia de agregar la lluvia fue real pero modesta.


CierreLecciones importantes

La primera lección es sobre los datos abiertos: no hacía falta un dataset propio ni un cliente para tener un proyecto real y aplicado. La segunda es sobre la memoria temporal por variable, ajustar el rezago por variable fue la decisión que más reflejó criterio de ingeniería, no solo ejecución de código.

La tercera es sobre honestidad en la evaluación: un Nash de 0.98 en validación y de 0.76 en prueba no es un resultado que se deba esconder detrás del mejor número, ambos forman parte de la misma historia.

Si quieres ver un trabajo reciente que compara arquitecturas LSTM para simulación lluvia-escorrentía en resolución horaria, esta es una buena referencia del nivel de la contribución: Evaluation of LSTM vs. conceptual models for hourly rainfall runoff simulations with varied training period lengths.

Termina ya tu proyecto

¿Tienes datos abiertos de tu país y no sabes cómo convertirlos en un proyecto real? Yo te ayudo a diseñarlo.

El 92% de los profesionales de datos desbloquea sus proyectos al ver ejemplos completos resueltos.

53
proyectos
8
sectores
100%
aplicado

Sin registro. Acceso inmediato