Modèles d'Analyse avec R
1. ARIMA : Introduction et application avec R pour prédiction
Le modèle ARIMA (AutoRegressive Integrated Moving Average) est l’un des modèles les
plus utilisés en analyse des séries temporelles. Il permet de prédire les valeurs futures en se
basant sur les valeurs passées d'une série temporelle.
ARIMA repose sur trois composants fondamentaux :
- Autorégressif (AR - p) : La prévision repose sur la corrélation entre une observation et
ses valeurs passées.
- Intégré (I - d): Représente la différenciation de la série pour la rendre stationnaire (c'est-
à-dire sans tendance ni saisonnalité).
- Moyenne mobile (MA - q): Utilise les erreurs des prévisions passées pour ajuster la
prévision future.
Ainsi, un modèle ARIMA(p,d,q) est défini par trois paramètres :
- p : Nombre de termes autorégressifs.
- d : Nombre de différenciations nécessaires pour stationnariser la série.
- q : Nombre de termes de moyenne mobile.
La différenciation est une étape clé pour transformer une série temporelle non stationnaire
en une série stationnaire. Elle est définie par la formule suivante :
Y'_t = Y_t - Y_{t-1}
où Y'_t représente la série différenciée, et Y_t est la valeur originale à l’instant t.
Si une seule différenciation ne suffit pas, une deuxième peut être appliquée :
Y''_t = Y'_t - Y'_{t-1} = (Y_t - Y_{t-1}) - (Y_{t-1} - Y_{t-2})
Le choix du paramètre d dépend donc du nombre de différenciations nécessaires pour
obtenir une série stationnaire.
1.1 Composants AR et MA
Dans un modèle AR(p), chaque valeur de la série temporelle est une combinaison linéaire de
ses valeurs passées plus un terme d’erreur :
Y_t = c + φ_1 Y_{t-1} + φ_2 Y_{t-2} + ... + φ_p Y_{t-p} + ε_t
où φ_i sont les coefficients du modèle et ε_t est un bruit blanc.
Dans un modèle MA(q), la valeur de la série dépend d'une combinaison linéaire des erreurs
passées :
Y_t = c + ε_t + θ_1 ε_{t-1} + θ_2 ε_{t-2} + ... + θ_q ε_{t-q}
où θ_i sont les coefficients du modèle.
2. Lissage Exponentiel : Application du modèle pour la prévision des tendances
Les méthodes de lissage exponentiel sont utilisées pour prévoir des séries temporelles en
accordant plus de poids aux observations récentes. Elles sont particulièrement adaptées aux
séries sans forte fluctuation.
Il existe trois principaux types de lissage exponentiel :
- **Lissage exponentiel simple** : Convient aux séries sans tendance ni saisonnalité.
- **Lissage exponentiel double (modèle de Holt)** : Ajoute une composante de tendance
pour les séries en croissance ou en décroissance.
- **Lissage exponentiel triple (modèle de Winters)** : Intègre la tendance et la saisonnalité.
2.1 Formules des modèles de lissage exponentiel
**Lissage exponentiel simple** :
Forecast_{t+1} = α * Demand_t + (1 - α) * Forecast_t
**Lissage exponentiel double (Holt)** :
Niveau_t = α * Demand_t + (1 - α) * (Niveau_{t-1} + Tendance_{t-1})
Tendance_t = β * (Niveau_t - Niveau_{t-1}) + (1 - β) * Tendance_{t-1}
**Lissage exponentiel triple (Winters)** :
Niveau_t = α * (Demand_t / Saison_{t-s}) + (1 - α) * (Niveau_{t-1} + Tendance_{t-1})
Tendance_t = β * (Niveau_t - Niveau_{t-1}) + (1 - β) * Tendance_{t-1}
Saison_t = γ * (Demand_t / Niveau_t) + (1 - γ) * Saison_{t-s}
3. Exemples avec R : Code pour appliquer ARIMA et lissage exponentiel
3.1 Application d’ARIMA en R
Le code suivant applique un modèle ARIMA sur une série temporelle en R :
# Chargement des bibliothèques nécessaires
library(forecast)
# Création d'une série temporelle fictive
data <- ts(c(100, 120, 130, 150, 170, 180, 200), frequency=1)
# Ajustement du modèle ARIMA
model <- auto.arima(data)
# Affichage du modèle
summary(model)
# Prédiction des valeurs futures
forecasted_values <- forecast(model, h=5)
plot(forecasted_values)
3.2 Application du Lissage Exponentiel en R
Le code suivant applique un modèle de lissage exponentiel simple en R :
# Chargement de la bibliothèque
library(forecast)
# Création d'une série temporelle fictive
data <- ts(c(100, 110, 120, 130, 140, 150, 160), frequency=1)
# Application du lissage exponentiel simple
model <- HoltWinters(data, beta=FALSE, gamma=FALSE)
# Affichage du modèle
summary(model)
# Prédiction des valeurs futures
forecasted_values <- forecast(model, h=5)
plot(forecasted_values)