Quel outil de prévision séries temporelles choisir ?

Je choisirais l’outil selon votre contrainte principale, pas juste selon la précision. Prophet rassure, NeuralProphet capte mieux les effets récents, TimeGPT accélère via API, Chronos ouvre la voie aux modèles pré-entraînés. Le vrai sujet, c’est le compromis entre contrôle, coût, vitesse et déploiement.

Pourquoi le choix du modèle compte ?

Je regarde rarement un modèle de prévision uniquement avec son score. Un RMSE ou un MAPE, c’est utile, mais ça ne dit pas si la prévision va aider à commander le bon stock, couvrir un risque financier, planifier une équipe, acheter de l’énergie ou détecter une baisse de trafic web. Deux modèles peuvent avoir une précision proche sur un test, et pourtant produire des décisions très différentes.

Le point clé, c’est la décision derrière la prévision. Si vous prévoyez des ventes, une erreur de 5 % sur un produit critique peut coûter cher. Si vous prévoyez du trafic web, vous voulez peut-être surtout capter les pics. Si vous faites de la finance, l’explicabilité et la gouvernance comptent parfois autant que la précision. J’ai déjà vu un client garder un modèle un peu moins performant sur le papier, simplement parce que les équipes métier comprenaient ses variations et pouvaient les challenger. En production, ça change tout.

Avant de choisir entre Prophet, NeuralProphet, TimeGPT et Chronos, je regarde toujours ces critères :

  • Précision : Le modèle réduit-il vraiment l’erreur sur vos horizons utiles, pas juste sur un benchmark propre.
  • Explicabilité : Peut-on comprendre l’impact de la saisonnalité, des jours fériés, des tendances ou des variables externes.
  • Scalabilité : Peut-on traiter 50 séries, 5 000 séries ou 500 000 séries sans bricoler.
  • Vitesse de mise en place : Peut-on obtenir une prévision fiable vite, ou faut-il une vraie phase ML.
  • Coût : Le coût vient du calcul, de l’API, de l’hébergement, mais aussi du temps passé à maintenir.
  • Contraintes de déploiement : Le modèle doit-il tourner dans votre cloud, en local, dans un batch, derrière une API.
  • Gouvernance des données : Les données peuvent-elles sortir de votre environnement, ou non.
Outil Point fort Limite à surveiller Cas d’usage naturel
Prophet Très clair, lisible, facile à expliquer aux métiers Moins adapté si les dépendances temporelles sont complexes Prévisions business avec saisonnalité, jours fériés, tendances compréhensibles
NeuralProphet Ajoute l’autorégression, les lags et les covariables avec PyTorch Demande plus de réglages et plus de rigueur ML Séries avec effets retardés, variables externes, signaux plus riches
TimeGPT Très rapide à tester via API, avec peu de configuration Dépendance à un service externe et contrôle plus limité Prototype rapide, benchmark, équipes qui veulent aller vite
Chronos Approche foundation model avec poids ouverts, déploiement plus contrôlable Intégration et infrastructure parfois plus techniques Environnements sensibles, tests avancés, besoin de contrôle sur le modèle

Mon choix n’est donc pas “le modèle le plus moderne”. C’est le modèle qui donne une prévision assez bonne, compréhensible, maintenable, déployable et acceptable pour votre contexte. C’est moins sexy, mais c’est souvent ce qui fait qu’un projet de prévision tient après le premier mois.

Comment tester ces outils proprement ?

Je fais simple : si je compare Prophet, NeuralProphet, TimeGPT et Chronos, je leur donne le même terrain de jeu. Même donnée, même horizon, même découpage, mêmes métriques. Sinon on compare surtout des choix de préparation, pas les modèles.

Une série temporelle propre, au minimum, c’est une colonne de date et une valeur cible. Prophet et NeuralProphet utilisent souvent ds pour la date et y pour la valeur à prévoir. Par exemple, ds contient le jour, l’heure ou le mois, et y contient les ventes, le trafic, la consommation, bref la variable qu’on veut prédire.

pip install prophet
pip install neuralprophet
pip install nixtla
pip install chronos-forecasting
pip install autogluon.timeseries

Prophet et NeuralProphet se testent très bien en local. TimeGPT passe par le SDK Nixtla, donc il faut installer nixtla et avoir une clé API. Chronos peut se tester avec chronos-forecasting si vous voulez aller plus bas niveau, ou avec AutoGluon TimeSeries si vous voulez un cadre plus intégré. Petit point pas glamour mais important : l’environnement Python, les versions de PyTorch et la compatibilité GPU peuvent changer l’expérience, surtout avec NeuralProphet et Chronos. J’ai déjà perdu plus de temps sur une version CUDA bancale que sur le modèle lui-même.

