Jeudi 10 octobre à 18h30
Découvrez les métiers de la data et comment vous y former

Depuis plus de trois ans, notre objectif est de permettre au plus grand nombre de se former aux métiers de la data, quelque soit votre profil. Cet évènement vous permettra de découvrir nos programmes de formation conçus pour vous permettre de vous reconvertir vers la data ou de monter en compétences !

Je m'inscris
Découvrez les métiers de la data et comment vous y former. Le jeudi 10 octobre à 18h30
Découvrez les métiers de la data et comment vous y former. Le jeudi 10 octobre à 18h30
Découvrez les métiers de la data et comment vous y former. Le jeudi 10 octobre à 18h30
Je m'inscris

Modèle Sarimax : Comment utiliser ce modèle statistique Python ?

Le modèle statistique SARIMAX est un modèle qui permet de réaliser des prédictions statistiques ultra-fiables. Voyons ensemble comment l'utiliser !

Antoine Grignola
Co-fondateur de DataBird
Mis à jour le
25/7/2024

Dans l'univers complexe et en perpétuelle évolution de la data science, le modèle statistique SARIMAX se distingue comme un phare, guidant les analystes à travers les eaux tumultueuses de la prévision des séries temporelles. 

SARIMAX, un acronyme pour Seasonal AutoRegressive Integrated Moving Average with eXogenous variables model, est l'évolution sophistiquée du célèbre ARIMA, lequel a révolutionné la modélisation des données dans le temps. Au lieu d'utiliser des variables Python traditionnelles, le modèle SARIMAX va utiliser des covariables.

Ce modèle étendu n'est pas seulement une formule ou un ensemble de règles ; c'est une boussole qui oriente les data engineers, data analysts et data scientists vers des prévisions plus précises et plus significatives. 

Quelle est donc la véritable essence de SARIMAX et comment peut-il être appliqué pour transformer des données brutes en insights prédictifs

Dans cet article, nous ne nous limiterons pas à une exploration théorique ; nous plongerons dans les eaux profondes de l'application pratique, démontrant pas à pas comment SARIMAX peut être utilisé pour analyser et prédire des phénomènes pour une période de données

Préparez-vous à naviguer à travers l'évolution du modèle SARIMAX, à découvrir comment il s'applique aux cas réels, et à comprendre pourquoi il constitue une pierre angulaire dans le domaine de la culture data. 

Tout au long de cet article, nous allons nous appuyer sur un exemple concret afin de mieux comprendre l’enjeu de cet outil : "TechGadgets", une entreprise naviguant dans le secteur compétitif du e-commerce et de la vente de produits technologiques.

L’évolution du modèle SARIMAX

Modèle ARIMA : Les bases du modèle SARIMAX

L'évolution du modèle SARIMAX commence par une compréhension approfondie de son prédécesseur, le modèle ARIMA. Imaginons le modèle ARIMA comme un outil de navigation classique, qui a aidé les navigateurs des temps anciens à cartographier les mers des données temporelles avec trois instruments principaux : l'autorégression, l'intégration et la moyenne mobile.

Autorégression (AR) est semblable à regarder derrière soi pour prédire où l'on va ensuite. Ce composant du modèle utilise la relation entre une observation et un certain nombre d'observations précédentes. C'est comme si les ventes du mois dernier avaient une influence sur les ventes de ce mois-ci.

Intégration (I) est le processus de transformation des données pour obtenir une série temporelle stable, un peu comme lisser les vagues d'un océan pour voir plus clairement le chemin sous la surface. Si les données originales montrent des tendances ou des saisonnalités, l'intégration les neutralise pour que le modèle puisse fonctionner correctement.

Moyenne Mobile (MA), d'autre part, prend en compte les anomalies ou les chocs aléatoires qui peuvent affecter les observations. Imaginez que quelque chose d'inattendu arrive, comme un événement qui provoque un pic de ventes. Ce composant aide à modéliser ces événements en observant les écarts entre les prédictions passées et les observations réelles.

Le modèle ARIMA excelle lorsque la série temporelle est "stationnaire", ce qui signifie qu'elle ne montre pas de tendances ou de variations saisonnières dans le temps. Pour "TechGadgets", utiliser le modèle ARIMA était comme établir un historique de navigation fiable basé sur les données de vente des 36 derniers mois, ce qui a permis d'ajuster les niveaux de stock et les stratégies de prix en fonction des tendances des ventes passées.

