0% ont trouvé ce document utile (0 vote)
31 vues65 pages

ARIMA Chap 6

Transféré par

Jenhani Chaima
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
31 vues65 pages

ARIMA Chap 6

Transféré par

Jenhani Chaima
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Section 3:

Les Processus ARIMA


(p,d,q)

1
En analyse de séries chronologiques,
un modèle autorégressif à moyenne mobile intégrée
(ARIMA) est une généralisation d'un modèle autorégressif à
moyenne mobile (ARMA).

Ces deux modèles sont ajustés aux données de séries


chronologiques:
 Soit pour mieux comprendre les données,
 soit pour prédire les points futurs de la série (prévisions).

2
Les modèles ARIMA sont appliqués dans certains cas
où les données montrent des preuves de non-
stationnarité,
où une étape de différenciation initiale (correspondant à la
partie "intégrée" du modèle) peut être appliquée une ou
plusieurs fois pour éliminer la non-stationnarité.

3
Le I (pour "integrated") indique que les valeurs des
données ont été remplacées par la différence entre leurs
valeurs et les valeurs précédentes

(et ce processus de différenciation peut avoir été


effectué plus d'une fois).

Le but de chacune de ces fonctionnalités est d'adapter


au mieux le modèle aux données.

4
 Non-seasonal ARIMA models
Seasonal ARIMA models: SARIMA

5
ARIMA(p,d,q)
d : est le degré de différenciation (le nombre de fois où
les données ont eu des valeurs passées soustraites

6
y′ : is the differenced series (it may have been
differenced more than once).
The “predictors” on the right hand side include both
lagged values of yt and lagged errors,
7
8
La différenciation statistique est une transformation appliquée
aux données de séries chronologiques afin de les rendre
stationnaires. Le code R est diff : [i] – [i-1]
Les propriétés d'une série chronologique stationnaire ne
dépendent pas de l'heure à laquelle la série est observée. Afin
de différencier les données, la différence entre les observations
consécutives est calculée.
Mathématiquement, cela est montré comme

Y’t = yt – yt-1
9
Parfois, il peut être nécessaire de différencier les
données une deuxième fois pour obtenir une série
chronologique stationnaire,
appelée différenciation de second ordre:

10
Une autre méthode de différenciation des données
est la différenciation saisonnière,
qui consiste à calculer la différence entre une
observation
et l'observation correspondante de la saison
précédente,
par exemple une année. Cela se présente comme:

11
Library(fpp2)
Window(uschange)

autoplot(uschange[,"Consumption"]) +
xlab("Year") + ylab("Quarterly percentage
change")

12
13
Comparer la série avec: ARIMA(1,0,3) model
yt=c+0.589yt−1−0.353εt−1+0.0846εt− +0.174εt−3+ε ,
2 t

where c=0.745×(1−0.589)=0.307 and εt is white noise


with a standard deviation of 0.592

14
15
Test de stationnarité Kwiatkowski-Phillips-Schmidt-Shin (KPSS) test
Pour tester objectivement la stationnarité on peut utiliser le test KPSS,
H0: Série stationnaire
H1: Série non stationnaire

Package urca
Ur.kpss
ur.kpss(uschange[,1])
#### # KPSS Unit Root /
Cointegration Test # #####
The value of the test statistic is: 0.2848

16
urt<-ur.kpss(u,type=c("mu","tau"))

> summary(urt) # KPSS Unit Root Test

 #Test is of type: mu with 4 lags.

 Value of test-statistic is:

0.2848 Critical value for a significance level of:

 10% 5% 2.5% 1%

 critical values:

 0.347 0.463 0.574 0.739

17
If the KPSS statistic is greater than the critical
value (given in the table for alpha levels of 10%,
5% and 1%), then the null hypothesis is rejected;
the series is non-stationary.

Puisque:
0,2848 < 0,463(critique): on accepte H0

18
Test (Dickey-Fuller) de stationarité
The Augmented Dickey-Fuller Test using the
adf.test function from the tseries R package.
The hypothesis test:
The null hypothesis H0 : time series is non
stationary
The alternative hypothesis H1 : time series
is stationary

19
On calcule P value:
Si P value < 0,05 on refuse H0
Sinon, on accepte H0

As a rule of thumb, where the p-value is less


than 0.05, we strong evidence against the null
hypothesis, so we reject the null hypothesis.

20
Sous R:
adf.test ()
Package: {tseries}

21
Cas 1:
Les deux tests concluent que la série n’est pas stationnaire – La
série n’est pas stationnaire

Cas 2:
Les deux tests concluent que la série est stationnaire – La série
est stationnaire

22
Cas 3: KPSS indique la stationnarité et ADF indique la
non-stationnarité – La série est stationnaire de tendance.
La tendance doit être supprimée pour rendre la série
stationnaire stricte.
Cas 4: KPSS indique la non-stationnarité et ADF indique la
stationnarité – La série est stationnaire de différence. La
différenciation doit être utilisée pour rendre la série
stationnaire. La série différentiée est vérifiée pour la
stationnarité.

23
Exemple:
Charger la base Airpassengers et tester la
stationnarité de la série selon les deux
tests KPSS et ADF

24
Exemples d’ARIMA
ARIMA(0, 1, 0) model is given by:
ARIMA(0, 2, 2) model is given by :

25
L’hypothèse de stationnarité, présente - sous certaines
conditions - dans les modèles ARMA, n’est que rarement vériée
pour des séries économiques.

En revanche, on peut considérer les différences premières


∆Xt = Xt−Xt−1,
ou des différences à des ordres plus élevés

26
Un processus (Xt) est un processus ARIMA(p,d,q) - autorégressif
moyenne mobile intégré - s’il vérifie une équation du type

27
 arima.sim(n=200, list(ar=0.4, ma=0.8, d=1))
Xt = 0,4Xt-1 +0,8Et-1 + Et ARMA(1,1)
 arima.sim(n=200, list(ar=c(0.4,0.9), ma=0.8, d=1))
 arima.sim(n=200, list(ar=c(0.4, 0, 0.9), ma=0.8,
d=2))

28
AirPassengers
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 1949 112 118 132 129 121 135 148 148 136 119 104 118

> plot(AirPassengers)

Que remarquez vous (série


NS)

d<-diff(AirPassengers)
> as.ts(d)
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov 1949
6 14 -3 -8 14 13 0 -12 -17 -15 1950 -3 11 15 -6 -10 24 21 0 -12 -25 -19

29
plot.ts(d) >
d1<-diff(d) >
as.ts(d1)

plot.ts(d1)
> d2<-diff(d1)
> as.ts(d2)
30
plot.ts(d) >
d1<-diff(d) >
as.ts(d1)

plot.ts(d1)
> d2<-diff(d1)
> as.ts(d2)

31
 Comment estimer le meilleur ARIMA pour une série:

 Comment estimer d

 Comment estimer p, q

32
33
Retour à AirPassengers
fit<-arima(AirPassengers,
order=c(2,2,1))
 Fit

Call: arima(x = AirPassengers, order = c(2,


2, 1)) Coefficients: ar1 ar2 ma1 0.3845 -
0.2259 -1.0000 s.e. 0.0828 0.0838 0.0177
sigma^2 estimated as 980.3: log likelihood =
-692.94, aic = 1393.88
34
 > fit1<-arima(AirPassengers,
order=c(2,1,2))
 > fit1
Call:
arima(x = AirPassengers, order = c(2, 1, 2))

Coefficients:
ar1 ar2 ma1 ma2
0.3517 0.1887 -0.0806 -0.7218
s.e. 0.1543 0.1501 0.1216 0.1143

sigma^2 estimated as 887.2: log likelihood = -688.7, aic = 1387.41


35
Quel ARIMA FAUDRAIT IL CHOISIR

36
Maximum likelihood estimation

37
In practice, R will report the value of the log
likelihood of the data; that is, the logarithm of
the probability of the observed data coming
from the estimated model. For given values
of p, d and q, R will try to maximise the log
likelihood when finding parameter estimates.

38
Le critère d'information d'Akaike, (en anglais Akaike
information criterion ou AIC) est une mesure de la
qualité d'un modèle statistique proposé,
Lorsque l'on estime un modèle statistique, il est possible
d'augmenter la vraisemblance du modèle en ajoutant
un paramètre.
On choisit alors le modèle avec le critère
d'information d'Akaike le plus faible.
39
Good models are obtained by minimising
the AIC or AICc,

40
It is important to note that these information criteria
tend not to be good guides to selecting the
appropriate order of differencing (d) of a model, but
only for selecting the values of p and q.

41
En effet, la différenciation modifie les données sur
lesquelles la probabilité est calculée, ce qui rend les
valeurs AIC entre les modèles avec différents ordres
de différenciation non comparables..

So we need to use some other approach to


choose d, and then we can use the AICc to
select p and q.
42
43
> install.packages("forecast")

library(forecast)
> checkresiduals(fit)
 Ljung-Box test data: Residuals from ARIMA(2,2,1) Q* = 234.29, df = 21,
 p-value < 2.2e-16 Model df: 3. Total lags used: 24

> checkresiduals(fit, plot = TRUE )

44
45
Forecast

help(checkresiduals) >

> autoplot(forecast(fit))

46
47
Recherche du meilleur modèle
par la fonction auto.arima

48
The auto.arima() function in R uses a variation of
the Hyndman-Khandakar algorithm (Hyndman &
Khandakar, 2008), which combines unit root
tests, minimisation of the AICc and MLE to obtain
an ARIMA model.
The arguments to auto.arima() provide for many
variations on the algorithm. What is described
here is the default behaviour
49
Hyndman-Khandakar algorithm for automatic ARIMA
modelling
1.The number of differences 0≤d≤2 is determined using
repeated KPSS tests.
2.The values of p and q are then chosen by minimising
the AICc after differencing the data d times. Rather than
considering every possible combination of p and q, the
algorithm uses a stepwise search to traverse the model
space.

50
Four initial models are fitted:ARIMA(0,d,0)(0,d,0),
ARIMA(2,d,2)(2,d,2),
ARIMA(1,d,0)(1,d,0),
ARIMA(0,d,1)(0,d,1).
A constant is included unless d=2. If d≤1, an
additional model is also fitted:
ARIMA(0,d,0) without a constant.

51
2.The best model (with the smallest AICc value) fitted in step (a) is
set to be the “current model.”
3.Variations on the current model are considered:
3.vary pp and/or qq from the current model by ±1;
4.include/exclude cc from the current model.
4.The best model considered so far (either the current model or
one of these variations) becomes the new current model.
4.Repeat Step 2(c) until no lower AICc can be found.

52
Modelling procedure
Pour estimer un ARIMA model (non-seasonal), la procédure à utilizer:
- Plot the data and identify any unusual observations.
- If necessary, transform the data (using a Box-Cox transformation) to
stabilise the variance boxcox(object, …).. La transformation de Box-Cox
est une méthode utilisée pour stabiliser la variance et rendre les données plus normalement
distribuées
- If the data are non-stationary, take first differences of the data until
the data are stationary.
- Examine the ACF/PACF
Try your chosen model(s), and use the AICc to search for a better
model.

53
Modelling procedure
Check the residuals from your chosen model by plotting the ACF of
the residuals, and doing a test of the residuals. If they do not look like
white noise, try a modified model.
Once the residuals look like white noise, calculate forecasts.

54
auto.arima(AirPassengers)
Optimisation d’un ARIMA

 Series: AirPassengers
 ARIMA(2,1,1)(0,1,0)[12]
 Coefficients:
 ar1 ar2 ma1 0.5960 0.2143 -0.9819 s.e. 0.0888 0.0880 0.0292
 sigma^2 estimated as 132.3:
 log likelihood=-504.92 AIC=1017.85 AICc=1018.17 BIC=1029.35

55
Evaluer l’optimum
> fit1<-auto.arima(AirPassengers)
checkresiduals(fit1)

56
57
Utiliser la transformation de box cox pour améliorer le modèle
library(MASS)
set.seed(123): #générateur de nombres pseudo-aléatoires
revenus <- rnorm(100, mean = 50000, sd = 10000)
revenus
hist(revenus, main = "Distribution des Revenus Annuels", xlab = "Revenus")
boxcox_result <- boxcox(revenus ~ 1)
print(summary(boxcox_result))
lambda_optimal <- boxcox_result$x[which.max(boxcox_result$y)]
revenus_transformes <- (revenus^lambda_optimal - 1) / lambda_optimal
revenus_transformes
hist(revenus_transformes)
summary(boxcox_result)
which.max(boxcox_result$y)
boxcox_result
boxcox_result$x[which.max(boxcox_result$y)]
58
Prédiction
predict(fit1, n.ahead = 5)

 $pred Jan Feb Mar Apr May


 1961 445.6349 420.3950 449.1983
491.8399 503.3945 $se
Jan Feb Mar Apr May
1961 11.50524 13.50261 15.15798
16.24046 17.04072

59
 futur<-forecast(fit1, h=10)

 > autoplot(forecast(fit1), h=10)

60
61
62
63
Happy 64
65

Vous aimerez peut-être aussi