Accéder au contenu principal

Analyse des séries temporelles avec R : tutoriel

Apprenez l'analyse des séries temporelles avec R et utilisez un package de prévision pour ajuster la série observée au modèle optimal.
Actualisé 19 sept. 2026  · 13 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity

Une série temporelle est une grandeur mesurée à intervalles réguliers dans le temps. Parmi les exemples classiques d'analyse de séries temporelles, on trouve la finance, les cours boursiers, les données météorologiques, les études de consommation, et bien d'autres.

La modélisation d'une série temporelle consiste à :

  • Comprendre les mécanismes et structures sous-jacents qui génèrent les données observées.
  • Ajuster un modèle, puis réaliser des prévisions, un suivi, voire des boucles de contrôle en retour et en anticipation.

Dans ce tutoriel, vous aurez un aperçu des modèles stationnaires et non stationnaires. Vous verrez comment caractériser une série temporelle en calculant son ACF et son PACF. L'examen de ces fonctions permet de juger la stationnarité d'une série. On peut rendre stationnaire une série non stationnaire par différenciation. Une fois la nature de la série identifiée, il devient plus simple de prévoir ses valeurs futures à partir d'un modèle adapté. Une illustration sur des données réelles issues du package R TSA sera également proposée.

Processus stationnaires

Soit $X$ une variable aléatoire indexée par le temps (généralement notée $t$), les observations $\left\{x_t,\,t\in \textbf{N}\right\}$ forment une série temporelle. $\textbf{N}$ est l'ensemble des entiers considéré ici comme ensemble d'index temporels. $N$ peut aussi représenter des horodatages. La stationnarité est une hypothèse clé en séries temporelles et implique une homogénéité de comportement dans le temps : les propriétés statistiques ne varient pas. On distingue deux formes de stationnarité : forte et faible.

Définition 1

Un processus $\left\{x_t,\,t\in \textbf{N}\right\}$ est dit strictement (ou fortement) stationnaire si ses distributions restent inchangées après un décalage sur l'axe du temps. Comme les distributions d'un processus stochastique sont définies par les lois de dimension finie, on peut énoncer une définition équivalente : pour tout $n$, tout choix de temps $t_1, t_2, \ldots, t_n\in \textbf{N}$ et tout décalage $k$ tel que $t_{i+k}\in\textbf{N}$, le vecteur aléatoire $n$-dimensionnel $(X_{t_1+k}, X_{t_2+k}, \ldots, X_{t_n+k})$ a la même distribution que $(X_{t_1}, X_{t_2}, \ldots, X_{t_n})$. Autrement dit, pour $h$ et $x_i$

\begin{align*} P(X_{t_1}\leq x_1, X_{t_2}\leq x_2, \ldots, X_{t_k}\leq x_k) &= F(x_{t_1}, x_{t_2}, \ldots, x_{t_k})\\ &= F(x_{h+t_1}, x_{h+t_2}, \ldots, x_{h+t_k})\\ &= P(X_{h+t-1}\leq x_1, X_{h+t_2}\leq x_2, \ldots, X_{h+t_k}\leq x_k) \end{align*}

pour tout décalage temporel $h$ et toute observation $x_j$. Si $\left\{X-t,\,t\in\textbf{N}\right\}$ est strictement stationnaire, alors la loi marginale de $X_t$ est indépendante de $t$. De même, les lois bidimensionnelles de $(X_{t_1}, X_{t_2})$ sont indépendantes de la position absolue de $t_1$ et $t_2$ : seule la distance $t_1-t_2$ compte. En conséquence, la fonction moyenne $E(X)$ est constante, et la covariance $Cov(X_t,X_{t-k})$ ne dépend que de $k$, pas des positions absolues de $k$ et $t$. Pour les moments d'ordre supérieur, comme le troisième moment, $E[X_uX_tX_v]$ reste inchangé si l'on ajoute un même décalage temporel à $s, t, u$.

Définition 2

