2. Votre logo ou nom ici
Contexte
Notre société, Enercoop, spécialisée dans les
énergies renouvelables, souhaite proposer une
meilleure adéquation offre / demande grâce à la
mise en place d’un algorithme de prédiction de la
consommation.
Sommaire
• Présentation et description des sources de données.
• Détail du programme Python développé.
• Correction des consommations mensuelles de l’effet
de température.
• Désaisonnalisation de la consommation.
• Prévision des consommations grâce aux méthodes de
lissage exponentiel et SARIMA
2
3. Votre logo ou nom ici
Présentation et description
des données.
Les bonnes données pour un bon algorithme …
Point sur les datasets temporels utilisés.
3
4. Votre logo ou nom ici
2 Timeseries principales
Données mensuelles de DJU (Degré
jour unifié) sur différentes stations
météo régionales, sur la même
période.
Source : cegibat.grdf.fr
Consommation électrique
Données météo
Données mensuelles régionales de
consommation électrique en TWh
sur une période de 8 ans.
Source : www.rte-france.com
4
5. Votre logo ou nom ici
Les données de consommation électrique
5
Timeserie de la consommation en énergie (TWh), au niveau régional de 2012 à 2019.
6. Votre logo ou nom ici
Description des données de consommation
6
Des données complètes et cohérentes
• Le fichier eCO2mix_RTE_energie_M.csv téléchargé sur les bases
RTE ne contient pas de données nulles.
• Les dates qui nous intéressent, de 2012 à 2019, sont bien
complétées de données définitives ou consolidées.
• Les valeurs relevées ne semblent pas comporter de valeurs
aberrantes, les moyenne et écart type sont cohérents.
• Nous voyons 13 valeurs uniques pour les territoires.
• Les 12 régions de France y sont représentées ainsi que
l’agglomérat au niveau national (La corse n’est pas présente).
7. Votre logo ou nom ici
Projection des données régionales
7
Lineplot Seaborn des évolutions de consommations par région depuis 2014.
Les courbes par région suivent la
même tendance et nous
remarquons ici parfaitement l’effet
de saisonnalité.
Les pics saisonniers sont présents
aux même périodes à des niveaux
différents.
8. Votre logo ou nom ici
Projection des données France
8
Lineplot Seaborn des évolutions de consommations en France depuis 2012.
Ici encore, les effets de la saison
semblent très marqués.
Nous allons donc, sur ces données,
devoir corriger l’effet des
températures grâce aux données
des DJU.
9. Votre logo ou nom ici
Données DJU pour correction de l’effet de température
9
Timeserie des données de températures .
Les différents datasets au format
Excel ont été téléchargés.
1 fichier téléchargé par chef lieu de
région afin de couvrir l’intégralité
des variations en France.
Le degré jour unifié (DJU) est une
valeur représentative de l’écart
entre la température d’une
journée donnée et un seuil de
température préétabli à 18 °C,
sommés sur une période.
10. Votre logo ou nom ici
Création d’un DataFrame global des DJU
10
Regroupement des données DJU et calcul des moyennes France.
Grâce à une boucle Python, nous importons tous les
Excels téléchargés pour créer un DataFrame Pandas
global des données DJU 2012 / 2019.
Nous avons donc à présent, pour chaque région,
l’ensemble des DJU mensuels sur la période.
Pour obtenir les données France cohérentes, nous
avons ensuite groupé les données mensuelles par la
moyenne.
11. Votre logo ou nom ici
Projection des données DJU France
11
Lineplot Seaborn des évolutions de consommations en France et DJU depuis 2012.
Les 2 courbes semblent suivre la
même saisonnalité.
Les variations de la courbe de
consommation d'énergie sont
effectivement globalement liées
aux écarts de températures.
12. Votre logo ou nom ici
Synthèse
Des données exploitables et cohérentes
• Les données utilisées ne présentent pas de valeurs
manquantes ou aberrantes.
• Les données France compilées sont cohérentes que ce
soit pour les DJU ou les consommations en énergie et
présentent bien les mêmes pics de saisonnalité.
• Nous allons à présent pouvoir corriger l’effet de
température sur les données de consommation par
régression linéaire simple, sur les timeseries France.
12
13. Votre logo ou nom ici
Correction des données
de l’effet de température.
Régression linéaire simple pour retirer l’effet des
températures sur les consommations d’énergie.
13
14. Votre logo ou nom ici
Scatterplot et droite de régression conso / DJU
14
Visualisons la répartition des données de consommation en fonction des DJU
Nous projetons les données ainsi :
• 𝑋 = DJU
• 𝑌 = Consommations d’énergie.
Dans ce modèle, nous supposons qu'il existe
une relation linéaire entre la variable à
expliquer et la variable explicative :
𝒀 = 𝒂 + 𝒃𝑿 + 𝜺
Nous cherchons donc les paramètres
inconnus 𝑎 et 𝑏 pour corriger les
consommations mensuelles de l'effet de
température.
15. Votre logo ou nom ici
Régression linéaire simple avec Statsmodels
15
Fonction OLS
Le coefficient de détermination 𝑅² est de l'ordre de 0.95,
ce qui est relativement élevé et au vu de la représentation
graphique de notre droite de régression, cela nous indique
que le modèle est performant.
La variable "dju" est également statistiquement significative
au niveau de test 5%, sa P-value étant de 0.
Les coefficients de régressions sont ici estimés :
• 𝑎 = 31344
• 𝑏 = 48.39
16. Votre logo ou nom ici
Vérification de la performance du modèle de régression
16
Valeurs ajustées et normalité des résidus
Les points projetés sont proches de la première bissectrice, ce qui
nous indique que les valeurs ajustées sont proches des valeurs
réelles.
La normalité des résidus est confirmée avec la distribution
observée et le QQplot. Le test de Shapiro-Wilk indique une p-
value de 0,37.
17. Votre logo ou nom ici
Correction de l’effet de température
17
Visualisation des données initiales et corrigées
Les tests sur notre modèles de
régression linéaire étant significatifs,
nous allons pouvoir utiliser les
coefficients obtenus pour corriger
notre consommation d'énergie des
effets de la température :
𝐶𝑜𝑛𝑠𝑜𝑎𝑗𝑢𝑠𝑡é𝑒 = 𝐶𝑜𝑛𝑠𝑜 – 𝐷𝐽𝑈 ∗ 𝑏
On voit ici clairement l'impact des
températures sur les consommation
d'énergie au niveau national.
18. Votre logo ou nom ici
Désaisonnalisation
par moyennes mobiles.
On remarque une forte saisonnalité sur nos
données ajustées.
Regardons ce que les données CVS peuvent nous
apprendre.
18
19. Votre logo ou nom ici
?
19
La correction des variations saisonnières (CVS) est une technique
employée pour éliminer l'effet des fluctuations saisonnières normales
sur les données, de manière à en faire ressortir les tendances
fondamentales …
Une moyenne mobile est une combinaison linéaire d'instants passés et futurs de
notre série temporelle. L'enjeu est de trouver une moyenne mobile qui laisse la
tendance invariante, qui absorbe la saisonnalité et qui réduit le résidu :
Notre série temporelle : 𝑋𝑡 = 𝑇𝑡 + 𝑆𝑡 + 𝜀𝑡
Si on applique une moyenne mobile 𝑀 sur la série, nous obtenons :
𝑴𝑿𝒕 = 𝑴𝑻𝒕 + 𝑴𝑺𝒕 + 𝑴𝜺𝒕
Ses propriétés idéales seront donc :
𝑀𝑇𝑡 = 𝑇𝑡
𝑀𝑆𝑡 = 0
𝑀𝜀𝑡 faible
20. Votre logo ou nom ici
Fonction seasonal_decompose du package statsmodels
20
Décomposition de la tendance, de la saisonnalité et des résidus
Afin d’être certain de travailler sur une série de
type additive, nous avons travaillé avec le
logarithme de la consommation ajustée.
Tendance (trend) de la série
Elle semble être stable avec un pic en 2018.
Saisonnalité (Seasonal)
On peut distinguer 2 pics positifs et 1 pic négatif
par période de 12 mois.
Résidus (Resid)
Ils semblent être faibles, autour de 0.
21. Votre logo ou nom ici
Calcul et visualisation des consommation ajustées CVS
21
Visualisation des données initiales et corrigées des températures et des variations saisonnières.
Nous avons récupéré les valeurs de
chaque item grâce à la fonction et
calculé :
𝐶𝑜𝑛𝑠𝑜𝑎𝑗𝑢𝑠𝑡é𝑒_𝑐𝑣𝑠
= 𝐶𝑜𝑛𝑠𝑜𝑎𝑗𝑢𝑠𝑡é𝑒– 𝑆𝑎𝑖𝑠𝑜𝑛𝑛𝑎𝑙𝑖𝑡é
Les données de consommation
d’énergie France sont donc ici
corrigées des effets de la
températures et des variations
saisonnières.
22. Votre logo ou nom ici
Synthèse
Des consommations fortement liées aux effets de
températures et de saisonnalité …
• En corrigeant ainsi la série temporelle des
consommations, on ne remarque pas d’outliers francs
ni de pics aberrants.
• Nous apercevons des pics de saisonnalité positifs et
négatifs sur une période de 12 mois.
• Ces indices vont nous permettre d’orienter nos
modèles de prédiction de consommation.
22
23. Votre logo ou nom ici
Modèle de prédiction
de la consommation.
2 méthodes seront testées :
- Lissage exponentiel : Holt Winters
- Modèle SARIMA
23
24. Votre logo ou nom ici
?
24
Dans les techniques de lissage exponentiel, les prévisions sont des
fonctions, linéaires (ou non), du passé de la série.
Dans le cas de la méthode Holt-Winters, la saisonnalité de la série est
prise en compte.
Cette méthode consiste à supposer que 𝑋𝑡 est approximable au
voisinage de 𝑇 par :
𝑎𝑇 + (𝑡 − 𝑇)𝑏𝑇 + 𝑆𝑇
En désignant par 𝑠 la période du cycle saisonnier de la série temporelle.
Lissage exponentiel triple
25. Votre logo ou nom ici
Lissage de Holt-Winters avec Python via Statsmodels
Nous utiliserons la fonction ExponentialSmoothing
Split de la série
Train, Test
• Le split Train constitue les
données d’entrainement,
conso de 2012 à 2018.
• Le split Test, données
2019, nous servira à
vérifier les prédictions.
Modélisation
sur la série log(Train)
• Lissage exponentiel Holt-
Winters via la fonction
ExponentialSmoothing
avec une saisonnalité 12
sur la série Train.
Prédiction
de la série Test pour comparaison
• Grâce à la fonction
forecast sur une période
12, prédiction de l’année
2019.
• Comparaison avec les
données réelles.
25
26. Votre logo ou nom ici 26
Les données prédites via la méthode de
lissage exponentiel, sur les moments
passés de la série, sont relativement
fidèles au données réelles test.
On remarque que la saisonnalité et
l’échelle des valeurs sont bien respectées.
Pour vérifier la performance du modèle,
nous allons calculer quelques métriques.
27. Votre logo ou nom ici
Les métriques analysées :
MAE
Mean Absolute Error,
mesure la déviation
absolue moyenne entre
une estimation prévue et
les données réelles.
MSE
Mean Squared Error, la
distance, entre la
prévision et l’observation,
est ici élevée au carré. La
sensibilité à l’erreur est
meilleure.
RMSE
Root Mean Squared Error,
est la racine carrée du
MSE, c’est une métrique
largement utilisée.
MAPE
Mean Absolute Percentage
Error, moyenne des écarts
en valeur absolue par
rapport aux valeurs
observées exprimée en
pourcentage.
R²
Coefficient de
détermination, c’est le
carré du coefficient de
corrélation linéaire.
27
28. Votre logo ou nom ici
Analyse de la performance du modèle Holt-Winters
28
Calculs et affichage des diverses métriques
Le MAPE est relativement faible sur ce modèle et le R² assez élevé (quoi que R²
n’est pas forcement le meilleur indicateur pour une timeserie).
En l’état, le modèle semble performant, mais il sera nécessaire de comparer ces
métriques avec celles du modèle suivant (SARIMA).
29. Votre logo ou nom ici
?
29
La méthode SARIMA (Seasonnal AutoRegressive Integrated Moving
Average) permet de modéliser des séries qui présentent une
saisonnalité, comme c'est le cas pour notre dataset.
Pour être certain que toutes les variables aléatoires suivent la même
loi, nous allons devoir stationnariser la série.
Un processus (𝑋𝑡)𝑡 ∈ ℤ est dit stationnaire si son espérance et ses
autocovariances sont invariantes par translation dans le temps. Nous
stationnariserons notre série par différenciation.
A l'issue de la modélisation, il nous faudra obtenir un signal résiduel qui ne
contient plus d'information temporelle, un bruit blanc qu’il faudra donc
caractériser.
Processus stochastique et stationnaire …
30. Votre logo ou nom ici
Démarche utilisée pour la méthode SARIMA
Stationnarisation
par différenciation
• Test de stationnarité de la
série conso ajustée.
• Stationnarisation par
différenciation itérative.
Modèles potentiels
Identification, estimation a priori
• Nous utiliserons la
méthode
statspace.sarimax de
Statsmodels ainsi que la
méthode de Jung-Box
pour les tests de
blancheur.
Prévision
et analyses a posteriori
• Prédiction et analyses à
posteriori sur les
données splitées Train et
Test identiques à la
méthode Holt-Winters.
30
31. Votre logo ou nom ici
Test de stationnarité avec le test ADF (Augmented Dickey-Fuller)
31
Au niveau de test 5%, on ne rejette pas l'hypothèse
de non-stationnarité de la série, contrairement à la
série différenciée testée en second.
Nous allons donc devoir effectuer une
stationnarisation de notre série temporelle.
32. Votre logo ou nom ici
Stationnarisation : premiers autocorrélogrammes
32
• Pics significatifs dans le
graphique ACF au
décalage 6, 12, 18 ...
(composante saisonnière
semestrielle).
• Dans le graphique PACF,
les délais sont plus lents à
se désintégrer autour de
22, 32 et les pics négatifs
sont significatifs.
33. Votre logo ou nom ici
Différenciations successives de la série temporelle
Différenciation 𝑰 − 𝑩𝟔 : Il existe encore un problème
de stationnarité pour les multiples de 12 selon les
autocorrélogrammes.
33
Différenciation 𝑰 − 𝑩𝟏𝟐 : Cette fois, la stationnarité
de la série semble être bien établie.
34. Votre logo ou nom ici
𝒑 𝒆𝒕 𝑷
𝒑 𝒆𝒕 𝑷 sont tous deux
égaux à 1 : Pics positifs
significatifs dans les
graphiques ACF et PACF
𝒅 𝒆𝒕 𝑫 sont tous deux
égaux à 1 : différenciation
sur les premiers
paramètres et les
saisonniers
𝒒 = 𝟎 𝒆𝒕 𝑸 = 𝟏 : pics
négatifs significatifs sur le
PACF mais pas forcement
sur ACF
34
Point de départ de modélisation SARIMA
Ces caractéristiques suggèrent un point de départ potentiel des paramètres de
𝑆𝐴𝑅𝐼𝑀𝐴(1,1,0)(1,1,1,6)
𝒅 𝒆𝒕 𝑫 𝒒 𝒆𝒕 𝑸
𝒔 est égal à 6, on remarque les premiers pics de l’ACF avec une saisonnalité de 6.
Nous allons à présent tester ce modèle.
35. Votre logo ou nom ici
Estimation et validation des modèles
35
𝑆𝐴𝑅𝐼𝑀𝐴(1,1,0)(1,1,1,6)
• La métrique AIC est faible sur ce modèle, indicateur de
performance.
• Les variables sont toutes significatives au niveau de test de
5%.
• Les p-values du Test de Jung-Box indiquent bien un bruit
blanc des résidus.
• Les autocorrélogrammes des résidus ne montrent pas de
pics significatifs.
36. Votre logo ou nom ici 36
Diagnostiques 𝑆𝐴𝑅𝐼𝑀𝐴(1,1,0)(1,1,1,6)
Ici, nous testons entre autre la
normalité des résidus grâce à
l’histogramme et le QQPlot.
Nous pouvons donc effectivement
constater cette normalité des
résidus.
Un test de Shapiro-Wilk a également
été réalisé et est significatif.
(pvalue=6.73e-21)
37. Votre logo ou nom ici
Estimation des autres modèles via Grid search
37
Création d’une table des métriques de tous les modèles SARIMA pertinents
Toujours en fonction des premiers autocorrélogrammes et des
résultats obtenus dans cette grid search, Nous allons tester le
modèles qui semble avoir les meilleures métriques et un AIC
significatif :
𝑆𝐴𝑅𝐼𝑀𝐴(1,0,1)(1,0,1,12)
38. Votre logo ou nom ici
Estimation et validation du second modèle
38
𝑆𝐴𝑅𝐼𝑀𝐴(1,0,1)(1,0,1,12)
• La métrique AIC est encore meilleure sur ce second modèle.
• Les variables sont toutes significatives au niveau de test de
5%.
• Les p-values du Test de Jung-Box indiquent bien un bruit
blanc des résidus et sont meilleures que le premier modèle
SARIMA testé.
• Les autocorrélogrammes des résidus ne montrent plus de
pics significatifs et sont là aussi meilleurs.
39. Votre logo ou nom ici 39
Diagnostiques 𝑆𝐴𝑅𝐼𝑀𝐴(1,0,1)(1,0,1,12)
On remarque sur ce second modèle
des indicateurs encore meilleurs que
sur le modèle 1.
Le test de blancheur présente des p-
values proches de 1 et les
indicateurs de performance tels que
l'AIC sont satisfaisant.
La normalité des résidus est
également confirmée.
Nous utiliserons donc le modèle 2
pour nos analyses à posteriori.
40. Votre logo ou nom ici 40
Analyse a posteriori SARIMA
Les données prédites via la méthode
SARIMA, sont là aussi relativement fidèles
au données réelles test.
Si l’on compare les métriques obtenues
avec celles de la méthode Holt-Winters,
on remarque que SARIMA est meilleure
sur l’ensemble des valeurs.
41. Votre logo ou nom ici
Synthèse
2 méthodes permettant d’obtenir
des prédictions satisfaisantes.
• Que ce soit par lissage exponentiel ou par méthode
stochastique, les prédictions sont satisfaisantes et
fidèles aux tendances de la série temporelle de
consommation ajustée des effets de températures.
• La méthode SARIMA offre de meilleures métriques que
la méthode Holt-Winters.
• Nous allons à présent réaliser des prédictions pour les
12 prochains mois avec les 2 méthodes.
41
42. Votre logo ou nom ici
Prédiction
de la consommation pour
2020.
Appliquons nos 2 modèles sur la consommation
corrigée des effets de température pour prédire
les 12 prochains mois.
42
45. Votre logo ou nom ici 45
Des résultats proches …
Comme nous pouvons le constater, les
prédictions sur le modèle Holt-Winters
ou sur le modèle SARIMA sont très
proches et suivent la tendance et
saisonnalité de notre série initiale.
Cette proximité est également un
indicateur de performance des 2 modèles.
L’un comme l’autre peuvent être utilisés
pour nos prévision mais je préconiserai
SARIMA.
Pour aller plus loin …
Nous pourrions étudier d’autres
traitements spécifiques des timeseries
comme la procédure Prophet de Facebook
ou grâce au deep learning avec
TensorFlow par exemple.