Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

3. Análisis exploratorio de datos

3.0 Reserva del conjunto de prueba

El conjunto de prueba se reserva antes de tomar cualquier decisión basada en los datos. Los umbrales, las curvas ajustadas, la imputación y la selección de variables se calculan únicamente con el conjunto de entrenamiento.

Al tratarse de una serie de tiempo, la partición es cronológica y se deja un intervalo de separación de treinta días entre ambos conjuntos, suficiente para cortar la dependencia de corto plazo que documenta la sección 3.6.

31,475 filas, 7 estaciones
Train: 1940-07-23 a 2009-12-31   n = 25,364
Gap:   30 días
Test:  2010-01-31 a 2026-09-24   n = 6,081

3.1 Análisis de la variable objetivo

La variable objetivo se deriva del análisis magnitud-frecuencia. Antes de construirla es necesario auditar la serie de transporte de sedimentos, puesto que de ella depende la curva que pondera cada clase de caudal.

3.1.1 Auditoría de la serie de transporte

El campo Parametro de los archivos de transporte declara textualmente que el valor “se obtiene con la curva EQ_QS-QL”. El dato publicado sería entonces el caudal transformado mediante una curva de gasto sólido de la forma Qs=aQbQ_s = aQ^b. La verificación consiste en ajustar esa curva por bloques de cinco años: un coeficiente de determinación igual a la unidad dentro de cada bloque indicaría una relación determinista.

Ajuste global:  Qs = 0.0002021 * Q^1.6186   R² = 0.9410   n = 13,375
   bloque    n        a        b       R2
1970-1974 1096 0.000851 1.439986 1.000000
1975-1979 1826 0.000851 1.439995 1.000000
1980-1984 1827 0.000851 1.439999 1.000000
1985-1989 1826 0.000013 1.940139 0.960788
1990-1994 1826 0.000007 2.018998 1.000000
1995-1999 1446 0.000007 2.016280 0.999882
2000-2004 1824 0.000625 1.488830 0.999739
2005-2009 1704 0.000569 1.499333 0.997645

Bloques con R² > 0.999: 6 de 8
ACF del residuo:  lag1 = 0.9990   lag7 = 0.9856   lag30 = 0.8873

rama de ascenso   n =  6,706   b = 1.6185   a = 0.0002028
rama de descenso  n =  5,742   b = 1.6152   a = 0.0002075

Dentro de cada bloque quinquenal la relación resulta exacta. El coeficiente global inferior a la unidad proviene de que el IDEAM cambió la ecuación varias veces a lo largo del registro. La autocorrelación de primer orden del residuo, próxima a uno, descarta que se trate de ruido de medición e indica un desfase sistemático entre curvas sucesivas. Las ramas de ascenso y descenso del hidrograma arrojan además el mismo exponente, de modo que no existe histéresis, fenómeno que todo proceso de transporte medido en campo presenta.

De esta constatación se derivan varias decisiones de diseño. Ajustar una curva de gasto sólido propia carecería de sentido, porque el procedimiento recuperaría la ecuación que el propio IDEAM aplicó. El transporte queda excluido tanto del conjunto de predictores como de la variable objetivo, ya que su dependencia determinista del caudal introduciría una fuga completa. La curva oficial se emplea únicamente para localizar la descarga efectiva dentro del análisis magnitud-frecuencia. El cambio de ecuación entre periodos vuelve además inhomogénea la serie publicada, que por ello no admite análisis de tendencia sedimentaria de largo plazo.

3.1.2 Cálculo de la descarga efectiva

El procedimiento discretiza el caudal en clases, pondera cada clase por la magnitud del transporte asociado y localiza el máximo del producto (Wolman y Miller, 1960; Andrews, 1980). Se aplica solo al conjunto de entrenamiento.

Curva utilizada:    Qs = 0.0005689 * Q^1.4993
Descarga efectiva:  9,954 m³/s
Clase modal:        [9,486 - 10,446] m³/s
Caudal medio:       7,189 m³/s    Q_ef/Q_medio = 1.38
Excedencia:         15.4% del tiempo

Robustez frente a la curva elegida:
  1970-1974 (b = 1.440)  ->  Q_ef = 9,954 m³/s
  1975-1979 (b = 1.440)  ->  Q_ef = 9,954 m³/s
  1980-1984 (b = 1.440)  ->  Q_ef = 9,954 m³/s
  1985-1989 (b = 1.940)  ->  Q_ef = 9,954 m³/s
  1990-1994 (b = 2.019)  ->  Q_ef = 9,954 m³/s
  1995-1999 (b = 2.016)  ->  Q_ef = 9,954 m³/s
  2000-2004 (b = 1.489)  ->  Q_ef = 9,954 m³/s
  2005-2009 (b = 1.499)  ->  Q_ef = 9,954 m³/s
