Datons Stories #15 - Simulación del PNIEC | El mix energético tras el cierre nuclear
Simulamos el mix energético de España tras el cierre del parque nuclear según el PNIEC. Modelos ML con datos reales de ESIOS, tres escenarios de sustitución y una app interactiva en Streamlit.
Recibe actualizaciones semanales
Sesiones de live coding, librerías Python para datos energéticos y tutoriales prácticos. Un email por semana, sin relleno.
Resultado

Una aplicación Streamlit que simula el mix energético español año a año mientras las centrales nucleares cierran según el calendario del PNIEC. Modelos de ML entrenados con datos reales de ESIOS predicen demanda y generación, y el usuario puede ajustar la capacidad instalada por tecnología para explorar escenarios.
El problema

- El PNIEC planifica el cierre escalonado de 7 reactores nucleares (7.399 MW) entre 2027 y 2035
- La nuclear aporta ~20% de la generación eléctrica con un factor de capacidad de 0,89 — el más alto de todas las tecnologías
- Para sustituir 1 MW nuclear hacen falta ~5 MW de solar fotovoltaica (factor 0,17) o ~3,7 MW de eólica (factor 0,24)
- Los debates sobre el cierre nuclear carecen de simulaciones con datos reales que muestren el impacto concreto
Factores de capacidad

El factor de capacidad mide qué porcentaje del tiempo una planta genera a su máxima potencia. Es el concepto clave para entender por qué sustituir nuclear no es simplemente instalar la misma potencia en renovables.
| Tecnología | Factor | Horas equiv./año |
|---|---|---|
| Nuclear | 0,89 | 7.796 h |
| Eólica | 0,24 | 2.102 h |
| Ciclo combinado | 0,20 | 1.752 h |
| Solar FV | 0,17 | 1.489 h |
| Hidráulica | 0,15 | 1.314 h |
La nuclear genera casi el 90% del tiempo. La solar solo el 17%. Necesitas multiplicar por 5 la capacidad instalada para compensar el hueco.
La solución
Partimos de datos históricos de generación y demanda descargados de la API de ESIOS (Red Eléctrica) para construir modelos predictivos y una herramienta de simulación interactiva.
Datos de ESIOS y el PNIEC

Descargamos series históricas de generación por tecnología y demanda eléctrica desde la API de ESIOS. Los datos incluyen producción horaria de nuclear, eólica, solar, ciclo combinado, hidráulica y el resto de tecnologías del mix español.
Preparación de los datos

Los datos del PNIEC vienen como objetivos de potencia instalada por tecnología a nivel anual. Con Pandas interpolamos estos valores mes a mes para obtener una serie continua que alimente los modelos. También creamos variables temporales (hora, día, mes, fin de semana) como features para el modelo.
Modelos de machine learning
Entrenamos modelos XGBoosting para predecir demanda eléctrica y generación por tecnología. Usamos la analogía del examen para explicar el concepto de train/test split: el modelo estudia con unos datos (train) y se examina con otros que nunca ha visto (test). Si solo memorizara las respuestas del estudio, suspendería el examen — eso es overfitting.
Evaluación de los modelos

Evaluamos los modelos con dos métricas principales:
- MAE (Mean Absolute Error): error medio en valor absoluto — indica cuántos MW se desvía la predicción de media
- RMSE (Root Mean Squared Error): penaliza más los errores grandes — útil para detectar predicciones muy desviadas
Los modelos mostraron un rendimiento aceptable para simulación de escenarios, capturando patrones estacionales y horarios de generación.
Proyecciones de generación

Con los modelos entrenados, proyectamos la generación a futuro según el calendario del PNIEC. La nuclear cae progresivamente de 7.000 MW a 2.300 MW mientras el resto de tecnologías debe compensar el déficit.
Aplicación Streamlit

Construimos una aplicación interactiva con Streamlit y la asistencia de ChatGPT. Refactorizamos los notebooks en una estructura de proyecto limpia con módulos separados para datos, modelos y visualización. La app permite:
- Seleccionar un año futuro (2027-2035)
- Ver qué centrales nucleares han cerrado en ese año
- Ajustar la capacidad instalada de cada tecnología
- Simular la generación horaria y ver el mix resultante
- Comparar con la generación histórica
Estructura del proyecto
Tres escenarios de sustitución
Simulamos tres escenarios para cubrir el hueco que deja la nuclear:
Escenario A — Solo renovables: Se instala eólica y solar suficiente para compensar la energía nuclear perdida. El problema: la intermitencia. Hay horas con exceso de generación y horas con déficit que no se pueden cubrir.
Escenario B — Gas como respaldo (modelo Alemania): Se combinan renovables con ciclos combinados de gas natural como tecnología de respaldo. Cubre el déficit pero aumenta las emisiones de CO2 — exactamente lo que ocurrió en Alemania tras el cierre nuclear.
Escenario C — Mix optimizado: Se busca la combinación óptima de renovables, almacenamiento y gas que minimice tanto el déficit energético como las emisiones. El escenario más realista pero también el más complejo de modelar.
Referencia
Centrales nucleares en España
| Central | Potencia (MW) | Cierre previsto |
|---|---|---|
| Almaraz I | 1.049 | 2027 |
| Almaraz II | 1.006 | 2028 |
| Ascó I | 1.033 | 2030 |
| Cofrentes | 1.092 | 2030 |
| Ascó II | 1.027 | 2032 |
| Vandellós II | 1.087 | 2035 |
| Trillo | 1.066 | 2035 |
Total: 7.399 MW — aproximadamente el 20% de la generación eléctrica española.
Conceptos de machine learning utilizados
| Concepto | Descripción |
|---|---|
| XGBoosting | Algoritmo de gradient boosting basado en árboles de decisión |
| Train/test split | División de datos para entrenamiento y evaluación |
| Overfitting | Modelo que memoriza datos de entrenamiento pero no generaliza |
| MAE | Error absoluto medio — desviación media de la predicción |
| RMSE | Raíz del error cuadrático medio — penaliza errores grandes |
| Feature engineering | Creación de variables (hora, día, mes, temperatura) a partir de los datos brutos |
Stack
- Python · Pandas · Plotly · XGBoost · Streamlit · ESIOS API · ChatGPT
Recursos
- ESIOS - REE - Datos de generación y demanda en tiempo real
- PNIEC - MITECO - Plan Nacional Integrado de Energía y Clima
- StatQuest - XGBoost - Explicaciones de ML accesibles
- Streamlit - Framework para apps de datos interactivas