Pour garder une comparaison lisible, je fixe les règles avant de lancer les tests :

  • Un horizon identique, par exemple 30 jours.
  • Un découpage train test clair, avec les dernières observations gardées pour le test.
  • Une fréquence constante, quotidienne, horaire ou mensuelle, mais pas un mélange bizarre entre deux modèles.
  • Les mêmes métriques : MAE pour l’erreur moyenne absolue, RMSE pour pénaliser plus fort les grosses erreurs, MAPE pour lire l’erreur en pourcentage quand la cible s’y prête.
  • Le temps d’entraînement, parce qu’un modèle précis mais trop lent peut être inutilisable en production.
  • Le temps d’inférence, c’est-à-dire le temps nécessaire pour produire les prévisions.
  • La qualité des intervalles d’incertitude quand ils existent, parce qu’une prévision sans fourchette est parfois trop confiante.

J’ai souvent vu des comparaisons inutilisables juste parce que l’horizon ou la fréquence n’étaient pas les mêmes entre deux modèles. Un modèle prédit à 7 jours, l’autre à 30 jours, puis on conclut que le premier est meilleur. Non. Il avait juste un problème plus facile.

Mon réflexe, c’est de créer un petit tableau de résultats, très bête, mais propre :

Modèle MAE RMSE MAPE Train Inférence
Prophet
NeuralProphet

À partir de là, la discussion devient beaucoup plus saine. On ne cherche pas “le meilleur outil” dans l’absolu. On regarde celui qui marche le mieux sur votre donnée, avec vos contraintes.

Quand utiliser Prophet ou NeuralProphet ?

J’utilise Prophet quand je veux une prévision lisible rapidement, avec une tendance, des saisons, des jours spéciaux, et une marge d’incertitude facile à expliquer. J’utilise NeuralProphet quand les valeurs récentes pèsent vraiment lourd, par exemple quand les 7 derniers jours ou les 3 derniers mois changent fortement la suite.

Prophet est un outil open-source développé par Facebook, aujourd’hui Meta. Il est pensé pour des séries temporelles avec tendance, saisonnalité et événements récurrents. Son format est volontairement simple : une colonne ds pour la date, une colonne y pour la valeur à prévoir. C’est bête, mais en mission, ça évite beaucoup de friction avec les équipes métier.

import pandas as pd
from prophet import Prophet

df = pd.DataFrame({
    "ds": pd.date_range(start="2024-01-01", periods=100, freq="D"),
    "y": [100 + i * 0.4 + (i % 7) * 3 for i in range(100)]
})

model = Prophet()
model.fit(df)

future = model.make_future_dataframe(periods=30, freq="D")
forecast = model.predict(future)

result = forecast[["ds", "yhat", "yhat_lower", "yhat_upper"]].tail(30)
print(result)

La colonne yhat, c’est la prévision. yhat_lower et yhat_upper, c’est l’intervalle d’incertitude. Pour une équipe métier, c’est souvent plus utile qu’un chiffre pseudo-précis. On peut discuter du scénario, pas juste subir une boîte noire.

NeuralProphet reprend les idées de Prophet, comme la tendance et la saisonnalité, mais ajoute des composants neuronaux. Il sait utiliser de l’autoregression, donc les anciennes valeurs de la série pour prédire les prochaines. Il peut aussi intégrer des valeurs retardées et des covariables, c’est-à-dire des variables externes comme la météo, le budget pub ou le trafic web. Il repose sur PyTorch, donc on est sur une approche plus flexible, mais aussi un peu plus sensible côté environnement technique.

import pandas as pd
from neuralprophet import NeuralProphet

df = pd.DataFrame({
    "ds": pd.date_range(start="2024-01-01", periods=100, freq="D"),
    "y": [100 + i * 0.4 + (i % 7) * 3 for i in range(100)]
})

model = NeuralProphet(
    n_lags=14,
    n_forecasts=7
)

metrics = model.fit(df, freq="D")

future = model.make_future_dataframe(df, periods=7, n_historic_predictions=True)
forecast = model.predict(future)

print(forecast.tail(7))

Petit point vécu : Avec NeuralProphet, je fige toujours les versions dans un environnement reproductible. Certaines versions de PyTorch peuvent poser problème avec torch.load, surtout quand un modèle a été entraîné dans un environnement puis relu dans un autre. Un fichier requirements.txt ou un environnement Docker évite des pertes de temps assez pénibles.

Si votre besoin est Je choisirais Pourquoi
Prévoir vite avec une lecture métier claire Prophet Il est simple, lisible, et donne des intervalles d’incertitude propres.
Expliquer tendance, saisonnalité et événements Prophet Les composants sont compréhensibles sans rentrer dans le détail mathématique.
Utiliser fortement les dernières valeurs observées NeuralProphet L’autoregression exploite les valeurs récentes pour prédire la suite.
Ajouter des variables externes et des effets plus complexes NeuralProphet Il est plus flexible grâce à ses composants neuronaux et à PyTorch.

Que valent TimeGPT et Chronos ?

TimeGPT et Chronos m’intéressent quand je veux éviter de repartir de zéro. Mais ce n’est pas le même pari. TimeGPT, c’est une API de forecasting prête à l’emploi dans l’écosystème Nixtla. Chronos, c’est plutôt une famille de modèles avec poids ouverts, issue des travaux Amazon, que je peux tester et déployer avec plus de contrôle.

Avec TimeGPT, l’intérêt est simple : je réduis la configuration, j’envoie une série temporelle, et je récupère une prévision. C’est très pratique pour un POC, un produit interne, ou une équipe qui veut limiter l’effort de modélisation. J’ai déjà vu ça débloquer un sujet en quelques jours, là où une approche classique aurait pris trois semaines juste pour cadrer les features, les backtests et le tuning.

Le point à garder en tête, c’est qu’une API n’est pas gratuite opérationnellement. Je vérifie toujours ces sujets avant de la mettre dans un flux sérieux :

  • La clé API et la gestion des accès.
  • Le coût à l’usage, surtout si les prévisions tournent souvent.
  • La latence, parce qu’un appel externe peut ralentir un produit.
  • La confidentialité des données envoyées au service.
  • Le monitoring en production, pour suivre erreurs, dérive et qualité.
pip install nixtla

import pandas as pd
from nixtla import NixtlaClient

client = NixtlaClient(api_key="VOTRE_CLE_API_ICI")

df = pd.DataFrame({
    "ds": pd.date_range("2024-01-01", periods=100, freq="D"),
    "y": range(100)
})

forecast = client.forecast(
    df=df,
    h=30,
    time_col="ds",
    target_col="y"
)

print(forecast)

Chronos fonctionne autrement. L’idée, simplifiée, c’est de transformer les valeurs d’une série en tokens, un peu comme un modèle de langage transforme du texte en morceaux, puis de produire une distribution de prévision. Une distribution, ça veut dire qu’on ne sort pas juste une valeur future, mais aussi une idée de l’incertitude.

Son avantage, c’est le contrôle. Je peux tester localement ou dans mon cloud, mieux maîtriser la dépendance fournisseur, et garder les données sensibles dans mon environnement. La contrepartie est réelle : il faut gérer l’infrastructure, parfois un GPU, le packaging, les performances, puis tout le temps de mise en production.

pip install autogluon.timeseries

import pandas as pd
from autogluon.timeseries import TimeSeriesDataFrame, TimeSeriesPredictor

df = pd.DataFrame({
    "item_id": "serie_1",
    "timestamp": pd.date_range("2024-01-01", periods=100, freq="D"),
    "target": range(100)
})

train_data = TimeSeriesDataFrame.from_data_frame(
    df,
    id_column="item_id",
    timestamp_column="timestamp"
)

predictor = TimeSeriesPredictor(
    prediction_length=30,
    target="target",
    eval_metric="MASE"
)

predictor.fit(train_data, presets="medium_quality")
predictions = predictor.predict(train_data)

print(predictions)
Critère TimeGPT Chronos
Vitesse de démarrage Très rapide via API Plus lente, setup à prévoir
Contrôle Limité par le service Plus élevé avec poids ouverts
Coût À l’usage Infrastructure et maintenance
Données sensibles À vérifier contractuellement Plus facile à garder en interne
Niveau technique requis Faible à moyen Moyen à élevé

Comment choisir sans se tromper ?

Je choisirais rarement un outil de prévision en partant de la techno. Je pars du problème, de l’équipe, du délai, et surtout du niveau de confiance attendu. Sur le terrain, le bon modèle, c’est souvent celui qu’on arrive à expliquer, surveiller et maintenir sans transformer chaque prévision en mini-projet de recherche.

Mon choix simple serait celui-ci. Prophet pour comprendre. NeuralProphet pour mieux capter les effets récents, les lags, les promotions ou les covariables. TimeGPT pour aller vite si passer par une API est acceptable. Chronos pour explorer les foundation models, ces modèles pré-entraînés sur beaucoup de séries temporelles, avec plus de contrôle et des poids ouverts.

Je le résume comme ça :

  • Si le métier demande une explication claire, je privilégie Prophet. On peut parler tendance, saisonnalité, jours fériés, ruptures. C’est lisible.
  • Si les valeurs récentes comptent beaucoup, je teste NeuralProphet. Par exemple ventes avec promos, stock, météo, trafic, effet retard. Les lags, c’est simplement le fait d’utiliser les anciennes valeurs pour prédire les prochaines.
  • Si le délai est très court, je teste TimeGPT. On envoie les données, on récupère une prévision. C’est pratique, mais il faut accepter la dépendance API et regarder le coût.
  • Si l’équipe data veut garder la main, je regarde Chronos. C’est plus technique, mais intéressant si vous voulez tester les modèles pré-entraînés sans rester enfermé dans une boîte noire propriétaire.
