Accéder au contenu principal

Prophète Facebook : Une approche moderne de la prévision des séries chronologiques

Comprenez comment Facebook Prophet modélise les tendances, la saisonnalité et les événements spéciaux pour établir des prévisions précises et interprétables.
Actualisé 5 nov. 2025  · 10 min de lecture

Les entreprises s'appuient sur la prévision des tendances futures pour prendre des décisions stratégiques, telles que la prévision des ventes de produits ou l'évaluation de la variabilité de la demande. Une méthode permettant de réaliser des prévisions efficaces est la prévision de séries chronologiques. Un principe fondamental de la prévision des séries chronologiques est sa dépendance vis-à-vis des valeurs historiques pour prédire les résultats futurs. Cela nécessite une attention particulière aux données, car les données pratiques ont tendance à être bruitées ou incomplètes, et donc difficiles à prédire.

Bien qu'il existe de nombreux outils pour la prévision de séries chronologiques, Facebook Prophet est spécialement conçu pour gérer les complexités du monde réel, qui vont des tendances non linéaires et de la saisonnalité à l'impact d'événements spéciaux tels que les vacances, les campagnes marketing ou les pics de trafic.  Si vous n'êtes pas familier avec la prévision de séries chronologiques, je vous recommande de suivre notre cours Analyse de séries chronologiques en Python et/ou notre cours Prévision en R.

Qu'est-ce que Facebook Prophet ?

Prophet est une bibliothèque de prévision open source développée par l'équipe Core Data Science de Facebook. Il est disponible à la fois en Python et en R. L'une des raisons pour lesquelles les analystes et les scientifiques de données apprécient son utilisation est qu'il automatise de nombreuses étapes fastidieuses des méthodes de prévision traditionnelles. Grâce à cette flexibilité, il permet aux utilisateurs de produire rapidement des prévisions interprétables et fiables.

Cadre de modélisation de base de Facebook Prophet

L'approche de modélisation de Facebook Prophet est à la fois structurée etflexible. Il décompose une série chronologique en quatre composantes clés de l', à savoir la tendance, la saisonnalité, les jours fériés et l'erreur. Ce troisième élément, que j'ai appelé « les vacances », n'est pas si courant. La décomposition classique et la décomposition STL identifient trois composantes : la tendance, la saisonnalité et l'erreur.

En clarifiant la manière dont les tendances, la saisonnalité et les jours fériés contribuent tous à la prévision finale, la décomposition aide à valider le raisonnement du modèle lorsque nous essayons de prendre des décisions éclairées.

Décomposition des séries chronologiques

Prophet utilise un modèle additif dans lequel l'y(t) e de la série chronologique est exprimée comme suit :

Équation de décomposition des séries chronologiques de Facebook Prophet

Où, 

  • La tendance (g(t)) indique une croissance ou un déclin à long terme.

  • La saisonnalité (s(t)) comprend des modèles récurrents tels que les fluctuations hebdomadaires, mensuelles ou annuelles.

  • Les effets liés aux jours fériés (h(t)) correspondent à des événements irréguliers mais prévisibles, tels que le Black Friday ou les jours fériés nationaux.

  • L'erreur (et) correspond au bruit résiduel qui ne peut être expliqué par les autres composantes.

En plus d'offrir une interprétabilité en indiquant les facteurs qui influencent les prévisions, il automatise également la plupart du processus de prévision des séries chronologiques, comme la détection de la saisonnalité et le traitement des valeurs manquantes.

En prenant en charge ces opérations de prétraitement complexes, Prophet réduit le besoin d'une expertise statistique approfondie, souvent requise dans les méthodes statistiques conventionnelles. ARIMA, par exemple, nécessite que les hypothèses de stationnarité soient valables et ne tient pas officiellement compte des facteurs externes, tandis que Prophet modélise explicitement les effets saisonniers et les impacts des jours fériés, ce qui le rend plus adapté aux prévisions commerciales.

Spécification des composants de tendance

