Une version temporaire des slides est en ligne. Pour le TP, on continuera à utiliser les données suivante
url="http://freakonometrics.free.fr/elec.RData" download.file(url,"elec.RData") load("elec.RData") k=620 n=nrow(electricite) passe=1:k futur=(k+1):n y=electricite$Load[passe] plot(y,type="l") |

La semaine passée, nous avions commencé de modéliser la série de température (cette dernière ayant un impact important comme déterminant de la consommation électrique)
y=electricite$Temp[passe] plot(y,type="l") Y=ts(y,start=1996,frequency=52) library(forecast) |

plot(y[(53:k)-52],y[53:k]) abline(lm(y[53:k]~y[(53:k)-52]),col="red") abline(a=0,b=1,lty=2) |

La série temporelle est relativement autocorrélée, à l’ordre 52
acf(y,lag=120) |

model1=auto.arima(Y) acf(residuals(model1),120) |
On va garder ce modèle en mémoire, et regarder par la suite ses prévisions. Tentons ici un SARIMA, à la main
model2=arima(Y,order = c(0,0,0), seasonal = list(order = c(1,0,0))) summary(model2) model2=arima(Y,order = c(0,0,0), seasonal = list(order = c(2,0,0))) summary(model2) acf(residuals(model2),120) model2=arima(Y,order = c(2,0,0), seasonal = list(order = c(1,0,0))) model2=arima(Y,order = c(1,0,0), seasonal = list(order = c(1,1,0))) summary(model2) acf(residuals(model2),120) |
Tentons ensuite avec une racine unité saisonnière
Z=diff(Y,52) model3=arima(Z,order = c(0,0,1), seasonal = list(order = c(0,0,1))) summary(model3) model3=arima(Z,order = c(0,0,2), seasonal = list(order = c(0,0,1))) summary(model3) acf(residuals(model3),120) model3=arima(Y,order = c(0,0,2), seasonal = list(order = c(0,1,1))) summary(model3) |
On peut ensuite tenter un modèle à la Buys-Ballot
reg=lm(Temp~0+as.factor(NumWeek), data=electricite[passe,]) cycle=predict(reg,newdata=electricite[passe,]) plot(y,type="l") lines(cycle,col="red") E=residuals(reg) plot(E,type="l") acf(E,120) model4=arima(E,order = c(1,0,0)) summary(model4) |

horizon=n-k prev4E=predict(model4,n.ahead = horizon)$pred prev4C=predict(reg,newdata=electricite[futur,]) prev4 =prev4E+prev4C plot(y,type="l",xlim=c(0,n)) abline(v=k,col="red") lines(prev4,col="blue") |

prev1=predict(model1,n.ahead = horizon)$pred plot(y,type="l",xlim=c(0,n)) abline(v=k,col="red") lines(futur,prev1,col="purple") |

prev2=predict(model2,n.ahead = horizon)$pred plot(y,type="l",xlim=c(0,n)) abline(v=k,col="red") lines(futur,prev2,col="green") |

prev3=predict(model3,n.ahead = horizon)$pred plot(y,type="l",xlim=c(0,n)) abline(v=k,col="red") lines(futur,prev3,col="orange") |

MODELES = data.frame(y1=prev1, y2=prev2,y3=prev3,y4=prev4, y =electricite$Temp[futur]) plot(MODELES$y,type="l") lines(1:111,MODELES$y1,col="purple") lines(1:111,MODELES$y2,col="green") lines(1:111,MODELES$y3,col="orange") lines(1:111,MODELES$y4,col="blue") |

OpenEdition suggests that you cite this post as follows:
Arthur Charpentier (January 24, 2018). Consommation et production électrique. Freakonometrics. Retrieved January 17, 2026 from https://doi.org/10.58079/ov9i