Critère Prophet NeuralProphet TimeGPT Chronos
Besoin d’explication Très bon Moyen Faible Moyen
Mise en place rapide Bonne Bonne Très bonne Moyenne
Données sensibles Bon en local Bon en local À vérifier côté API Bon si déployé en interne
Forte dépendance aux valeurs récentes Moyen Très bon Bon Bon
Budget API limité Très bon Très bon Attention Bon selon infra
Équipe data avancée Bon Bon Moyen Très bon

Le point que je vois souvent oublié, c’est la mesure sur vos vraies données. Un modèle excellent sur un benchmark public peut être moyen sur une série bruitée, rare, très saisonnière, ou pleine de ruptures. J’ai déjà vu un modèle sophistiqué se faire battre par une moyenne glissante sur certaines familles de produits. Ça calme tout le monde, et c’est très sain.

Après le déploiement, le sujet continue. Il faut suivre la dérive, les erreurs par segment, les alertes, le réentraînement, et comparer régulièrement au naïf baseline, c’est-à-dire une prévision toute simple comme “demain ressemble à aujourd’hui” ou “ce mois ressemble au même mois l’an dernier”.

Ma recommandation terrain est simple. Je commence par une baseline simple, je teste deux modèles maximum au départ, je documente le coût de production, puis je complexifie seulement si le gain business est réel.

Et maintenant, lequel je testerais en premier ?

Je ne choisirais pas Prophet, NeuralProphet, TimeGPT ou Chronos sur une promesse de performance. Je regarderais d’abord votre contrainte réelle. Besoin d’expliquer la prévision à un comité métier ? Prophet reste très solide. Besoin de capter les effets récents ? NeuralProphet mérite le test. Besoin d’aller vite sans trop configurer ? TimeGPT est pratique. Besoin de contrôler davantage le modèle et le déploiement ? Chronos devient intéressant. Le bon réflexe, c’est de comparer proprement, sur vos données, avec un horizon utile. Vous gagnez du temps, de la clarté et une décision plus fiable.

FAQ

  • Quelle est la différence entre Prophet et NeuralProphet ?
    Prophet est surtout apprécié pour sa simplicité, sa lisibilité et sa gestion des tendances, saisonnalités et événements. NeuralProphet reprend cette logique mais ajoute des composants neuronaux, l’autoregression, les lags et les covariables. Je le vois comme un pont entre un modèle explicable et un modèle plus flexible.
  • TimeGPT remplace-t-il Prophet ?
    Pas forcément. TimeGPT peut accélérer un test grâce à son API et à son approche pré-entraînée, mais Prophet garde un vrai intérêt quand vous voulez maîtriser le modèle localement et expliquer facilement les composants de la prévision. Le choix dépend surtout de vos contraintes de coût, de données et de déploiement.
  • Chronos est-il adapté à une entreprise classique ?
    Oui, si l’équipe a assez de maturité technique pour tester, déployer et maintenir un modèle de type foundation model. Chronos devient intéressant quand vous voulez éviter une dépendance totale à une API et garder plus de contrôle. Il demande en revanche plus d’effort qu’un outil clé en main.
  • Quel outil choisir pour prévoir des ventes ?
    Je commencerais souvent par Prophet comme baseline lisible, puis je testerais NeuralProphet si les ventes récentes, les promotions ou des variables externes ont beaucoup d’impact. TimeGPT peut être très utile pour aller vite sur un POC. Chronos se justifie si vous explorez une approche plus avancée et industrialisable.
  • Faut-il toujours choisir le modèle le plus précis ?
    Non. La précision compte, mais elle ne suffit pas. Il faut aussi regarder l’explicabilité, le coût, la vitesse, la scalabilité, la confidentialité des données et la facilité de maintenance. Un modèle un peu moins précis mais stable, compréhensible et simple à déployer peut être meilleur pour le business.

 

 

A propos de l’auteur

Je suis Franck Scandolera, expert et formateur en Tracking avancé server-side, Analytics Engineering, automatisation No Low Code avec n8n, intégration de l’IA en entreprise et SEO GEO. Avec mon agence webAnalyste et l’organisme Formations Analytics, j’accompagne des équipes qui veulent transformer leurs données en décisions utiles, pas en tableaux de bord décoratifs. J’ai travaillé avec des références comme Logis Hôtel, Yelloh Village, BazarChic, la Fédération Française de Football ou Texdecor. Si vous voulez cadrer un projet data, IA ou automatisation proprement, contactez-moi.

Retour en haut
AIgenierie