La forme générale (enfin, la plus simple) des modèles SARIMA est la suivante

http://latex.codecogs.com/gif.latex?(1-L)^d(1-L^s)^{d_s}\Phi(L)\Phi_s(L^s)%20(X_t-m)%20=%20\Theta(L)\Theta_s(L^s)\varepsilon_t

Afin de comprendre comment les écrire sous R, commençons par un processus simple, autorégressive, de la forme
http://latex.codecogs.com/gif.latex?(1-\phi_1%20L)X_t%20=%20\varepsilon_t

La syntaxe est ici

> arima(X, order = c(p=1, d=0, q=0))

Supposons que l'on souhaite rajouter une composante moyenne mobile, i.e.

http://latex.codecogs.com/gif.latex?(1-\phi_1%20L)X_t%20=%20(1-\theta_1%20L)\varepsilon_t

La syntaxe devient

> arima(X, order = c(p=1, d=0, q=1))

Si on suppose maintenant que pour la composante autorégressive, on a une racine unité et le processus s'écrit

http://latex.codecogs.com/gif.latex?(1-%20L)X_t%20=%20(1-\theta_1%20L)\varepsilon_t

L’estimation de ce modèle se fait avec la commande

> arima(X, order = c(p=0, d=1, q=1))

Si pour finir, on veut calibrer un modèle de la forme

http://latex.codecogs.com/gif.latex?(1-%20L)(1-\phi_1%20L-\phi_2%20L^2)X_t%20=%20(1-\theta_1%20L)\varepsilon_t

on utilise la commande

> arima(X, order = c(p=2, d=1, q=1))

Supposons maintenant que notre série http://latex.codecogs.com/gif.latex?(X_t) ait été obtenu par différenciation saisonnière d'une série http://latex.codecogs.com/gif.latex?(Y_t), au sens où http://latex.codecogs.com/gif.latex?X_t=(1-L^{12})Y_t=\Delta^{12}%20Y_t, alors on devrait écrire

http://latex.codecogs.com/gif.latex?(1-%20L)(1-\phi_1%20L-\phi_2%20L^2)(1-L^{12})Y_t=%20(1-\theta_1%20L)\varepsilon_t

Pour estimer un tel modèle, la syntaxe est alors

> arima(X, order = c(p=2, d=1, q=1),
+ seasonal = list(order = c(0, 1, 0), period = 12))

En particulier, on peut avoir deux modèles assez proches pour modéliser une série cyclique: un bruit blanc avec une intégration saisonnière, i.e.

http://latex.codecogs.com/gif.latex?(1-L^{12})%20X_t%20=%20\varepsilon_t

dont la syntaxe serait

> arima(X, order = c(p=0, d=0, q=0),
+ seasonal = list(order = c(0, 1, 0), period = 12))

et un simple processus autorégressif à l'ordre 12. Mais là encore, soit je veux imposer que seule la dernière composante soit non nulle i.e.

http://latex.codecogs.com/gif.latex?(1-\phi_{12}%20L^{12})%20X_t%20=%20\varepsilon_t

ce qui s'écrit

> arima(X, order = c(p=0, d=0, q=0),
+ seasonal = list(order = c(1, 0, 0), period = 12))

soit je prends un processus plus général, de la forme

http://latex.codecogs.com/gif.latex?(1-\phi_1%20L-\cdots%20\phi_{12}%20L^{12})%20X_t%20=%20\varepsilon_t

dont la syntaxe devient

> arima(X, order = c(p=12, d=0, q=0))

En fait, on peut introduire un polynôme autorégressive avec uniquement des retards à l'ordre 12, en plus de la différentiation saisonnière, i.e.

http://latex.codecogs.com/gif.latex?(1-L)(1-L^{12})(1-\phi_1%20L)(1-\phi_{12}%20L^{12})%20X_t%20=%20(1-\theta_1%20L)\varepsilon_t

Ce modèle s'écrire alors sous la forme

> arima(X, order = c(p=1, d=1, q=1),
+ seasonal = list(order = c(1, 1, 0), period = 12))

On peut bien sûr aller plus loin, en autorisant non seulement une composante autorégressive saisonnière, mais pourquoi pas, une composante moyenne mobile saisonnière, i.e.

http://latex.codecogs.com/gif.latex?(1-L)(1-L^{12})(1-\phi_1%20L)(1-\phi_{12}%20L^{12})%20X_t%20=%20(1-\theta_1%20L)\varepsilon_t(1-\theta_{12}L^{12})\varepsilon_t

qui s'écrit, sous R,

> arima(X, order = c(p=1, d=1, q=1),
+ seasonal = list(order = c(1, 1, 1), period = 12))

On a vu la forme la plus générale des SARIMA. Enfin, comme je le disais en préambule, c'est aussi la plus simple. Car si je suppose qu'une autre cycle se superpose au cycle annuel, je peux le faire. Mais on va peut être essayer d'éviter de trop compliquer les notations...