Cependant, le modèle ARIMA a ses limites : il ne tient pas compte des variations saisonnières ou des influences externes, qui peuvent être cruciales pour des prévisions précises. C'est ici que SARIMAX entre en scène, apportant de nouveaux outils pour naviguer dans ces eaux plus complexes en tenant compte de ces facteurs additionnels.

Exemple de série temporelle ARIMA en python :

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.statespace.sarimax import SARIMAX
from statsmodels.tsa.seasonal import seasonal_decompose
from statsmodels.tsa.arima.model import ARIMA

#Création de données fictives pour les ventes de TechGadgets

np.random.seed(42)  # Pour la reproductibilitén_periods = 36time_index = pd.date_range(start='2020-01-01', periods=n_periods, freq='M')sales = np.random.randint(80, 200, size=n_periods) * (1 + 0.1*np.arange(n_periods))  # tendance croissanteadvertising = np.random.randint(20, 50, size=n_periods)  # Covariable pour les dépenses publicitaires

#Simuler des données saisonnières

seasonality = 10 + 15 * np.sin(np.linspace(0, 3*np.pi, n_periods))

#Combinez les ventes avec la saisonnalité et un peu de bruit

sales = sales + seasonality + np.random.normal(10, 5, n_periods)

#Création du DataFrame

df = pd.DataFrame({'sales': sales, 'advertising': advertising}, index=time_index)

#Afficher les premières lignes du DataFrame

df.head()

#Modèle ARIMA

model = ARIMA(sales, order=(1, 1, 1))model_fit = model.fit()

#Prédictions

preds = model_fit.predict(start=1, end=n_periods)

#Création du graphique

plt.figure(figsize=(10, 6))plt.plot(time_index, sales, label='Ventes Réelles')plt.plot(time_index, preds, label='Prédictions ARIMA', color='red')plt.title('Ventes TechGadgets et Prédictions ARIMA')plt.xlabel('Date')plt.ylabel('Ventes')plt.legend()plt.show()

Exemple de visualisation de données avec ARIMA
Exemple d'un graphique utilisant le modèle prédictif ARIMA utilisant Python

Modèle SARIMA : Introduction des variations saisonnières 

Le modèle SARIMA fait évoluer ARIMA en introduisant un facteur essentiel : la saisonnalité. Cette dimension permet au modèle de reconnaître et d'intégrer les motifs récurrents qui caractérisent tant de phénomènes, qu'il s'agisse des fluctuations économiques ou des tendances de consommation. 

En ajoutant les composantes saisonnières P, D, et Q, SARIMA devient capable d'anticiper les variations périodiques avec une précision accrue, rendant les prédictions non seulement possibles mais également fiables au fil des saisons

P (Saisonnalité autorégressive) : Ce paramètre représente la partie autorégressive saisonnière du modèle. Il permet au modèle de prendre en compte les effets des valeurs passées de la série temporelle à des intervalles saisonniers. Par exemple, si vous avez des données mensuelles et que vous remarquez une tendance qui se répète chaque année, P vous aiderait à modéliser l'influence de chaque mois de décembre précédent sur le mois de décembre actuel.

D (Saisonnalité intégrée) : D correspond au nombre de différenciations saisonnières nécessaires pour rendre la série temporelle stationnaire sur une saison. C'est similaire au paramètre d'intégration (I) dans ARIMA, mais appliqué à la composante saisonnière. Si les ventes montrent une tendance croissante chaque été, différencier les données saisonnièrement peut aider à éliminer cette tendance et à obtenir une série plus stable.

Q (Moyenne mobile saisonnière) : Ce paramètre permet de modéliser l'effet des chocs aléatoires ou des anomalies saisonnières, de la même manière que le paramètre de moyenne mobile (MA) dans ARIMA, mais de façon saisonnière. Si quelque chose d'inhabituel se produit un certain mois et affecte les données (comme une campagne de marketing très réussie), Q aiderait à capturer cet effet et à l'ajuster dans le modèle pour les périodes saisonnières futures.

