Résumé
Un modèle gradient-boosté qui utilise l'irradiance retardée + les covariables météo du jour (couverture nuageuse, humidité, précipitations, température, vent) prévoit l'irradiance journalière à Nairobi avec 9,4 % de MAPE sur un horizon de 90 jours — contre 13,8 % pour SARIMA et 21,6 % pour un état d'états UC. Deux constats à retenir : la climatologie mensuelle atteint 12,3 % de MAPE (mieux que SARIMA) — l'enveloppe saisonnière à elle seule explique l'essentiel de la prévisibilité. Et SARIMA et UC livrent toutes deux 99 % de couverture empirique des IP: pour une décision de dimensionnement de batterie ou d'équilibrage du réseau, c'est l'intervalle calibré qui pilote le dimensionnement, pas la moyenne plus serrée du GBM.
Pourquoi cela compte
Le Kenya exploite l'un des plus grands marchés de solaire pay-as-you-go d'Afrique — des millions de systèmes domestiques avec une capacité de batterie infrajournalière. La question de prévision se répète chaque soir : charger fortement la batterie cette nuit, ou parier que le soleil de demain suffira ? Même question au niveau du gestionnaire de réseau qui équilibre le solaire face au thermique et à l'hydro. Une erreur d'irradiance à J+1 de 5 % peut suffire à inverser la décision « remplir la batterie ce soir » ou « la laisser en réserve ». À 90 jours, la question bascule vers le budget et la négociation de contrats de stockage, mais le vocabulaire métrique reste le même.
La question métier
Trois consommateurs opérationnels regardent la même prévision :
- Opérateurs solaires pay-as-you-go: planification de l'état de charge des batteries par foyer et par nuit. Cherche des prévisions ponctuelles serrées sur 1–7 jours.
- Développeurs solaires utility-scale: anticipations de production sur 30+ jours ; les décisions de pertes / surproduction nourrissent le dispatch.
- Gestionnaires de réseau et trésorerie: scénarios pessimistes quantifiés pour budget et contrats de partage de risque. Cherche une calibration honnête des intervalles.
Trois clients, une seule prévision, trois choses différentes qu'ils regardent. L'étude de cas compare un baseline SARIMA, un modèle structurel d'espace d'états et un challenger ML pour voir lequel répond à quel besoin.
Données
API NASA POWER: gratuite, programmatique, sans authentification. 10 ans (2014-01-01 → 2023-12-31) de valeurs journalières pour Nairobi (lat -1,2921, lon 36,8219) :
ALLSKY_SFC_SW_DWN: irradiance shortwave de surface (kWh/m²/jour) — la cible de prévisionT2M: température à 2 mRH2M: humidité relative à 2 mWS2M: vitesse du vent à 2 mPRECTOTCORR: précipitations corrigéesCLOUD_AMT: couverture nuageuse %
Les 90 derniers jours sont mis de côté comme fenêtre de test ; tout ce qui précède est en entraînement. Le tier gratuit de NASA POWER est généreux et l'endpoint API tient sur une URL — le même pipeline bascule vers Lagos, Le Cap, Le Caire ou Dakar en changeant deux nombres dans download_data.py.
EDA
Trois régularités dominent la série d'irradiance de Nairobi, et elles sont physiques, pas statistiques : creux semestriel en mars–mai et octobre–décembre (les « grandes pluies » et « petites pluies »), pic semestriel en janvier–février et juillet–septembre, et une anti-corrélation avec la couverture nuageuse au pas journalier qui résume toute la variance à court horizon.
Approche de modélisation
Trois candidats principaux plus trois baselines, tous prédisant ALLSKY_SFC_SW_DWN journalier à 90 jours.
1. SARIMA
SARIMAX(2,0,2)(1,0,1)7 — AR/MA non-stationnaires + AR/MA saisonniers hebdomadaires. Notez l'ordre : l'irradiance est stationnaire en moyenne (les cycles nuageux oscillent autour d'une climatologie fixe), donc pas de terme d'intégration. La composante saisonnière hebdomadaire absorbe surtout du bruit de mesure — le solaire n'est pas vraiment un phénomène à « cycle hebdomadaire » à cette latitude, mais le jour de la semaine peut corréler avec un lissage de mesure.
2. Espace d'états — UnobservedComponents + exog. Fourier annuelles
UnobservedComponents avec tendance locale-linéaire et quatre paires d'harmoniques de Fourier annuelles passées comme régresseurs exogènes. L'ordre Fourier de 4 est choisi parce que le motif annuel bimodal de Nairobi demande plus de flexibilité qu'une seule sinusoïde.
3. Challenger ML — GBM avec covariables météo
GradientBoostingRegressor(n_estimators=400, max_depth=3, learning_rate=0.05) sur des features ingénierées :
- Calendaire :
dow,month,doy_sin,doy_cos - Irradiance retardée : 1, 2, 7, 14, 30 jours
- Moyennes glissantes (shift-1) : 7 jours et 30 jours
- Variables météo exogènes :
T2M,RH2M,WS2M,PRECTOTCORR,CLOUD_AMT: chacune au lag-1 et en moyenne glissante 7 jours
Les covariables nuageuse et d'humidité sont le levier. SARIMA et UC ne travaillent que sur l'irradiance retardée ; le GBM reçoit aussi la couverture nuageuse et les précipitations de la veille. L'écart de MAPE est principalement attribuable à cet avantage informationnel.
Baselines
Trois points de référence : naïf-dernier (prédire demain = aujourd'hui), naïf-saisonnier (prédire demain = irradiance d'il y a un an), et climatologie mensuelle (prédire demain = irradiance moyenne pour ce mois calendaire, calculée sur la fenêtre d'entraînement).
Résultats
Test mis de côté sur 90 jours :
| Modèle | MAPE | RMSE (kWh/m²/jour) | Couverture IP 95 % |
|---|---|---|---|
| GBM (exog. météo) | 9,42 % | 0,68 | — |
| Climatologie mensuelle | 12,32 % | 0,79 | — |
| SARIMA(2,0,2)(1,0,1)7 | 13,78 % | 0,88 | 99 % |
| Naïf-saisonnier (lag 365 j) | 16,49 % | 1,13 | — |
| UC + exog. Fourier annuelles | 21,63 % | 1,34 | 99 % |
| Naïf-dernier | 25,38 % | 1,56 | — |
Compromis
- Le gain du GBM dépend de la disponibilité de données météo au moment de la prévision. Si la prévision est calculée pour une date à 7+ jours, vous lui passez des prévisions-de-prévisions pour la nébulosité / l'humidité, qui sont elles-mêmes incertaines. Le déploiement en production doit soit (a) plafonner l'horizon à l'horizon de confiance des prévisions météo, soit (b) chaîner un modèle de prévision météo. La climatologie n'a aucun de ces problèmes et reste le bon repli.
- La couverture des IP de SARIMA et d'UC est le chiffre opérationnellement utile. Une couverture de 99 % à un nominal de 95 % signifie que les intervalles sont légèrement larges — mais pour une décision de dimensionnement de batterie, « plus large mais honnête » est le bon biais. Des intervalles trop étroits seraient pires.
- UC sous-performe sur la prévision ponctuelle bien qu'il soit structurellement approprié. L'ordre Fourier 4 sur-ajuste peut-être à la forme bimodale spécifique de la fenêtre d'entraînement ; un ordre 2 plus simple, plus tolérant au bruit, généraliserait peut-être mieux. À itérer en production.
- « La climatologie mensuelle bat SARIMA » est un test de cohérence utile. Il dit que la structure AR/MA n'apporte presque rien sur cette série. Les déploiements en production devraient surveiller si SARIMA bat effectivement la climatologie sur la cohorte glissante — sinon, livrez la climatologie et économisez le compute.
Esquisse de déploiement
Pour les opérateurs solaires pay-as-you-go et les gestionnaires de réseau :
- Service : FastAPI
GET /forecast?lat=...&lon=...&horizon=30dretournant l'irradiance journalière + IP 95 % pour n'importe quelle coordonnée africaine. Le même pipeline s'applique — le paramètre lat/lon est la seule dimension qui varie. - Multi-villes : NASA POWER sert la même structure de données pour n'importe quel point sur Terre ; les mêmes artefacts de modèle fonctionnent pour Lagos, Le Cap, Le Caire, Dakar sans modification de code.
- Rafraîchissement : cron quotidien tirant les mises à jour NASA POWER de la nuit ; ré-entraînement hebdomadaire sur les 5 années glissantes ; alerte si le MAPE glissant 30 jours dérive au-delà de 12 % (plancher climatologique).
- Tableau de bord : page Streamlit pour les développeurs solaires montrant la bande de prévision, un simulateur d'état de charge de batterie et un estimateur d'impact de production ; pour la trésorerie, les mêmes données avec des scénarios par quantiles.
Enseignements
- La climatologie est un vrai baseline ; vérifiez-la. Un SARIMA qui ne bat pas la climatologie mensuelle est un SARIMA qui sur-complique le problème. La meilleure prévision est parfois la moyenne du mois calendaire, habillée d'un intervalle calibré.
- Les covariables météo du jour sont le différenciateur. Le gain de 4 points de pourcentage de MAPE sur la climatologie vient entièrement des entrées de couverture nuageuse et d'humidité. Si votre système de production ne peut pas les observer en quasi-temps-réel, le modèle structurel est votre plafond honnête.
- NASA POWER plus un script de téléchargement de trente lignes suffit comme infrastructure pour un service de prévision à l'échelle d'une ville. Pas de météo payante, pas de licence, pas d'angoisse de quotas. Le pipeline s'étend trivialement à n'importe quelle ville africaine. Le goulot d'étranglement, c'est ce que vous faites de la prévision, pas d'où viennent les entrées.