Une série temporelle univariée $X_t$ est stationnaire si sa moyenne, sa variance et ses covariances sont indépendantes du temps. Ainsi, si $X_t$ est une série temporelle (ou processus stochastique, c'est-à-dire une suite de variables aléatoires ordonnées dans le temps) définie pour $t=1,2,3,\ldots, n$ et pour $t=0, -1, -2, -3, \ldots$, alors $X_t$ est faiblement stationnaire si

\begin{align} (i) & E[X_t] = \mu\\ (ii) & E\left[(X-\mu)^2\right] = Var(X_t) = \gamma(0) = \sigma^2\\ (iii) & E\left[(X_t-\mu)(X_{t-k}-\mu)\right] = Cov(X_t, X_{t-k}) = \gamma(k) \end{align}

Les deux premières conditions ($(i)$ et $(ii)$) imposent respectivement une moyenne et une variance constantes, tandis que $(iii)$ exige que la covariance entre deux valeurs quelconques (appelée fonction d'auto-covariance) ne dépende que de l'intervalle $k$ qui les sépare, et non du temps $t$.

Si un processus est gaussien avec des moments d'ordre deux finis, alors la faible stationnarité équivaut à la forte stationnarité. La stationnarité stricte implique la faible stationnarité uniquement si les moments nécessaires existent. La stationnarité forte suppose aussi des hypothèses distributionnelles. Elle est souvent jugée trop restrictive ; on s'intéresse donc principalement à la stationnarité faible, aussi appelée stationnarité au sens large, stationnarité de second ordre ou stationnarité en covariance.

Stationnarité et séries temporelles aléatoires (processus stochastiques)

Une série temporelle dont les observations fluctuent autour d'une moyenne constante, avec une variance stable et des observations stochastiquement indépendantes, est une série temporelle aléatoire. Une telle série n'exhibe aucun schéma particulier :

  • Pas de tendance haussière ou baissière des observations
  • La variance ne croît ni ne décroît avec le temps
  • Les observations ne sont pas plus élevées sur certaines périodes que sur d'autres

Un exemple de modèle aléatoire stationnaire s'écrit

$$X_t = \mu+\varepsilon_t$$ où $\mu$ est une moyenne constante telle que $E[X_t] = \mu$, et $\varepsilon_t$ est un bruit supposé de moyenne nulle, de variance constante et indépendant (bruit blanc).

Simulation d'une série temporelle aléatoire

# purely random process with mean 0 and standard deviation 1.5
eps <- rnorm(100, mean = 0, sd = 1)
mu <- 2 # the constant mean
# The process
X_t <- mu + eps

# plotting the time series
ts.plot(X_t, main = "Example of (random) stationary time series", ylab = expression(X[t]))

Le processus simulé fluctue autour de la moyenne constante $\mu = 2$.

Fonction d'auto-covariance

La fonction théorique d'auto-covariance (ACF) d'un processus stochastique stationnaire est un outil essentiel pour étudier les propriétés des séries temporelles. Soit $X_t$ un processus stationnaire de moyenne $\mu$ et de variance $\sigma^2$. L'ACF au décalage $k$, $\gamma(k)$, est $$\gamma(k) = \frac{\gamma(k)}{\gamma(0)} = \frac{\gamma(k)}{\sigma^2}$$

L'ACF est une mesure normalisée de l'auto-covariance et possède plusieurs propriétés.

Propriétés de l'ACF

  1. $\rho(0) = 1$
  2. L'ACF est une fonction paire des retards : $\rho(k) = \rho(-k)$
  3. $|\rho(-k)| \leq 1$

L'ACF du processus ci-dessus est représentée par la figure suivante.

# Auto-covariance function of the simulated stationary random time series
acf(X_t, main = "Auto-covariance function of X")

Remarque 1. Le défaut d'unicité est une caractéristique de l'ACF. Même si un processus aléatoire donné a une structure de covariance unique, l'inverse n'est généralement pas vrai : plusieurs processus stochastiques différents peuvent partager la même ACF. Ce problème de spécification est illustré dans [@jenkinsd].

Remarque 2 : La fonction d'autocorrélation d'un processus stationnaire engendre une matrice particulière, dite matrice de Toeplitz. C'est un type de matrice de variance-covariance d'ordre $m = t-k$ (le retard, incluant les autocorrélations jusqu'au retard $m-1$) : elle est à diagonales constantes, symétrique et définie positive.

\begin{equation} \begin{pmatrix} 1 & \rho(1) & \rho(2) & \cdots & \rho(m-1)\\ \rho(1) & 1 & \rho(1) & \cdots & \rho(m-2)\\ \cdots &\cdots &\cdots &\cdots &\cdots\\ \rho(m-1) & \rho(m-2) & \cdots & \rho(1) & 1 \end{pmatrix} \end{equation}

Processus purement aléatoire ou bruit blanc

Un processus discret $\left\{Z_t\right\}$ est dit purement aléatoire si les variables aléatoires $Z_t$ forment une suite indépendantes et identiquement distribuées (i.i.d.). Cette définition implique une moyenne et une variance constantes.

$$\gamma(k) = cov(Z_t, Z_{t+k}) = 0,\quad\forall k\in -3,-2,-1,0,1,2,3, \ldots$$ La moyenne et la fonction d'auto-covariance (acvf) ne dépendant pas du temps, le processus est stationnaire au second ordre.

Marche aléatoire

Un processus $\left\{X_t\right\}$ suit une marche aléatoire si $X_t = X_{t-1}+Z_t$, avec $Z_t$ un processus purement aléatoire de moyenne $\mu$ et de variance $\sigma^2_Z$. Le processus démarre généralement à $t = 0$ avec $X_1 = Z_0$, ce qui implique $X_0 = 0$. On a

\begin{align*} X_1 &= X_0 + Z_1, \quad\text{à } t = 1\\ X_2 &= X_1 + Z_2 = X_0 + Z_1+ Z_2, \quad\text{à } t = 2\\ X_3 &= X_2 + Z_3 = X_0 + Z_1+ Z_2 + Z_3, \quad\text{à } t = 3\\ &\cdots\\ X_t &= X_0 + \sum_{i = 1}^tZ_i \end{align*}

Le moment d'ordre 1 (ou l'espérance) vaut $$E[X_t] = X_0 +\sum_{i = 1}^tE[Z_i] = X_0 + t\mu_z = t\mu_z$$ et la variance $$Var(X_t) = t\sigma^2_Z$$ La moyenne et la variance variant avec le temps, le processus est donc \textbf{non stationnaire}. Un exemple typique de série se comportant comme une marche aléatoire est celui des cours d'actions.

Simulation d'une marche aléatoire

# seed X_0 = 0
X <- 0

# purely random process with mean 0 and standard deviation 1.5
Z <- rnorm(100, mean = 0.5, sd = 1.5)

# the process
for (i in 2:length(Z)){
  X[i] <- X[i-1] + Z[i]
}

# process plotting
ts.plot(X, main = "Random walk process")

Différenciation

La différenciation est la méthode la plus courante pour rendre une série temporelle stationnaire. Il s'agit d'un filtrage particulier, très utile pour supprimer une tendance. Pour des données saisonnières, une différenciation d'ordre 1 suffit généralement à stabiliser la moyenne. Soit $X_t = \left\{X_1, X_2,\ldots, X_n\right\}$ une série non stationnaire. La série stationnaire s'obtient par

$$\Delta X_{t+1} = X_{t+1}-X_t\quad\text{ou }\,\Delta X_{t} =X_t-X_{t-1}$$ qu'on appelle la différence d'ordre 1. Si une différence d'ordre 2 est nécessaire, on utilise l'opérateur $\Delta^2$, différence des différences d'ordre 1 :

$$\Delta^2X_{t+2} = \Delta X_{t+2} - \Delta X_{t+1}$$

# differencing and plotting of the random walk process
ts.plot(diff(X))

On observe que la différence d'ordre 1 résultante fluctue autour d'une moyenne constante nulle. En effet, mathématiquement,

$$\Delta X_{t+1} = X_{t+1}-X_t = Z_t$$ qui est stationnaire car c'est un processus purement aléatoire de moyenne et variance constantes.

Moyenne mobile d'ordre $q$ : MA($q$)

Soit $\left\{Z_t\right\}$ un processus purement aléatoire de moyenne nulle et de variance $\sigma^2_Z$. Le processus est dit moyenne mobile d'ordre $q$ si

$$X_t = \beta_0Z_t-\beta_1Z_{t-1}-\cdots-\beta_q Z_{t-q}$$ où $\beta_i,\, i = 1,2,\ldots,q$ sont des constantes. Les variables aléatoires $Z_t, \,t\in\textbf{N}$ sont généralement normalisées de sorte que $\beta_0=1$

Simulation d'une MA d'ordre 1

# purely random process with mean 0 and standard deviation 1.5 (arbitrary choice)
Z <- rnorm(100, mean = 0, sd = 1.5)

# process simulation
X <- c()
for (i in 2:length(Z)) {
  X[i] <- Z[i] - 0.45*Z[i-1]
}

# process plotting
ts.plot(X, main = "Moving Average or order 1 process")

Pour le processus MA(1), les 3 conditions se vérifient comme suit :

\begin{align} E[X_t] &= 0\\ Var(X_t) &= E[X_t^2] - 0 = E\left[Z_t^2-2\beta Z_tZ_{t-1}+\beta^2Z_{t-1}^2\right]= \sigma^2_Z+\beta^2\sigma^2_Z\\ \gamma(k) &= cov(X_t, X_{t+k}) = E[X_tX_{t+k}] - E[X_t]E[X_{t+k}] = E[X_tX_{t+k}]\\ &= E\left[(Z_t-\beta Z_{t-1})(Z_{t+k}-\beta Z_{t-1+k})\right]\\ &= E\left[Z_tZ_{t+k} - \beta Z_tZ_{t-1+k} -\beta Z_{t-1}Z_{t+k} + \beta^2 Z_{t-1}Z_{t-1+k}\right]\\ \end{align}

pour $k = 0,\, \gamma(0) = Var(X_t) = \sigma^2_Z(1+\beta^2)$

pour $k = 1,\, \gamma(1) = E\left[Z_tZ_{t+1} - \beta Z_t^2 -\beta Z_{t-1}Z_{t+1} + \beta^2 Z_{t-1}Z_{t}\right] = -\beta\sigma^2_Z$

et pour $k>1,\, \gamma(k) = 0.$

Ainsi, le processus MA(1) a une covariance nulle dès que le décalage dépasse une période : sa « mémire » est d'une seule période.

L'ACF d'une MA(1) est donc

$$\rho(k) = \frac{\gamma(k)}{\gamma(0)} = \begin{cases}1, &\text{k }=0\\\frac{-\beta}{1+\beta^2}, & \text{k }\pm 1\end{cases}$$

Question : refaites la démonstration pour MA(2).

On comprend ainsi pourquoi la fonction d'autocorrélation empirique aide à déterminer l'ordre d'un processus de moyenne mobile : pour une MA(q), l'autocorrélation $\rho(k)$ présente q valeurs non nulles (significativement différentes de zéro) et est nulle pour $k > q$. Aucune contrainte sur $\left\{\beta_i\right\}$ n'est requise pour la stationnarité d'une MA. En revanche, des contraintes sur $\left\{\beta_i\right\}$ sont nécessaires pour l'inversibilité.

Auto-régression d'ordre $p$ : AR($p$)

Soit $\left\{Z_t\right\}$ un processus purement aléatoire de moyenne nulle et de variance $\sigma_Z^2$. Un processus $\left\{X_t\right\}$ est dit autorégressif d'ordre $p$ si $$X_t = \alpha_1X_{t-1}+\alpha_2X_{t-2}+\cdots+\alpha_pX_{t-p}+Z_t$$ Dans une AR($p$), l'observation courante $X_t$ (par exemple le rendement du jour) est une combinaison linéaire pondérée des $p$ dernières observations, plus un terme aléatoire indépendant : la dépendance porte sur les valeurs passées de $X_t$, d'où le terme « autorégressif ». Ces processus ont été introduits par [@greenwood1920inquiry]. L'AR($p$) ci-dessus peut s'écrire avec une constante :

$$X_t = \delta+\alpha_1X_{t-1}+\alpha_2X_{t-2}+\cdots+\alpha_pX_{t-p}+Z_t$$ où $\mu$ est un terme constant lié à la moyenne de la série, et $\alpha_1, \alpha_2,\ldots, \alpha_p$ peuvent être positifs ou négatifs. L'AR($p$) est stationnaire si $E[X_t] = E[X_{t-1}] = \cdots = E[X_p] = \mu$. Ainsi,

\begin{align*} E[X_t] = \mu &= \delta + \alpha_1\mu+\alpha_2\mu+\cdots+\alpha_p\mu+ 0\\ \Rightarrow \mu &= \frac{\delta}{1-\alpha_1-\alpha_2-\cdots-\alpha_p} \end{align*} Pour que cette expression définisse une constante, on exige $\alpha_1+\alpha_2+\cdots+\alpha_p<1$.

  </1>

Processus AR d'ordre 1 : AR(1)

Dans le cas $p=1$, $$X_t = \alpha X_{t-1}+Z_t$$ est l'autorégression d'ordre 1, AR(1), aussi appelée processus de Markov. À l'aide de l'opérateur de retard $BX_t = X_{t-1}$, on peut exprimer AR(1) comme une MA infinie. On a $$(1 - \alpha B)X_t = Z_t$$ donc, \begin{align*} X_t &= \frac{Z_t}{1-\alpha B}\\ &= (1+\alpha B +\alpha^2B^2+ \cdots)Z_t\\ &=Z_t+\alpha Z_{t-1}+\alpha^2Z_{t-2}+\cdots\\ &=Z_t+\beta_1 Z_{t-1}+\beta_2 Z_{t-2}+\cdots\\ \end{align*}

Alors $E[X_t] = 0$ et $Var(X_t) = \sigma^2_Z(1+\alpha^2+\alpha^4+\cdots)$. La série converge sous la condition $|\alpha|<1$.

Question : Étant donné un processus AR(1) $X_t = \alpha_1X_1+Z_t$ purement aléatoire de moyenne nulle et variance $\sigma^2_Z$, où $\alpha$ est une constante respectant les conditions nécessaires, dérivez la variance et la fonction d'auto-covariance de $X_t$.

Simulation d'une AR(1)

# constant alpha
alpha = 0.5

# purely random process with mean 0 and standard deviation 1.5
Z <- rnorm(100, mean = 0, sd = 1.5)

# seed
X <- rnorm(1)

# the process
for (i in 2:length(Z)) {
  X[i] <- 0.7*X[i-1]+Z[i]
}

# process plotting
ts.plot(X)

Question : Exprimez la condition de stationnarité du modèle AR(2) en fonction des paramètres. C'est-à-dire, montrez les conditions suivantes :

expression

On peut aussi exprimer une AR d'ordre fini $p$ comme une MA d'ordre infini, par substitutions successives ou via l'opérateur de retard.

Processus autorégressif à moyenne mobile : ARMA($p,q$)

En pratique, il peut être nécessaire de combiner des termes AR et MA. On obtient alors un processus ARMA (autoregressive – moving average). Un ARMA comportant $p$ termes autorégressifs et $q$ termes de moyenne mobile est d'ordre $(p, q)$ et s'écrit

$$X_t = \alpha_1X_{t-1}+\alpha_2X_{t-2}+\cdots+\alpha_pX_{t-p}+Z_t-\beta_1Z_{t-1}-\beta_2Z_{t-2}-\cdots-\beta_qZ_{t-q}$$ En utilisant l'opérateur de retard B, on réécrit

$$\alpha_p(B)X_t = \beta_q(B)Z_t$$ où $\alpha_p(B)$ et $\beta_q(B)$ sont des polynômes d'ordres $p$ et $q$ respectivement, tels que

\begin{align*} \alpha_p(B) &= \left(1-\alpha_1 B-\cdots-\alpha_p B^p\right)\\ \beta_q(B) &= \left(1-\beta_1 B-\cdots-\beta_p B^p\right) \end{align*}

Pour l'inversibilité, les racines de $\beta_q(B)$ doivent être hors du cercle unité. Pour la stationnarité, les racines de $\alpha_p(B)=0$ doivent être hors du cercle unité. On suppose en outre que $\alpha_p(B)=0$ et $\beta_q(B) = 0$ n'ont pas de racines communes.

Processus ARMA(1,1)

Ce processus est d'ordre $(1,1)$ et s'écrit $$X_t = \alpha_1X_{t-1}+Z_t-\beta_1Z_{t-1}$$

avec les conditions $|\alpha_1|<1$ et $|\beta_1|<1$ pour la stationnarité et l'inversibilité. Quand $\alpha < 0$, l'ARMA(1,1) se réduit à une MA(1), et quand $\beta_1<0$, on obtient une AR(1). Un ARMA(1,1) peut être transformé en représentation purement autorégressive via l'opérateur de retard :

$$(1-\alpha_1B)X_t = (1-\beta_1B)Z_t$$

On a

\begin{align*} \frac{1-\alpha_1B}{1-\beta_1B}X_t &= Z_t\\ \pi(B)X_t &= Z_t \end{align*}

avec

\begin{align*} \pi(B) = 1-\pi_1B-\pi_2B^2-\ldots &= \frac{1-\alpha_1B}{1-\beta_1B}\\ (1-\beta_1B)(1-\pi_1B-\pi_2B^2-\ldots) &= 1-\alpha_1B\\ 1-\left[(\pi_1+\beta_1)B - (\pi_2+\beta_2)B^2 - (\pi_3+\beta_3)B^3\right] & = 1-\alpha_1B \end{align*}

Par identification des coefficients en $B$ de part et d'autre, on obtient $$\pi_j = \beta_1^{j-1}(\alpha_1-\beta_1),\,\text{pour }\, j\geq1$$

Fonction d'autocorrélation de l'ARMA(1,1)

L'espérance de $X_t$ est $E[X_t] = \alpha_1E[X_{t-1}]$, et sous l'hypothèse de stationnarité, $E[X_t] = E[X_{t-1}] = \mu = 0$. Cela facilite le calcul de la fonction d'auto-covariance, obtenue comme suit :

  1. $X_tX_{t-k} = \alpha_1X_{t-k}X_{t-1}+X_{t-k}Z_t-\beta_1X_{t-k}Z_{t-1}$
  2. En prenant l'espérance des deux côtés : \begin{align*} E\left[X_tX_{t-k}\right] &= E\left[\alpha_1X_{t-k}X_{t-1}\right]+E\left[X_{t-k}Z_t\right]-\beta_1E\left[X_{t-k}Z_{t-1}\right]\\ \gamma(k)&=\alpha_1\gamma(k-1)+E\left[X_{t-k}Z_t\right]-\beta_1E\left[X_{t-k}Z_{t-1}\right] \end{align*}

Pour $k = 0$,

\begin{align*} \gamma(1)&=\alpha_1\gamma(0)+E\left[X_{t-1}Z_t\right]-\beta_1E\left[X_{t-1}Z_{t-1}\right]\\ &=\alpha_1\left(\alpha_1\gamma(1)+ \sigma^2_Z - \beta_1(\alpha_1-\beta_1)\sigma^2_Z\right)-\beta_1\sigma^2_Z\\ &= \alpha^2\gamma(1)+(\alpha_1-\beta_1)(1-\alpha_1\beta_1)\sigma^2_Z\\ \Rightarrow \gamma(1)&=\frac{(\alpha_1-\beta_1)(1-\alpha_1\beta_1)\sigma^2_Z}{1-\alpha^2}\\ \Rightarrow \gamma(0)&=\alpha_1\frac{(\alpha_1-\beta_1)(1-\alpha_1\beta_1)\sigma^2_Z}{1-\alpha^2}+ \sigma^2_Z - \beta_1(\alpha_1-\beta_1)\sigma^2_Z\\ &=\frac{\left(1+\beta_1^2-2\alpha_1\beta_1\right)\sigma_Z^2}{1-\alpha^2} \end{align*}

Pour $k \geq 2$,

\begin{align*} \gamma(2)&=\alpha_1\gamma(k-1) \end{align*}

Ainsi, l'ACF de l'ARMA(1,1) est :

$$\rho(k) = \begin{cases} 1, &\text{pour }\,k=0\\ \frac{(\alpha_1-\beta_1)(1-\alpha_1\beta_1)}{1+\beta_1^2-2\alpha_1\beta_1},&\text{pour }\,k=1\\ \alpha_1\rho(k-1), &\text{pour }\,k\geq2\\ \end{cases} $$ L'ACF d'un ARMA(1,1) combine les caractéristiques des processus AR(1) et MA(1). Les paramètres MA(1) et AR(1) apparaissent tous deux dans $\rho(1)$. Au-delà de $\rho(1)$, l'ACF d'un ARIMA(1,1) suit la même décroissance que celle d'une AR(1).

Question : déterminez la fonction d'autocorrélation partielle (PACF) d'un processus ARMA(1,1).

Remarque : Les processus de séries temporelles se caractérisent par leur ACF et leur PACF. L'étape cruciale de l'analyse consiste à identifier et construire un modèle à partir des données disponibles, où l'ACF et le PACF sont inconnus.

Simulation d'un processus ARMA(1,1)

# purely random process with mean 0 and standard deviation 1.5
Z <- rnorm(100, mean = 0, sd = 1.5)

# Process
X <- rnorm(1)

for (i in 2:length(Z)) {
  X[i] <- 0.35*X[i-1] + Z[i] + 0.4*Z[i-1]
}

# process plotting
ts.plot(X, main = "ARMA(1,1) process")

# ACF et PACF
par(mfrow = c(1,2))
acf(X); pacf(X)

Processus ARIMA($p,d,q$)

Les modèles autorégressifs intégrés à moyenne mobile définissent des séries par l'équation suivante :

Processus SARIMA(p,d,q)(P,D,Q)

Prévision

Dans cette section, vous utiliserez des séries réelles pour ajuster le modèle optimal. Pour cela, vous emploierez le package forecast. La fonction auto.arima ajuste et sélectionne automatiquement le meilleur modèle, et la fonction forecast permet de prévoir h périodes à l'avance.

# R packages to be used
library(forecast)
library(TSA)

Exemple 1 :

# Data from TSA package
data("co2")
data("boardings")

# fitting
fit <- auto.arima(co2)

# Time series plot
plot(fc <- forecast(fit, h = 15))

Exemple 2 :

data("boardings")

# fitting
fit2 <- auto.arima(boardings[,"log.price"])

# forecasting
plot(fc2 <- forecast(fit2, h = 15))

Références

Greenwood, Major, and G Udny Yule. 1920. “An Inquiry into the Nature of Frequency Distributions Representative of Multiple Happenings with Particular Reference to the Occurrence of Multiple Attacks of Disease or of Repeated Accidents.” Journal of the Royal Statistical Society 83 (2). JSTOR: 255–79.

Jenkins, GM. s.d. “D. G. Watts (1968) Spectral Analysis and Its Applications.” San Francisco.

Conclusion

Dans ce tutoriel, vous avez parcouru de nombreux aspects des séries temporelles avec R. Vous avez vu ce qu'est un processus stationnaire, la simulation de variables aléatoires et de séries aléatoires, la marche aléatoire, et bien d'autres notions. Vous avez également abordé l'auto-régression d'ordre p : AR(p), le processus SARIMA(p,d,q)(P,D,Q), ainsi que la prévision.

Pour aller plus loin sur les séries temporelles avec R, suivez ces cours DataCamp :

Sujets
R
Science des données
Analyse des données

En savoir plus sur R

Cours

Analyse de séries temporelles en R

4 h
61.4K
Maîtrisez les techniques clés pour extraire des insights pertinents à partir de données temporelles.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow