Cómo se calcula la sensibilidad histórica ENSO–precipitación

Objetivo: responder “¿en qué partes del Perú la precipitación mensual ha covariado históricamente con Niño 1+2 o Niño 3.4?”. El resultado es descriptivo e inferencial; no es un pronóstico.

1. Datos utilizados

ComponenteFuenteUso
Precipitación mensualFluvioTech API PISCO v3Promedio espacial dentro de cada polígono departamental.
Niño 1+2 y Niño 3.4NOAA CPC · OISST.v2.1 mensualAnomalías mensuales de SST en °C.
Límites departamentalesCartografía derivada de INEI, versión reproducible Rodas v1.0.025 unidades para agregación y visualización estadística; no para fines legales.

La configuración inicial usa 1982-01 a 2020-12 para el ajuste y 1991-01 a 2020-12 para la climatología. Ambos periodos quedan registrados dentro del JSON generado.

Escala espacial: la precipitación usada para cada departamento es la media espacial de los píxeles PISCO incluidos en su polígono administrativo. Por ello, “Lima” representa el departamento de Lima completo, incluyendo costa y zonas andinas; no representa la climatología de Lima Metropolitana ni de una estación puntual.

2. Agregación espacial PISCO

Para cada departamento d y mes t, el servicio PISCO devuelve el promedio espacial de precipitación de las celdas válidas contenidas por el polígono:

P(d,t) = mean espacial de PISCO dentro del departamento d

La API pública PISCO conserva un límite operativo de 250 000 km² por polígono. Ese límite protege el servicio público y no se modifica para este análisis.

Si una unidad administrativa nacional supera únicamente ese límite, el comando interno de construcción consulta directamente el mismo Zarr PISCO registrado y reproduce la misma semántica del endpoint: selección temporal, centros de píxel cubiertos por el polígono (incluido el borde), exclusión de valores no finitos por mes y media espacial. El promedio se calcula sobre el polígono completo; no se divide ni se aproxima la geometría para el resultado científico.

P(d,t) = (1 / Nválido(d,t)) · Σ PISCO(i,t), para centros i cubiertos por d y valores finitos

Antes de habilitar este fallback se verifica causalmente en un departamento que la serie interna y la respuesta del endpoint coincidan a la precisión pública de 0.001 mm. Esta agregación permite una primera lectura nacional interpretable. No representa necesariamente la respuesta de cada cuenca o distrito dentro del departamento.

3. Anomalía mensual de precipitación

Se calcula una climatología independiente para cada mes calendario usando 1991–2020:

P̄(d,m) = (1/N) Σ P(d,m,y), para y ∈ 1991…2020

Luego se remueve el ciclo estacional:

P′(d,m,y) = P(d,m,y) − P̄(d,m)

Trabajar por mes evita mezclar, por ejemplo, la dinámica lluviosa de febrero con la estación seca de agosto.

Qué significa el selector de mes: “Noviembre” no significa noviembre del año actual ni noviembre de un año futuro. Significa reunir las observaciones de todos los noviembres entre 1982 y 2020 y estudiar su relación histórica con el índice ENSO del mismo mes.

4. Regresión por departamento, mes e índice

Para cada departamento, cada mes calendario y cada índice ENSO se ajusta:

P′ = β₀ + β₁ I_ENSO + ε

Definiendo x = IENSO y y = P′, la pendiente se estima por mínimos cuadrados ordinarios:

β₁ = Σ[(xᵢ − x̄)(yᵢ − ȳ)] / Σ[(xᵢ − x̄)²]

β₁ tiene unidades de mm/mes por °C y cuantifica el cambio medio históricamente asociado en la anomalía de precipitación por cada +1 °C del índice. No se interpreta como “lluvia adicional pronosticada”. También se reportan el coeficiente de correlación de Pearson r, R² = r² en esta regresión simple, el error estándar de β₁ y el valor p.

Cuando la precipitación climatológica mensual es al menos 10 mm, se añade una versión relativa:

βrel = 100 · β₁ / P̄(d,m) [% por °C]

El indicador relativo se omite en meses extremadamente secos para evitar porcentajes numéricamente inestables.

5. Control de múltiples comparaciones

Un mapa nacional realiza muchas pruebas simultáneas. Para reducir falsos positivos se aplica Benjamini–Hochberg por separado dentro de cada familia “índice ENSO × mes”, comparando los departamentos. El mapa guarda el q-value FDR.

robusta ⇔ q ≤ 0.10, |r| ≥ 0.20 y n ≥ 20

Estos umbrales son criterios de visualización transparentes, no leyes físicas. El usuario puede desactivar el filtro “solo asociaciones robustas” para inspeccionar todos los resultados calculados.

6. Qué significa el color del mapa

  • r > 0: meses con Niño más cálido han tendido a coincidir con precipitación por encima de la climatología.
  • r < 0: meses con Niño más cálido han tendido a coincidir con precipitación por debajo de la climatología.
  • Gris: asociación débil/no concluyente o muestra insuficiente bajo el filtro activo.

El color se basa en r, porque es adimensional y comparable entre departamentos. β se muestra en el panel técnico para conservar magnitud física.

7. Trazabilidad de los datos que construyen cada regresión

El mapa permite abrir, para cada combinación departamento × índice ENSO × mes, la tabla de observaciones efectivamente usada en el ajuste. Cada fila representa un año y muestra el índice ENSO, precipitación departamental PISCO, anomalía P′, valor ajustado y residuo.

La tabla y el gráfico de dispersión se sirven desde un artefacto histórico congelado. Su constructor no vuelve a consultar PISCO ni recalcula el Zarr: lee las caches exactas del build nacional y acepta la serie CPC únicamente si al recomputar β, r, R², p y q reproduce las 600 celdas estadísticas publicadas.

25 departamentos × 2 índices × 12 meses = 600 celdas reproducidas antes de publicar la trazabilidad

El CSV descargable conserva los pares fila por fila para auditoría externa. Los hashes SHA-256 del JSON de sensibilidad, de la serie CPC y de la cache PISCO departamental se incluyen como procedencia técnica.

8. Limitaciones científicas

  • Correlación no implica causalidad ni separa otros forzantes climáticos.
  • La versión R7A1 usa rezago 0. Una extensión posterior puede evaluar rezagos y estaciones hidrológicas sin seleccionar ex post el “mejor” rezago.
  • La agregación departamental suaviza gradientes costa–sierra–selva; el siguiente nivel natural es cuenca o píxel.
  • PISCO es un producto grillado. Para extremos y validación local deben priorizarse estaciones observadas cuando estén disponibles.
  • El estado ENSO actual y la sensibilidad histórica se muestran juntos para interpretación, pero el sistema no multiplica β por la anomalía actual para presentarlo como pronóstico.

9. Reproducibilidad

El cálculo se ejecuta con el comando Django:

python manage.py build_enso_peru_sensitivity --start 1982-01 --end 2020-12

El JSON final registra periodos, fuentes, umbrales, n, β, r, R², p y q para cada departamento, mes e índice. La escritura es atómica: si falla un departamento, el producto público anterior no se reemplaza.

Lectura recomendada: use el mapa como herramienta de exploración espacial y generación de hipótesis. Para decisiones operativas combine la señal ENSO con pronósticos oficiales, observaciones locales y conocimiento hidrológico de la cuenca.

Volver al mapa →