Prophet propose deux modèles de tendance :

  1. Le modèle de croissance logistique est pertinent lorsqu'une série chronologique atteint sa capacité maximale, comme c'est le cas pour l'adoption d'une nouvelle application par les utilisateurs.
  2. Le modèle linéaire par morceaux divise la tendance en segments avec des points de changement, ce qui facilite la modélisation des changements soudains dans la croissance.

Modélisation saisonnière

La saisonnalité est modélisée à l'aide d'une série de Fourier qui permet d'obtenir des fonctions périodiques lisses dans les données chronologiques. Il présente deux formes principales de comportement saisonnier :

  • La saisonnalité additive est nécessaire lorsque les variations saisonnières restent constantes en amplitude au fil du temps.
  • La saisonnalité multiplicative est appropriée lorsque les fluctuations saisonnières augmentent avec la tendance, comme par exemple lorsque le volume des ventes augmente avec la croissance globale du marché.

De plus, les utilisateurs peuvent également définir des saisonnalités personnalisées afin de représenter des modèles uniques et spécifiques à un domaine, par exemple des promotions trimestrielles.

Intégration des jours fériés et des événements

Prophet offre également la possibilité d'intégrer à la fois des jours fériés prédéfinis et des listes d'événements arbitraires. Cela est particulièrement avantageux pour modéliser les cycles économiques, les jours fériés culturels ou les événements ponctuels tels que les lancements de produits. Il est également possible d'ajouter des événements imprévus tels que la COVID-19 en tant que régresseurs supplémentaires afin de mettre à jour les prévisions de manière dynamique. La modélisation explicite de ces événements améliore la précision et fournit des informations sur l'impact des dates spéciales sur les tendances sous-jacentes.

Gestion du bruit et des valeurs aberrantes

Les données réelles contiennent souvent du bruit et des valeurs aberrantes, ce qui peut entraîner des prévisions de modèle faussées. Prophet dispose de fonctions de perte robustes et de composants de tendance non paramétriques qui rendent les prévisions plus résistantes aux valeurs aberrantes dans les données.

Afin d'améliorer davantage la stabilité des prévisions, il est utile d'analyser les graphiques résiduels et de prétraiter les données en les winsorisant ou en supprimant les anomalies. Ces étapes garantissent que le modèle apprend les tendances réelles, plutôt que des bruits aléatoires.

