Analyse des séries temporelles avec R : Guide du débutant

Bonjour là-bas, futurs magiciens des données ! Je suis ravi de vous emmener dans un voyage passionnant à travers le monde de l'analyse des séries temporelles en utilisant R. En tant que quelqu'un qui enseigne l'informatique depuis plus d'années que je ne veux bien admettre (disons simplement que je me souviens quand les disquettes étaient vraiment souples), j'ai vu des centaines d'étudiants passer de complets débutants à des analystes confiants. Alors, ne vous inquiétez pas si vous êtes nouveau en programmation – nous allons commencer par les bases et progresser ensemble.

R - Time Series Analysis

Qu'est-ce que l'analyse des séries temporelles ?

Avant de plonger dans le code R, parlons un peu de ce qu'est réellement l'analyse des séries temporelles. Imaginez que vous suivez le nombre de cornets de glace vendus dans votre magasin local chaque jour pendant une année. C'est une série temporelle ! Il s'agit simplement d'une séquence de points de données mesurés au fil du temps. L'analyse des séries temporelles nous aide à comprendre les modèles, les tendances, et à faire des prédictions basées sur ces données historiques.

Maintenant, mettons les mains dans le cambouis avec un peu de code R !

Premiers pas avec R

Premièrement, nous devons installer R et RStudio. Pensez à R comme au moteur et à RStudio comme au tableau de bord élégant qui rend la conduite plus facile. Une fois que vous avez les deux installés, ouvrez RStudio, et c'est parti !

# C'est un commentaire en R. Il n'affecte pas le code, mais aide les humains à comprendre ce qui se passe !

# Créons une série temporelle simple
sales <- c(100, 120, 140, 160, 180)
dates <- as.Date(c("2023-01-01", "2023-01-02", "2023-01-03", "2023-01-04", "2023-01-05"))

# Maintenant, combinons-les en un objet de série temporelle
ts_data <- ts(sales, start = c(2023, 1), frequency = 365)

# Voyons ce que nous avons créé
print(ts_data)

Dans cet exemple, nous avons créé une très simple série temporelle de données de ventes journalières. La fonction c() est utilisée pour créer un vecteur (pensez à une liste) de valeurs. Ensuite, nous utilisons la fonction ts() pour créer un objet de série temporelle, en spécifiant quand il commence et combien souvent nous mesurons (quotidiennement, dans ce cas).

Intervalle de temps différents

Maintenant, parlons des différents intervalles de temps. Les données de série temporelle peuvent être journalières, mensuelles, trimestrielles, ou tout autre intervalle que vous pouvez imaginer. R est suffisamment flexible pour gérer tous cela. Jetons un œil à quelques exemples :

# Données mensuelles
monthly_data <- ts(1:24, start = c(2022, 1), frequency = 12)

# Données trimestrielles
quarterly_data <- ts(1:8, start = c(2022, 1), frequency = 4)

# Données annuelles
yearly_data <- ts(1:10, start = 2013)

# Affichons-les
print(monthly_data)
print(quarterly_data)
print(yearly_data)

Dans ces exemples, nous créons des séries temporelles avec différentes fréquences. Pour les données mensuelles, nous utilisons frequency = 12 (12 mois dans une année), pour les données trimestrielles, c'est frequency = 4 (4 trimestres dans une année), et pour les données annuelles, nous n'avons pas besoin de spécifier la fréquence.

Visualisation des séries temporelles

On dit souvent qu'une image vaut mille mots, et dans l'analyse des données, cela ne pourrait être plus vrai. Visualisons notre série temporelle :

# Premièrement, créons un jeu de données plus intéressant
set.seed(123)  # Cela garantit que nous obtenons tous les mêmes nombres "aléatoires"
sales <- 100 + cumsum(rnorm(100))  # Somme cumulative de nombres aléatoires
dates <- seq(as.Date("2023-01-01"), by = "day", length.out = 100)
ts_data <- ts(sales, start = c(2023, 1), frequency = 365)

# Maintenant, visualisons-le
plot(ts_data, main = "Ventes journalières", xlab = "Date", ylab = "Ventes")

Ce code crée un jeu de données de ventes plus réaliste avec un peu dehasard, puis le trace. La fonction plot() est un moyen rapide et simple de visualiser votre série temporelle.

Plusieurs séries temporelles

Dans le monde réel, nous voulons souvent analyser plusieurs séries temporelles ensemble. Créons et visualisons plusieurs séries :

# Créons deux séries temporelles
set.seed(123)
sales_A <- 100 + cumsum(rnorm(100))
sales_B <- 120 + cumsum(rnorm(100))

# Combinons-les en une série temporelle multiple
multi_ts <- ts(cbind(sales_A, sales_B), start = c(2023, 1), frequency = 365)

# Tracons les deux séries
plot(multi_ts, main = "Comparaison des ventes", xlab = "Date", ylab = "Ventes", col = c("blue", "red"))
legend("topleft", legend = c("Produit A", "Produit B"), col = c("blue", "red"), lty = 1)

Ici, nous avons créé deux séries et les avons combinées en utilisant cbind(). Ensuite, nous les trasons ensemble, en utilisant des couleurs différentes pour distinguer entre les séries.

Méthodes courantes d'analyse des séries temporelles

Maintenant que nous avons couvert les bases, regardons quelques méthodes courantes utilisées dans l'analyse des séries temporelles. Voici un tableau résumant ces méthodes :

Méthode Description Fonction R
Moyenne mobile Lisse les fluctuations à court terme ma() du package forecast
Lissage exponentiel Accorde plus de poids aux observations récentes ets() du package forecast
ARIMA Modèle autorégressif intégré mobile arima() ou auto.arima()
Décomposition Sépare la série en composants de tendance, saisonnière et résiduelle decompose() ou stl()

Essayons une de ces méthodes - la décomposition :

# Décomposons notre série temporelle
decomposed <- decompose(ts_data)

# Tracons la décomposition
plot(decomposed)

Cette décomposition sépare notre série temporelle en trois composants : tendance, saisonnière et aléatoire. C'est un excellent moyen de comprendre les modèles sous-jacents dans vos données.

Conclusion

Félicitations ! Vous avez刚刚 fait vos premiers pas dans le monde fascinant de l'analyse des séries temporelles avec R. Nous avons couvert les bases de la création, de la visualisation et de l'analyse des données de série temporelle. Souvenez-vous, comme pour toute nouvelle compétence, la pratique rend parfait. N'ayez pas peur d'expérimenter avec différents jeux de données et méthodes.

Dans mes années d'enseignement, j'ai découvert que les étudiants qui excellent sont ceux qui abordent chaque problème avec curiosité et persévérance. Alors, continuez à explorer, à vous poser des questions, et surtout, continuez à coder !

Credits: Image by storyset