En passant au modèle SARIMA, "TechGadgets" a pu ajouter une couche d'analyse saisonnière, identifiant comment les ventes augmentent pendant les périodes de Noël et les événements de lancement de nouveaux produits, permettant une planification plus fine des campagnes promotionnelles.

 {{banniere-article}}

Exemple de décomposition saisonnière pour visualiser la tendance, la saisonnalité et le résidu du modèle SARIMA

decomposition = seasonal_decompose(df['sales'], model='additive', period=12)

decomposition.plot()

plt.show()

Exemple de visualisation de données avec SARIMA
Exemple d'un graphique utilisant le modèle prédictif SARIMA

Modèle SARIMAX : Apparition des covariables (facteurs externes)

Qu’est ce qu’une Covariable ?

La transition de SARIMA à SARIMAX est marquée par l'introduction de covariables, variables exogènes qui fournissent un contexte précieux. 

Une covariable peut être tout facteur externe significatif - comme des événements économiques, des variables démographiques, ou même des conditions météorologiques - qui influence la série temporelle étudiée. Ces facteurs, souvent négligés dans des modèles plus simples, sont cruciaux pour une analyse en profondeur.

En intégrant des covariables telles que les dépenses publicitaires, les lancements de produits concurrents et les changements économiques globaux, "TechGadgets" a utilisé SARIMAX pour adapter ses prévisions de ventes aux conditions changeantes du marché

Pourquoi introduire des covariables dans son analyse de données ?

Incorporer des covariables dans SARIMA, aboutissant au modèle SARIMAX, représente un progrès décisif en modélisation prédictive. Cet enrichissement permet au modèle de capter des influences extérieures subtiles, offrant une compréhension plus complète des dynamiques à l'œuvre. 

En pratique, cela signifie que SARIMAX ne se contente pas de suivre le rythme des données, mais interprète également la mélodie jouée par les facteurs externes, conduisant à des prévisions enrichies et affinées pour les décideurs et les analystes.

Avec SARIMAX, "TechGadgets" a intégré des données telles que le budget publicitaire, les lancements de nouveaux produits concurrents, et des indicateurs macroéconomiques. Cela a permis d'obtenir des prévisions plus nuancées et réactives face aux tendances du marché, influençant directement la stratégie commerciale.

Comment utiliser le modèle SARIMAX dans son analyse de données ?

Choix et préparation des données

L'application du modèle SARIMAX à l'analyse de données commence bien avant de jouer avec les paramètres du modèle ou de tracer des graphiques. Elle débute par une sélection rigoureuse et un nettoyage des données

Cette étape est critique : une série temporelle doit être rendue stationnaire pour que le modèle puisse fonctionner de manière optimale, une exigence qui peut nécessiter la différenciation des données, parfois plus d'une fois. 

De surcroît, identifier les covariables qui apporteront une valeur prédictive réelle est essentiel. Ce processus n'est pas à prendre à la légère, car il détermine la fondation sur laquelle toute l'analyse SARIMAX sera construite. 

Avant d'appliquer SARIMAX, "TechGadgets" a dû nettoyer et préparer ses données, s'assurant de la stationnarité des séries temporelles et de la pertinence des covariables choisies, telles que les indicateurs économiques et les données démographiques des clients.

Exemple de visualisation des ventes de TechGadgets en Python

plt.figure(figsize=(10, 6))

plt.plot(df.index, df['sales'], label='Ventes')

plt.plot(df.index, df['advertising'], label='Dépenses publicitaires', alpha=0.7)

plt.title('Ventes et Dépenses publicitaires de TechGadgets')

plt.xlabel('Date')

plt.ylabel('Ventes')

plt.legend()

plt.show()

Exemple de visualisation de données avec Python
Exemple de visualisation des ventes et dépenses publicitaires de TechGadgets

Configuration et ajustement du modèle 

Pour mettre en place un modèle SARIMAX, on commence par choisir avec soin comment le modèle va regarder les données de ventes passées pour prédire l'avenir. On choisit le nombre de données passées à examiner, comment lisser les tendances, et comment réagir aux changements inattendus. Ensuite, on prend en compte les motifs qui se répètent au même moment chaque année, comme une hausse des ventes pendant les vacances.