Quand utiliser Facebook Prophet (et quand ne pas l'utiliser)

À l'instar de la plupart des modèles et techniques d'apprentissage automatique, Prophet n'est pas une solution universelle. Il est essentiel de comprendre ses points forts et ses points faibles pour l'utiliser efficacement.

Points forts et scénarios idéaux

Le prophète est particulièrement efficace lorsque :

  • Lorsque les données présentent une saisonnalité quotidienne, hebdomadaire ou annuelle évidente.
  • Les ensembles de données sont incomplets et nécessitent un traitement automatisé des valeurs manquantes et des valeurs aberrantes.
  • Les utilisateurs ont besoin d'une analyse exploratoire rapide et d'un développement initial du modèle.

Sa simplicité le rend accessible aux utilisateurs ayant des connaissances limitées en statistiques, tandis que son interprétabilité aide les analystes et les scientifiques des données à communiquer efficacement les résultats aux parties prenantes non techniques.

Limites et difficultés potentielles

Le prophète peut être moins approprié dans les scénarios suivants :

  • Données très volatiles ou non saisonnières, pour lesquelles il n'existe pas de schémas périodiques réguliers.
  • Prévisions à long terme lorsque les tendances sont imprévisibles.
  • Les tendances non linéaires ne sont pas prises en compte par les modèles linéaires par morceaux ou logistiques.

Une règle d'or lors de l'utilisation de Prophet, ou de tout autre modèle de prévision, est d'éviter de l'adopter sans discernement. Sans validation adéquate, les modèles peuvent facilement produire des prévisions trop optimistes ou trompeuses, comme on l'a également constaté dans plusieurs discussions communautaires et échecs de prévision très médiatisés.

Utilisation de Prophet dans Python

Étape 1 : Importer des bibliothèques

Tout d'abord, veuillez charger tous les paquets Python requis :

  • pandas pour la manipulation des données

  • prophet pour élaborer le modèle de prévision

  • matplotlib pour la visualisation

  • sklearn.metrics – pour calculer la MAPE, la mesure d'erreur

import pandas as pd
from prophet import Prophet
import matplotlib.pyplot as plt
from sklearn.metrics import mean_absolute_percentage_error

Étape 2 :  Veuillez charger l'ensemble de données.

Ensuite, nous lisons notre fichier CSV contenant l'historique des cours à terme de l'or. Voici unlien vers l'ensemble de données Kaggle que j'utilise.

file_path = "future-gc00-daily-prices.csv"
gold_ts = pd.read_csv(file_path)

Étape 3 : Nettoyez les données

À présent, nous devons procéder au nettoyage des données. Cela signifie que nous :

  • Supprimez les virgules des colonnes numériques et convertissez-les en nombres flottants.

  • Veuillez convertir la colonne « Date » du format chaîne au format date/heure.

Cela garantit que Prophet peut correctement comprendre et classer les dates.

for col in ["Open", "High", "Low", "Close"]:
    gold_ts[col] = gold_ts[col].str.replace(",", "").astype(float)
gold_ts["Date"] = pd.to_datetime(gold_ts["Date"], format="%m/%d/%Y")

Étape 4 : Veuillez trier les données par date.

Nous organisons les données par ordre chronologique. Il s'agit d'une étape importante qui peut être négligée.

gold_ts = gold_ts.sort_values("Date")

Étape 5 : Préparer les données pour Prophet

Nous devons également préparer les données pour Prophet, qui attend que ses colonnes d'entrée soient nommées :

  • ds → date

  • y → valeur à prévoir (ici, le prix de l'Close )

gold_ts = gold_ts[["Date", "Close"]].rename(columns={"Date": "ds", "Close": "y"})

Étape 6 : Diviser en ensembles d'entraînement et de test

Nous procédons maintenant à la division des données en deux versions distinctes : la version d'entraînement et la version de test. 

  • Conservez la plupart des données pour la formation.
  • Veuillez réserver les 180 dernières lignes (ou 10 % si elles sont moins nombreuses) pour évaluer la précision du modèle.
test_size = min(180, len(gold_ts) // 10)
train = gold_ts.iloc[:-test_size]
test = gold_ts.iloc[-test_size:]

Étape 7 : Ajuster le modèle Prophet

Veuillez entraîner le modèle Prophet sur les données historiques en activant les composantes saisonnières quotidiennes et annuelles.

model = Prophet(daily_seasonality=True, yearly_seasonality=True)
model.fit(train)

Étape 8 : Prévision des valeurs futures

Nous effectuons des prévisions pour autant de jours que dans l'ensemble de test.

Les prévisions comprennent des colonnes telles que « yhat » (prédiction), « yhat_lower » (prédiction) et « yhat_upper » (prédiction).

future = model.make_future_dataframe(periods=test_size)
forecast = model.predict(future)

Étape 9 : Aligner les prévisions sur les résultats réels

Veuillez associer les cours de clôture réels aux prévisions du modèle aux dates correspondantes afin de les comparer directement.

merged = pd.merge(test, forecast[["ds", "yhat"]], on="ds", how="inner")

Étape 10 : Calculer la MAPE

Nous évaluons maintenant la précision de la prévision. Si les dates ne se chevauchent pas, le système vous avertit au lieu de planter.

if merged.empty:
    print("No overlapping dates between forecast and test set.")
else:
    mape = mean_absolute_percentage_error(merged["y"], merged["yhat"]) * 100
    print(f"Mean Absolute Percentage Error (MAPE): {mape:.2f}%")

Ici, l'erreur absolue moyenne en pourcentage (EAMP) : 5,83 %

Équation MAPE

Étape 11 : Veuillez réaliser un graphique des prévisions.

Nous visualisons les prévisions, les intervalles de confiance et l'historique réel.

fig1 = model.plot(forecast)
plt.title("Gold Futures (GC00) - Close Price Forecast")
plt.xlabel("Date")
plt.ylabel("Close Price")
plt.show()

Résultat des prévisions du prophète Facebook

Étape 12 : Graphique des composantes saisonnières

Il est utile de montrer comment les tendances, les variations saisonnières quotidiennes et annuelles contribuent aux prévisions.

fig2 = model.plot_components(forecast)
plt.show()

Décomposition saisonnière de Facebook Prophet

Étape 13 : Veuillez examiner les exemples de prévisions.

Veuillez afficher les dernières valeurs prédites et leurs intervalles d'incertitude.

print(forecast[["ds", "yhat", "yhat_lower", "yhat_upper"]].tail(10))

Exemples de valeurs prévisionnelles :

             ds         yhat   yhat_lower   yhat_upper
3714 2023-11-09  1834.568081  1743.127873  1922.791205
3715 2023-11-10  1833.323500  1749.265678  1937.246093
3716 2023-11-11  1832.818196  1740.941278  1921.772611
3717 2023-11-12  1832.370884  1745.285047  1925.012684
3718 2023-11-13  1832.644350  1736.792708  1919.057042
3719 2023-11-14  1832.017761  1736.229502  1929.786669
3720 2023-11-15  1831.650906  1743.190077  1924.851936
3721 2023-11-16  1831.566521  1738.181184  1933.026740
3722 2023-11-17  1830.427713  1736.038529  1919.505155
3723 2023-11-18  1830.029816  1737.022754  1922.118728

Validation et test de Facebook Prophet

Méthodologie de validation

La validation croisée des séries chronologiques est nécessaire pour simuler des scénarios de prévision réels. Il est essentiel d'évaluer les performances du modèle sur plusieurs ensembles de validation consécutifs. Non seulement cela permet d'éviter les biais d'anticipation, mais cela offre également une généralisation aux données futures non observées.

Certaines des mesures d'évaluation standard comprennent :

  • L'erreur absolue moyenne (EAM) mesure l'amplitude moyenne des erreurs, sans tenir compte de leur direction.
  • L'erreur absolue moyenne en pourcentage (MAPE) mesure la différence absolue moyenne en pourcentage. Il est facilement interprétable à différentes échelles. C'est celui que nous avons examiné dans notre exemple Python.

Analyse comparative

Par rapport à ARIMA ou LSTM, Prophet est particulièrement performant dans les domaines suivants :

  • Gestion des effets saisonniers et des jours fériés
  • Démontrer la robustesse face aux données manquantes, aux valeurs aberrantes et aux irrégularités commerciales

Cependant, Prophet peut afficher des performances inférieures dans des scénarios impliquant des modèles hautement non linéaires ou des ensembles de données présentant une faible saisonnalité. 

Applications pratiques et limites

Études de cas concrets

Prophet a été largement adopté dans divers secteurs pour des cas d'utilisation tels que :

  • Prévision des ventes au détail, évaluation de la demande et gestion des stocks
  • Prévision du trafic Web pour évaluer l'engagement des utilisateurs
  • Prévision de la demande énergétique afin d'équilibrer efficacement l'offre et la consommation.

Malgré ses avantages, il est arrivé que les modèles historiques échouent en raison de perturbations imprévues, comme cela s'est produit pendant la pandémie. 

Contraintes d'évolutivité

Prophet est capable de traiter des ensembles de données de taille modérée, ce qui convient à la plupart des tâches de prévision commerciale et opérationnelle. Cependant, son utilisation avec des ensembles de données extrêmement volumineux ou des séries chronologiques à haute fréquence est coûteuse en termes de calcul en raison du cadre de modélisation bayésien sous-jacent. Pour remédier à cela, il est recommandé de prévoir plusieurs séries chronologiques en parallèle. Une autre approche pratique consiste à agréger ou à sous-échantillonner les données. Il réduit les coûts liés à la mémoire et au temps d'exécution sans compromettre les modèles temporels importants.

Principales restrictions

Prophet suppose une variable cible unique et modélise sa tendance à l'aide de courbes de croissance linéaires ou logistiques par morceaux. De telles hypothèses peuvent limiter sa flexibilité pour les problèmes multivariés ou non dominés par une tendance. Par conséquent, les utilisateurs doivent ajouter des connaissances spécialisées aux prévisions de Prophet et procéder à une validation externe afin de garantir leur fiabilité.

Échecs et critiques dans le monde réel

Les échecs prévisibles très médiatisés, tels que l'effondrement du marché immobilier Zillow, soulignent les risques liés à une dépendance excessive envers les logiciels de prévision automatisés. Accorder une confiance excessive aux résultats des modèles sans aucune vérification humaine peut entraîner des erreurs coûteuses. Il est donc recommandé de procéder à une validation approfondie et à une planification de scénarios lors de l'interprétation des résultats des prévisions.

N'hésitez pas à remettre en question chaque modèle et chaque tendance. Favorisez une culture qui encourage la pensée critique et permet aux équipes de remettre en question le statu quo. J'ai observé de telles équipes élaborer de manière cohérente des solutions de prévision robustes. 

Enfin, je recommande vivement d'adopter une approche « faire confiance, mais vérifier » et d'ajouter une couche supplémentaire de connaissances dans votre domaine afin de vérifier la pertinence des résultats. 

Trajectoire de développement futur

Prophet continue d'évoluer grâce à la recherche et aux contributions de la communauté. Les améliorations continues apportées à Prophet comprennent :

  • Assistance multivariée
  • Évolutivité améliorée pour les ensembles de données volumineux
  • Extensions développées par la communauté

La recherche active consiste à intégrer de nouvelles méthodes statistiques et à améliorer les performances dans des ensembles de données complexes et à haute fréquence.

Conclusion

Facebook Prophet est un outil performant pour la prévision de séries chronologiques, offrant automatisation, interprétabilité et flexibilité. Il est particulièrement efficace pour les prévisions exploratoires dans le domaine des affaires et dans d'autres domaines caractérisés par une forte saisonnalité ou des événements spéciaux.

Cependant, cela ne signifie pas pour autant qu'il s'agit d'une solution prête à l'emploi. Pour établir des prévisions fiables, les utilisateurs doivent veiller à effectuer une validation rigoureuse, un réglage des paramètres et acquérir des connaissances dans le domaine. En combinant l'automatisation de Prophet avec un jugement humain réfléchi, les analystes peuvent développer des informations exploitables et éviter les pièges courants.

Pour un apprentissage pratique, veuillez consulter nos cours et nos cursus de compétences :


Vidhi Chugh's photo
Author
Vidhi Chugh
LinkedIn

Je suis un stratège de l'IA et un éthicien qui travaille à l'intersection de la science des données, du produit et de l'ingénierie pour construire des systèmes d'apprentissage automatique évolutifs. Considéré comme l'un des 200 plus grands innovateurs commerciaux et technologiques au monde, je me suis donné pour mission de démocratiser l'apprentissage automatique et de briser le jargon pour que tout le monde puisse participer à cette transformation.

Questions fréquentes

À quoi sert Facebook Prophet ?

Facebook Prophet est utilisé pour les prévisions de séries chronologiques, permettant de prédire les tendances, la saisonnalité et les effets des événements dans des données telles que les ventes, la demande ou le trafic web.

Comment Prophet gère-t-il les jours fériés et les événements spéciaux ?

Prophet permet d'ajouter des événements prédéfinis ou personnalisés au modèle, ce qui permet de tenir compte des pics ou des creux irréguliers dans la série chronologique.

Pourquoi Prophet est-il si apprécié pour les prévisions commerciales ?

Prophet est automatisé, interprétable et robuste face aux données manquantes et aux valeurs aberrantes, ce qui le rend idéal pour des prévisions rapides et fiables.

Dans quels cas est-il préférable de ne pas utiliser Facebook Prophet ?

Il est possible d'éviter d'utiliser Prophet pour les données hautement volatiles ou non saisonnières, ou lorsque les tendances sont trop imprévisibles.

Quels sont les principaux avantages de Prophet par rapport à ARIMA ?

Contrairement à ARIMA, Prophet ne nécessite pas de stationnarité stricte, traite les données manquantes et détecte automatiquement les points de changement.

Sujets