Introduction
L’analyse des séries temporelles est essentielle pour prévoir et comprendre les tendances des données séquentielles. Dans ce tutoriel, nous fournissons des exemples côte à côte en utilisant Facebook Prophet un outil populaire pour la prévision des séries temporelles, à la fois en Python et en R. Vous apprendrez à préparer vos données, à ajuster un modèle et à visualiser les tendances futures, ce qui vous permettra de comparer les flux de travail et de choisir la meilleure approche pour vos projets.
Utilisation de Facebook Prophet pour les prévisions de séries temporelles
Ci-dessous, vous trouverez un ensemble de tableaux qui montre comment construire et visualiser une prévision en utilisant Prophet à la fois en Python et en R.
ÉTAPE 1. Chargement des paquets requis:
#| label: python-required-packages
import pandas as pd
import numpy as np
from prophet import Prophet
import matplotlib.pyplot as plt
ÉTAPE 2. Charger et transformer les données:
#| label: python-load-data
# Charger l'ensemble de données AirPassengers
= pd.read_csv("https://raw.githubusercontent.com/kassambara/datarium/refs/heads/main/data-raw/AirPassengersDf.csv")
air_passengers
# Convertir les valeurs temporelles dans un format de date approprié
= pd.DataFrame({
df 'ds': pd.to_datetime(air_passengers['Month']),
'y': air_passengers['Passengers']
}) df.head()
ds y
0 1949-01-01 112
1 1949-02-01 118
2 1949-03-01 132
3 1949-04-01 129
4 1949-05-01 121
Le jeu de données AirPassengers
contient des données mensuelles sur le nombre de passagers.
ÉTAPE 3. Ajustement du modèle Prophet:
#| label: python-prophet-fit
# Ajuster le modèle Prophet
= Prophet()
model model.fit(df)
ÉTAPE 4. Faire des prévisions*:
#| label: python-make-forecast
# Créer un cadre de données pour les prévisions futures (12 prochains mois)
= model.make_future_dataframe(periods=12, freq='MS')
future = model.predict(future) forecast
ÉTAPE 5. Tracer les prévisions*:
#| label: python-plot-forecast
# Tracer les prévisions
= model.plot(forecast)
fig plt.show()
ÉTAPE 6. Tracer les composantes de la prévision*:
Ceci montrera la tendance, la saisonnalité et les effets de vacances dans la prévision.
#| label: python-plot-components
# Tracer les composantes de la prévision
= model.plot_components(forecast)
fig plt.show()
ÉTAPE 1. Chargement des paquets requis:
#| label: r-required-packages
library(prophet)
ÉTAPE 2. Charger et transformer les données:
#| label: r-load-data
# Charger l'ensemble de données AirPassengers
<- read.csv("https://raw.githubusercontent.com/kassambara/datarium/refs/heads/main/data-raw/AirPassengersDf.csv")
air_passengers
# Convertir les valeurs temporelles dans un format de date approprié
<- data.frame(
df ds = as.Date(air_passengers$Month),
y = as.numeric(air_passengers$Passengers)
)head(df)
ds y
1 1949-01-01 112
2 1949-02-01 118
3 1949-03-01 132
4 1949-04-01 129
5 1949-05-01 121
6 1949-06-01 135
Le jeu de données AirPassengers
contient des données mensuelles sur le nombre de passagers.
ÉTAPE 3. Ajustement du modèle Prophet:
#| label: r-prophet-fit
# Ajuster le modèle Prophet
<- prophet(df) model
Prophet détectera la saisonnalité mensuelle de l’ensemble de données et désactivera par défaut la saisonnalité quotidienne et hebdomadaire.
Vous pouvez exécuter prophet()
avec weekly.seasonality = TRUE
ou daily.seasonality = TRUE
pour remplacer ce comportement.
ÉTAPE 4. Faire des prévisions*:
Le modèle a été entraîné sur des données historiques de 1949 à 1961 1960. Nous allons maintenant générer des prévisions pour les 12 prochains mois (1961).
#| label: r-make-forecast
# Créer un cadre de données pour les prévisions futures (12 prochains mois)
<- make_future_dataframe(model, periods = 12, freq = "month")
future # Faire des prévisions
<- predict(model, future) forecast
ÉTAPE 5. Tracer les prévisions*:
#| label: r-plot-forecast
# Tracer les prévisions
plot(model, forecast)
ÉTAPE 6. Tracer les composantes de la prévision*:
Ceci montrera la tendance, la saisonnalité et les effets de vacances dans la prévision.
#| label: r-plot-components
# Tracer les composantes de la prévision
prophet_plot_components(model, forecast)
Discussion
Préparation des données
Les deux exemples utilisent l’ensemble de données AirPassengers, qui contient des données mensuelles sur le nombre de passagers.
Ajustement de modèles et prévisions
Les deux exemples utilisent Prophet pour ajuster un modèle et générer des prévisions. Les flux de travail sont remarquablement similaires, ce qui démontre que l’interopérabilité entre les langages peut offrir une certaine flexibilité dans le choix des outils en fonction de vos besoins spécifiques.
Visualisation
Chaque exemple se termine par une visualisation des prévisions. En Python, nous utilisons Matplotlib via la fonction de traçage intégrée de Prophet, tandis qu’en R, la fonction de traçage de Prophet produit un résultat visuel similaire.
Ressources complémentaires
Pour ceux qui souhaitent explorer des ensembles de données de séries temporelles dans différents domaines, vous pouvez consulter la bibliothèque tsdl sur GitHub. Prophet fournit une collection variée de données de séries temporelles, ce qui peut s’avérer très utile pour tester et comparer les modèles de prévision.
Conclusion
En comparant ces exemples côte à côte, vous pouvez voir que Facebook Prophet offre une approche cohérente de la prévision des séries temporelles à la fois en Python et en R. Cela vous permet de choisir l’environnement qui correspond le mieux à votre flux de travail en science des données sans sacrifier les fonctionnalités ou les performances.
Plus d’informations
Bon codage et bonne prévision de vos séries temporelles avec Prophet!
Explorer d’autres articles
Voici d’autres articles de la même catégorie pour vous aider à approfondir le sujet.
Réutilisation
Citation
@online{kassambara2024,
author = {Kassambara, Alboukadel},
title = {Analyse des séries temporelles en Python et R},
date = {2024-02-12},
url = {https://www.datanovia.com/fr/learn/programming/r/cross-programming/time-series-analysis-in-python-and-r.html},
langid = {fr}
}