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
air_passengers = pd.read_csv("https://raw.githubusercontent.com/kassambara/datarium/refs/heads/main/data-raw/AirPassengersDf.csv")
# Convertir les valeurs temporelles dans un format de date approprié
df = pd.DataFrame({
'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
model = Prophet()
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)
future = model.make_future_dataframe(periods=12, freq='MS')
forecast = model.predict(future)ÉTAPE 5. Tracer les prévisions*:
#| label: python-plot-forecast
# Tracer les prévisions
fig = model.plot(forecast)
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
fig = model.plot_components(forecast)
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
air_passengers <- read.csv("https://raw.githubusercontent.com/kassambara/datarium/refs/heads/main/data-raw/AirPassengersDf.csv")
# Convertir les valeurs temporelles dans un format de date approprié
df <- data.frame(
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
model <- prophet(df)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)
future <- make_future_dataframe(model, periods = 12, freq = "month")
# Faire des prévisions
forecast <- predict(model, future)É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}
}
