TP 6: éléments de correction


On commence par charger les bibliothèques utiles.

In [1]:
library(lmtest)
library(TSA)
library(aTSA)
library(lmtest)
library(forecast)

options(repr.plot.width=12, repr.plot.height=10) # pour redimensionner les graphiques
Loading required package: zoo


Attaching package: ‘zoo’


The following objects are masked from ‘package:base’:

    as.Date, as.Date.numeric



Attaching package: ‘TSA’


The following objects are masked from ‘package:stats’:

    acf, arima


The following object is masked from ‘package:utils’:

    tar



Attaching package: ‘aTSA’


The following object is masked from ‘package:graphics’:

    identify



Attaching package: ‘forecast’


The following object is masked from ‘package:aTSA’:

    forecast



Exercice 1: chronique SNCF


Lecture des données:

In [2]:
sncf <- read.csv(file="sncf.csv",header=TRUE,sep=";")
sncf <- as.vector(t(as.matrix(sncf[,2:13])))
sncf <- ts(sncf,start = c(1963, 1), frequency = 12)
sncf
A Time Series: 18 × 12
JanFebMarAprMayJunJulAugSepOctNovDec
1963175015601820209019102410314028502090185016302420
1964171016001800212021002460320029602190187017702270
1965167016401770219020202610319028602140187017602360
1966181016401860199021102500303029002160194017502330
1967185015901880221021102480288026702100192016702520
1968183417921860213821152485258126392038193617842391
1969179818501981208521202491283427251932208518562553
1970185418232005241822192722291227712153213619102537
1971200818352120230422642175292827382178213720092546
1972208420342152252223182684297127592267215219782723
1973208121122279266122812929308928032296221021352862
1974222322482421271025053021332730442607252521602876
1975248124282596292327953287359831182875275425883266
1976266726682804280629763430370530532764280227073307
1977270625862796297830533463364930952839296628633375
1978282028573306333331413512374431792984295028963611
1979331326442872326733913682393732842849308530433541
1980284829133248325033753640377132593206326931814008

Représentation graphique:

In [3]:
plot(sncf, type="o", pch =20)
grid()

On observe une périodicité annuelle, ce qui semble naturel étant donnée la nature du trafic SNCF.

Regardons le corrélogramme et corrélogramme partiel:

In [4]:
tsdisplay(sncf)

L'aspect "en pont suspendu" de l'ACF est typique d'une chronique non stationnaire qu'il faut dériver saisonnièrement.

Examinons les graphes de la chronique dérivée.

In [5]:
difsncf <- diff(sncf,lag=12)
difsncf2 <- diff(difsncf)

plot(difsncf, type="o", pch=20)
grid()

La chronique dérivée saisonnièrement ne présente plus de saisonnalité flagrante. Néanmoins, son graphe peut faire penser à celui d'une marche aléatoire (qui n'est pas stationnaire et nécessite une dérivation pour le devenir).

In [6]:
plot(difsncf2, type="o", pch=20)
grid()

Effectivement, cette chronique (sncf avec deux dérivations dont une saisonnière) a un graphe d'aspect davantage stationnaire. Bien entendu, ces considérations basées sur les graphiques sont assez empiriques.

Examinons les corrélogrammes de SNCF dérivée saisonnièrement:

In [7]:
arima_sncf <- Arima(sncf,seasonal=c(0,1,0))
tsdisplay(residuals(arima_sncf))