On utilise un système de notation, appelé AIC (Critère d’Information d’Akaike), pour trouver le meilleur modèle possible en essayant différentes combinaisons. L’AIC est une mesure de la qualité d'un modèle statistique

En outre, il évalue deux choses : comment le modèle s'ajuste aux données et la simplicité du modèle. L'idée est de trouver un bon équilibre entre la précision du modèle (son adéquation aux données observées) et sa complexité (le nombre de paramètres qu'il utilise). Le modèle avec le score AIC le plus bas est celui qui s'ajuste le mieux aux données sans être trop compliqué.

Après avoir préparé les données, "TechGadgets" configure le modèle SARIMAX en déterminant les paramètres AR, I, MA, ainsi que les composantes saisonnières P, D, et Q. Ils utilisent l'AIC (Critère d'Information d'Akaike) pour identifier le modèle le plus adapté. Le modèle SARIMAX est ensuite ajusté aux données de vente historiques, permettant de prédire non seulement la tendance et la saisonnalité mais aussi de prendre en compte l'impact des covariables sur les ventes futures.

Exemple de construction du modèle SARIMAX avec les ventes comme variable endogène et la publicité comme exogène en Python

model = SARIMAX(df['sales'], order=(1, 1, 1), seasonal_order=(1, 1, 1, 12), exog=df['advertising'])

results = model.fit()

#Afficher le résumé des résultats du modèle

print(results.summary())

Exemple de résultats avec SARIMAX
Exemple de résultats avec SARIMAX

Dans quels cas utiliser SARIMAX ?

Prédiction temporelle de chiffre d’affaire

Le modèle SARIMAX se révèle particulièrement performant dans le domaine des prévisions financières

Capable de déchiffrer les tendances saisonnières et de s'ajuster en fonction d'événements externes, comme les variations du marché ou des campagnes promotionnelles, SARIMAX est l'outil de choix pour les entreprises qui cherchent à anticiper leur chiffre d'affaires

Cette application du modèle permet non seulement de prévoir les ventes futures avec une précision accrue, mais également de comprendre l'impact des actions marketing sur les revenus

En utilisant SARIMAX, "TechGadgets" est capable de prévoir les ventes futures en prenant en compte non seulement la saisonnalité mais aussi l'impact des événements extérieurs, comme les périodes de soldes ou les lancements de nouveaux produits high-techs concurrents, affinant ainsi ses prévisions de chiffre d'affaires.

 

Prédiction temporelle de trafic web : SEO Forecasting

Dans l'univers compétitif du SEO, l'anticipation du trafic web peut donner aux entreprises un avantage décisif. Le modèle SARIMAX est particulièrement efficace pour cette prédiction, car il permet d'intégrer des covariables telles que les mises à jour des algorithmes des moteurs de recherche ou les actions marketing. 

Cet outil de modélisation offre aux experts SEO une vision à long terme du trafic potentiel, facilitant ainsi l'ajustement des stratégies de contenu et de référencement pour mieux engager l'audience visée.

C'est une approche similaire à celle de SEO Monitor, qui propose une fonctionnalité de prévision SEO (SEO Forecasting), permettant aux spécialistes du SEO de planifier avec précision et de maximiser l'efficacité de leurs initiatives de référencement.

À cette fin, "TechGadgets" utilise SARIMAX pour projeter les tendances de trafic web en prenant en compte des facteurs externes comme les mises à jour des algorithmes de recherche et l'impact des campagnes marketing ou encore l'apparition de nouveaux concurrents sur la SERP

Prédiction temporelle d’un pic de joueur sur un jeu en ligne

Les jeux en ligne, tels que Battlefield, Fortnite, League of Legends, et World of Warcraft, font souvent face à des défis lorsqu'il y a un afflux soudain de joueurs, particulièrement lors de la sortie de nouvelles mises à jour ou d'événements spéciaux dans le jeu. 

SARIMAX peut être utilisé pour anticiper ces pics d'activité en analysant les tendances saisonnières et les événements passés. Cette prévision aide à gérer les serveurs de manière plus efficace et à organiser des événements promotionnels pour engager davantage les joueurs.

"TechGadgets", bien qu'elle ne soit pas directement engagée dans le secteur des jeux en ligne, adopte une stratégie similaire. Elle utilise SARIMAX pour prédire les périodes de forte demande en consoles de jeux et accessoires, coïncidant avec les lancements de jeux populaires ou des mises à jour importantes.  Cette approche permet à "TechGadgets" de mieux planifier son stock et ses promotions, s'alignant sur les tendances du marché du jeu.

Pourquoi est-il important de pouvoir faire des prédictions temporelles ?

Pouvoir prévoir les coûts

Dans un marché dynamique, la capacité de prévoir avec précision les coûts futurs confère un avantage décisif. Les prédictions temporelles habilitent les entreprises à une gestion prudente des ressources, en synchronisant les dépenses avec les fluctuations anticipées de l'activité économique. C'est un élément vital pour maintenir l'équilibre budgétaire et éviter les gaspillages liés à une allocation inadéquate des fonds.

"TechGadgets" utilise les prédictions temporelles pour anticiper les besoins en inventaire et ajuster sa chaîne d'approvisionnement, ce qui lui permet de gérer de manière proactive les coûts associés aux surplus de stock ou aux ruptures de stock.

Pouvoir prévoir les bonnes infrastructures

Dans le secteur technologique, où les infrastructures doivent répondre à des besoins souvent volatils, prévoir la demande devient synonyme de survie. SARIMAX permet aux entreprises de dimensionner leurs infrastructures de manière optimale, évitant ainsi les dépenses superflues tout en garantissant la capacité de répondre à des pics imprévus de demande.

En anticipant correctement les volumes de vente, "TechGadgets" assure la disponibilité des infrastructures nécessaires, comme les capacités de serveur pour le E-Commerce, sans surinvestir, optimisant ainsi l'allocation de ses ressources.

Pouvoir prévoir une baisse de la demande

Le pouvoir de prévision offre la clairvoyance nécessaire pour anticiper les creux du marché. En prévoyant une baisse de la demande, les entreprises peuvent ajuster leur production, leurs stocks et leur stratégie marketing à temps, transformant les défis potentiels en opportunités stratégiques.

Les prévisions de SARIMAX aident "TechGadgets" à identifier les périodes de baisse de la demande pour les gadgets spécifiques, permettant de réduire la production ou d'ajuster les stratégies marketing pour maintenir l'équilibre des ventes.

Cependant, l'IA et les LLM's en général deviennent de plus en plus compétent à faire cette tâche. Notamment avec l'apprentissage non-supervisé.

Exemple de prévisions pour les 12 prochains mois en Python

forecast_steps = 12
df['forecast'] = results.get_prediction(start=-forecast_steps, end=df.index[-1],
exog=df['advertising'][-forecast_steps:]).predicted_mean

#Visualisation des ventes réelles et des prévisions

plt.figure(figsize=(10, 6))
plt.plot(df.index, df['sales'], label='Ventes réelles')
plt.plot(df.index, df['forecast'], label='Prévisions', linestyle='--')
plt.title('Prévisions des ventes de TechGadgets avec SARIMAX')
plt.xlabel('Date')
plt.ylabel('Ventes')
plt.legend()plt.show()

Prédiction des ventes avec SARIMAX
Exemple de prédiction des ventes avec le modèle SARIMAX

Quels sont les avantages de SARIMAX par rapport à ARIMA et SARIMA ? 

SARIMAX se distingue d'ARIMA et SARIMA par sa capacité à intégrer des covariables, ce qui lui confère une flexibilité supérieure et une précision prédictive renforcée

En incorporant des données externes, SARIMAX élargit le cadre analytique au-delà des modèles basés uniquement sur les données internes, ce qui se traduit par des prévisions plus complètes et plus résilientes, particulièrement dans des contextes complexes où les facteurs externes jouent un rôle prépondérant

"TechGadgets" bénéficie de la flexibilité et de la précision accrues de SARIMAX par rapport à ARIMA et SARIMA, notamment grâce à l'intégration des covariables qui reflètent des facteurs externes influençant directement les ventes de gadgets. Cela lui permet de générer des prévisions plus complètes, adaptées à la complexité de son marché.

Faites un premier pas dans la data avec nos cours gratuits
Démarrer
Difficulté :
Difficile