<Figure size 1430x462 with 2 Axes>

El panel izquierdo decrece, puesto que los caudales grandes son raros. El panel derecho, producto de esa frecuencia por la magnitud del transporte, presenta un máximo interior: ni las crecidas extremas ni los caudales bajos dominan el balance sedimentario de largo plazo.

El valor obtenido supera al caudal medio y queda muy por debajo del máximo registrado, en línea con lo que predice el modelo de magnitud y frecuencia. Las cuatro curvas históricas del IDEAM, cuyos exponentes varían entre 1,44 y 2,02, conducen a la misma clase modal, lo que indica que la posición del máximo depende de la distribución de frecuencias más que de la escala de la curva.

3.1.3 Construcción de la variable objetivo

yt={1si Qt+h∈[(1−τ) Qef, (1+τ) Qef]0en otro casoy_{t} = \begin{cases} 1 & \text{si } Q_{t+h} \in [(1-\tau)\,Q_{ef},\ (1+\tau)\,Q_{ef}] \\ 0 & \text{en otro caso}\end{cases}

con horizonte h=15h = 15 días y tolerancia τ=0,15\tau = 0{,}15. El objetivo se sitúa en t+ht+h mientras que todos los predictores usan información hasta tt, de modo que la construcción excluye por diseño la fuga temporal.

Banda: [8,461 - 11,448] m³/s

Prevalencia según la definición del objetivo (en entrenamiento):
  clase modal exacta      [  9,486 -   10,446]     9.00%
  banda ±10%              [  8,959 -   10,950]    17.56%
  banda ±15%              [  8,461 -   11,448]    25.67%
  banda ±25%              [  7,466 -   12,443]    41.33%
  banda ±35%              [  6,470 -   13,439]    57.05%
  excedencia Q >= Q_ef    [  9,954 -      inf]    15.40%

Distribución del objetivo en entrenamiento:
  clase 0:  18,853  (74.33%)
  clase 1:   6,511  (25.67%)
  desbalance: 2.90 : 1

La excedencia convierte el problema en predecir aguas altas y pierde la especificidad del concepto, que se refiere a una banda de caudales alrededor del máximo de transporte. La clase modal exacta tiene una prevalencia demasiado baja. La banda de ±15 % conserva el significado hidrológico con un desbalance manejable.

Con esta prevalencia, un clasificador que prediga siempre la clase mayoritaria alcanzaría un acierto elevado sin valor predictivo. La evaluación prioriza en consecuencia la precisión, la exhaustividad y el área bajo la curva precisión-exhaustividad de la clase positiva.

<Figure size 1430x418 with 2 Axes>

3.2 Análisis unidimensional

Loading...
<Figure size 1650x715 with 8 Axes>
Loading...
<Figure size 935x495 with 1 Axes>

Los caudales medios crecen de forma monótona aguas abajo, desde los brazos de la depresión momposina hasta Calamar, puesto que cada estación incorpora la escorrentía de una cuenca mayor.

La estación objetivo presenta una distribución casi simétrica, poco habitual en registros de caudal. Su posición en el bajo Magdalena explica ese comportamiento, dado que la cuenca integra y amortigua los picos de crecida generados aguas arriba. La transformación logarítmica o de Box-Cox queda descartada por esa razón, decisión que se registra en la sección 3.8.

Las estaciones de aguas arriba resultan más asimétricas, lo que resulta coherente con cuencas menores y respuesta más torrencial. El comportamiento estadístico varía por tanto a lo largo del cauce.

Las proporciones de valores extremos detectadas por el rango intercuartílico son bajas y no se recortan, según el criterio establecido en la sección 2.6.3. La banda de descarga efectiva se sitúa en la parte alta-intermedia de la curva de duración de Calamar, lo que confirma gráficamente que dista de ser un valor extremo.

3.3 Análisis bidimensional

<Figure size 1485x528 with 4 Axes>
Correlación con la estación objetivo:
coyongal         0.920
san_roque        0.878
el_banco         0.850
tres_cruces      0.723
arrancaplumas    0.359
pto_salgar       0.324
Periodo con todas las estaciones: 9,385 días
     estacion   VIF
    san_roque 14.40
     coyongal 14.33
     el_banco 12.23
   pto_salgar 11.00
arrancaplumas 10.99
      calamar  7.91
  tres_cruces  2.95
Con n de este orden casi toda diferencia resulta significativa, por lo que
se reporta el tamaño de efecto junto al p-valor, con corrección de Holm.
Loading...

3.3.1 La multicolinealidad como resultado físico

Los factores de inflación de varianza elevados reflejan que todas las estaciones miden el mismo sistema físico en puntos distintos. El agua registrada aguas arriba es, días después, la que se registra en Calamar.

La matriz de correlación revela una estructura en dos bloques. Las estaciones del alto Magdalena, Arrancaplumas y Puerto Salgar, correlacionan fuertemente entre sí y débilmente con la estación objetivo, mientras que las del bajo Magdalena, Coyongal, El Banco y San Roque, lo hacen con Calamar. Entre ambos grupos ingresan los aportes del Cauca, el Cesar y el San Jorge, y se interpone la depresión momposina, que amortigua y redistribuye la onda de crecida (Restrepo et al., 2006). El alto Magdalena resulta así poco informativo sobre el comportamiento del bajo Magdalena.

Con predictores fuertemente colineales, los coeficientes individuales de la regresión logística se vuelven inestables y difíciles de interpretar, aunque la capacidad predictiva agregada no tiene por qué degradarse. Esta circunstancia motiva las técnicas de regularización y la reducción de dimensionalidad que explora la sección siguiente.

3.4 Análisis multivariado

componente  varianza_explicada  acumulada
       PC1              0.7071     0.7071
       PC2              0.2002     0.9073
       PC3              0.0483     0.9555
       PC4              0.0237     0.9792
       PC5              0.0085     0.9878
       PC6              0.0067     0.9945
       PC7              0.0055     1.0000

Componentes para el 90% de la varianza: 2 de 7

Pesos de las tres primeras componentes:
                 PC1    PC2    PC3
arrancaplumas  0.286  0.638  0.027
calamar        0.393 -0.305  0.196
coyongal       0.422 -0.224  0.063
el_banco       0.423 -0.101  0.313
pto_salgar     0.287  0.635 -0.004
san_roque      0.428 -0.133  0.223
tres_cruces    0.376 -0.134 -0.900
<Figure size 1430x462 with 3 Axes>
Umbral chi² (p = 0.001, gl = 7): 24.3
Días atípicos: 1,058 de 9,385 (11.27%)
Loading...

La primera componente principal concentra la mayor parte de la varianza con pesos del mismo signo en todas las estaciones, de modo que representa el estado hidrológico general de la cuenca. La segunda presenta pesos de signo contrario entre el alto y el bajo Magdalena y captura el contraste longitudinal identificado en la sección anterior. La dimensionalidad efectiva queda muy por debajo del número de estaciones, lo que cuantifica la redundancia del sistema.

La distancia de Mahalanobis calculada con el estimador de covarianza mínima robusta identifica días en que las estaciones se comportan de forma mutuamente incoherente, por ejemplo una crecida marcada aguas arriba sin respuesta aguas abajo. El criterio resulta preferible al rango intercuartílico univariado para detectar errores de medición, puesto que las crecidas generalizadas afectan a todas las estaciones a la vez y no quedan penalizadas (Rousseeuw y Van Driessen, 1999).

3.5 Auditoría de fuga de datos

Cada variable debe estar disponible en el momento de la predicción.

VariableDisponibilidad en ttJustificación
Caudal de Calamar en tt y rezagosdisponiblese mide y se publica el mismo día
Caudal de estaciones aguas arriba y rezagosdisponiblese mide y se publica el mismo día
Componentes de calendariodisponibleson deterministas
∣Qt−Qef∣\lvert Q_t - Q_{ef}\rvertdisponiblese calcula con QtQ_t y una constante estimada en entrenamiento
Caudal en t+15t+15no disponiblesobre él se construye la variable objetivo
Transporte de sedimentosno disponibledepende de forma determinista del caudal (3.1.1)

Los controles aplicados comprueban que ninguna variable derive del objetivo, calculan el área bajo la curva ROC de cada predictor por separado y verifican la ausencia de solapamiento entre particiones.

     estacion  AUC_univariado
      calamar          0.8892
     coyongal          0.8885
     el_banco          0.8492
    san_roque          0.8425
  tres_cruces          0.8305
arrancaplumas          0.6665
   pto_salgar          0.6565

Variables con AUC > 0.95: 0
Fechas comunes entre train y test: 0

3.6 Componente temporal

Cobertura: 1940-07-23 a 2009-12-31  (69.4 años)
Frecuencia: diaria regular    Fechas duplicadas: 0

Días sin dato en la estación objetivo: 439 (1.73%)
Número de huecos: 13

Los ocho más largos:
    89 días   1945-02-01 a 1945-04-30
    81 días   1944-01-25 a 1944-04-14
    61 días   1970-11-01 a 1970-12-31
    48 días   1956-11-14 a 1956-12-31
    42 días   1955-11-13 a 1955-12-24
    33 días   1948-02-28 a 1948-03-31
    23 días   1954-11-21 a 1954-12-13
    22 días   1959-02-18 a 1959-03-11
C:\Users\Qclem\miniconda3\envs\ml_venv\lib\site-packages\seaborn\_oldcore.py:1498: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead
  if pd.api.types.is_categorical_dtype(vector):
C:\Users\Qclem\miniconda3\envs\ml_venv\lib\site-packages\seaborn\_oldcore.py:1498: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead
  if pd.api.types.is_categorical_dtype(vector):
C:\Users\Qclem\miniconda3\envs\ml_venv\lib\site-packages\seaborn\_oldcore.py:1498: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead
  if pd.api.types.is_categorical_dtype(vector):
<Figure size 1430x715 with 2 Axes>
C:\Users\Qclem\AppData\Local\Temp\ipykernel_19136\703876311.py:9: UserWarning: The figure layout has changed to tight
  plt.tight_layout()
<Figure size 1210x770 with 4 Axes>
Tendencia 20.4% | Estacionalidad 62.9% | Residuo 16.7%
C:\Users\Qclem\AppData\Local\Temp\ipykernel_19136\1930425425.py:6: InterpolationWarning: The test statistic is outside of the range of p-values available in the
look-up table. The actual p-value is greater than the p-value returned.

  p_kpss = kpss(sd, regression="c", nlags="auto")[1]
ADF   H0: no estacionaria   p = 0.0000
KPSS  H0: sí estacionaria   p = 0.1000
Conclusión: la serie es estacionaria en nivel
<Figure size 1430x396 with 2 Axes>

ACF: lag1 = 0.9987 | lag7 = 0.9769 | lag15 = 0.9180 | lag30 = 0.7491
Loading...
<Figure size 990x495 with 1 Axes>
           estacion     municipio  altitud       lat  transito
PUERTO SALGAR - AUT Puerto Salgar      168  5.469667        21
ARRANCAPLUMAS - AUT       Guaduas      222  5.202417        20
        TRES CRUCES          Achí       31  8.703083        16
     EL BANCO - AUT      El Banco       29  8.992528        12
          SAN ROQUE      El Banco       24  9.071622        10
           COYONGAL      Magangué       20  8.915130         7
            CALAMAR       Calamar        8 10.244042         0

tránsito vs altitud   Pearson r = +0.7865 (p = 0.0359)   Spearman = +0.9643
tránsito vs latitud   Pearson r = -0.8758 (p = 0.0098)   Spearman = -0.8571
<Figure size 1430x462 with 2 Axes>
Prueba de Kolmogorov-Smirnov frente a la primera década:
 decada    n     media     KS  p_valor
   1950 3495 6937.8990 0.1068      0.0
   1960 3653 7117.7495 0.1284      0.0
   1970 3591 7714.4414 0.1793      0.0
   1980 3653 7596.0619 0.1521      0.0
   1990 3637 7005.4399 0.0890      0.0
   2000 3650 7318.3740 0.1311      0.0

Prevalencia del objetivo por década:
          mean  size
decada              
1940    0.1951  3449
1950    0.2360  3652
1960    0.3263  3653
1970    0.2850  3652
1980    0.2527  3653
1990    0.2741  3652
2000    0.2242  3653

La estacionalidad por ciclo confirma el régimen bimodal característico del Magdalena, con mínimo en febrero y marzo, máximo principal en noviembre y diciembre, y máximo secundario a mitad de año. El patrón responde al doble paso de la Zona de Convergencia Intertropical sobre la cuenca, por lo que el modelo incorpora componentes cíclicos anual y semianual.

La descomposición STL muestra que la estacionalidad domina frente a la tendencia, de modo que el sistema está gobernado por el ciclo climático anual antes que por cambios seculares.

Las pruebas ADF y KPSS se leen conjuntamente por tener hipótesis nulas opuestas, y su resultado respalda tratar la serie en niveles, sin diferenciación.

La función de autocorrelación decae con lentitud, y su valor sigue siendo sustancial a quince y treinta días. De ahí que el tamaño efectivo de muestra resulte muy inferior al número de filas, y que una partición aleatoria produjera una estimación optimista del desempeño. La partición cronológica con intervalo de separación de treinta días atiende ambos problemas.

La correlación cruzada recupera un gradiente coherente con la geografía: el rezago óptimo crece con la distancia al mar y la correlación aumenta al aplicar el desfase. Dado que el procedimiento no incorporó coordenadas ni altitudes, su concordancia con la ubicación real de las estaciones constituye una verificación externa del resultado y respalda el uso de esos rezagos como predictores. Arrancaplumas y Puerto Salgar invierten el orden estricto, con tránsitos de veinte y veintiún días pese a diferir en altitud, circunstancia esperable porque ambas se sitúan en el mismo tramo del alto Magdalena y su correlación con Calamar es la más baja del conjunto.

La evaluación de deriva entre décadas refuerza la conveniencia de evaluar sobre un periodo futuro en lugar de una muestra aleatoria.

3.7 Componentes espacial y espacio-temporal

La unidad de observación es el día en la estación Calamar. Las coordenadas de las siete estaciones cumplen una función identificadora, puesto que cada estación ocupa una columna fija del conjunto de datos y el muestreo carece de dimensión espacial continua.

Las técnicas propias del análisis espacial carecen por tanto de aplicación en este diseño. El índice de Moran global, igual que los indicadores locales del tipo LISA o los concentradores de Getis-Ord, parte de una muestra de unidades distribuidas sobre un territorio, y con siete estaciones alineadas a lo largo de un único cauce el estadístico no alcanza la potencia necesaria para producir un resultado interpretable. El semivariograma presupone un campo continuo muestreado en el plano, mientras que la variación que aquí interesa se produce a lo largo de una sola dimensión. La partición por bloques espaciales responde a un objetivo diferente del de este trabajo, que predice en el futuro sobre una estación fija, por lo que la partición empleada es cronológica.

La dependencia espacial de este sistema es la posición longitudinal de cada estación sobre el cauce, y se trató con las herramientas adecuadas a esa geometría: la correlación cruzada con rezagos de la sección 3.6, el análisis de multicolinealidad de la sección 3.3 y el análisis de componentes principales de la sección 3.4.

3.8 Preprocesamiento

Todo el preprocesamiento se implementa dentro de un Pipeline y se ajusta únicamente con el conjunto de entrenamiento.

DecisiónHallazgo que la motiva
No transformar el caudal mediante logaritmo ni Box-CoxLa asimetría en Calamar ronda 0,3 (3.2), de modo que la distribución ya es casi simétrica porque la cuenca baja amortigua los picos
No recortar valores extremos por rango intercuartílicoSegún se argumenta en 2.6.3, esos extremos corresponden a crecidas plausibles y la validación física no detecta saltos anómalos
Imputar por mediana dentro del PipelineEl mecanismo identificado en 2.6.1 es MAR, dado que la ausencia depende de la fecha de instalación de cada estación
Aplicar escalado estándarLas escalas difieren entre estaciones en un orden de magnitud, de 500 a 7.200 m³/s (3.2)
Rezagar cada estación por su tiempo de tránsitoLa correlación cruzada de 3.6 estima ese retardo de forma empírica para cada punto del cauce
Incluir componentes cíclicos anual y semianualEl régimen bimodal confirmado en 3.6 requiere dos armónicos para describirse
Añadir la variable ∣Qt−Qef∣\lvert Q_t - Q_{ef}\rvertEl objetivo es una banda de caudales, que una frontera lineal no logra representar (capítulo 4)
Excluir Arrancaplumas de los predictoresSu registro termina en 2014 y cubre apenas el 28,6 % del periodo de prueba (2.6.1)
Predictores: 43
  derivados del caudal objetivo y calendario: 23
  derivados de estaciones aguas arriba:       15
  de dominio:                                 5
Las diez variables con mayor AUC univariado:
      variable    AUC
  dist_qef_rel 0.9328
      dist_qef 0.9328
  calamar_cuad 0.8892
  calamar_lag1 0.8847
 dist_qef_lag7 0.8844
  calamar_lag2 0.8799
  calamar_lag3 0.8751
calamar_media7 0.8708
   coyongal_t7 0.8668
  calamar_lag5 0.8651

dist_qef tiene AUC alto por construcción: es la distancia al centro de la banda
evaluada en t. Usa solo información de t y el objetivo está en t+15.
Guardados: features.csv (31,475 filas) y parametros.json