eliya AI — For Business Decisions

Maîtriser Le Marketing Mix Model Bayésien (MMM) Avec Pymc-marketing

16 minutes estimated reading time

Fini l’attribution en boîte noire. Notre guide PyMC-Marketing vous aide à construire un MMM bayésien transparent pour maîtriser l’adstock et la saturation.

A professional data visualization dashboard showing Bayesian Media Mix Modeling (MMM) saturation curves and budget optimization results for PyMC-Marketing.

Introduction : pourquoi le Media Mix Modeling (MMM) est-il important aujourd’hui ?

Dans le paysage actuel axé sur les données, une question empêche les équipes marketing de dormir : quel est le véritable retour sur chaque dollar dépensé ?

À mesure que les réglementations sur la confidentialité se durcissent et que les parcours consommateurs deviennent plus fragmentés, l’attribution traditionnelle au « dernier clic » montre ses limites. C’est là que le Media Mix Modeling (MMM) se démarque. Il utilise des données historiques agrégées pour estimer la contribution des activités marketing à vos KPI (comme les ventes ou les conversions).

Contrairement aux méthodes simplistes, un MMM robuste prend en compte trois dynamiques essentielles du monde réel :

  • Adstock (effets de report) : l’impact d’une publicité persiste souvent pendant des jours ou des semaines après l’exposition initiale.
  • Saturation (rendements décroissants) : il existe un « plafond » d’efficacité ; au bout d’un moment, dépenser davantage génère un gain marginal plus faible.
  • Effets de base : prise en compte des facteurs hors média comme la saisonnalité, les jours fériés et la force organique de la marque.

La puissance de l’approche bayésienne

PyMC-Marketing est une bibliothèque open source de référence qui apporte la puissance des statistiques bayésiennes à l’analytics marketing. En allant au-delà de simples estimations ponctuelles, la modélisation bayésienne vous permet de :

  1. Intégrer des connaissances a priori : utiliser des données historiques ou des contraintes métier pour informer le modèle.
  2. Quantifier l’incertitude : au lieu d’un seul chiffre de ROI, vous obtenez une plage de résultats probables, rendant la prise de décision bien plus réaliste.
  3. Gagner en transparence totale : pas de « boîtes noires » — vous gardez un contrôle complet sur les hypothèses et la structure du modèle.

Dans un précédent article, nous avons exploré le MMM avec Meridian de Google. Dans cet article, nous nous concentrons sur une autre bibliothèque open source, PyMC-Marketing, en mettant en avant sa flexibilité et sa transparence à travers un exemple pratique. (Pour plus d’informations sur Meridian, consultez le site officiel)

La suite de cet article présente une analyse MMM de bout en bout implémentée dans un Jupyter Notebook, couvrant le chargement des données, la spécification du modèle, l’inférence et l’optimisation du budget. Tous les détails sont disponibles dans ce repository.

  • Visitez ce site web, pour plus d’informations sur PyMC-Marketin
  • Cet article explique la modélisation MMM bayésienne


Configuration de votre environnement

Pour démarrer cette implémentation pratique, suivez ces étapes pour configurer votre environnement Python local :

python

Ensuite, nous importons les bibliothèques principales pour la manipulation des données, la visualisation et les outils bayésiens spécialisés de PyMC-Marketing :

python

Préparation des données : construire les fondations

Un MMM de haute qualité nécessite des données de séries temporelles structurées, généralement à une granularité hebdomadaire ou quotidienne. Votre jeu de données doit inclure votre KPI (ventes), les Media Spend par canal, et les Control Variables (comme la saisonnalité ou les promotions).

Pour ce notebook, nous avons généré un jeu de données synthétique ; les détails se trouvent dans le notebook Jupyter présent dans le repository. Par simplicité, nous chargeons directement le CSV généré.

python

Analyse exploratoire des données (EDA)

Avant de modéliser, vous devez comprendre le « pouls » de vos données. Visualiser les ventes dans le temps aide à identifier les tendances et les « creux » récurrents, comme la baisse fréquente de la fin de l’été avant la reprise du T4.

python

A line chart displaying weekly sales data over a two-year period, featuring a black line for raw sales

Pour mieux comprendre les tendances des ventes, nous pouvons aussi examiner la moyenne mobile des ventes dans le temps. La moyenne mobile (la courbe bleue ci-dessous) est une technique de « lissage » utilisée pour filtrer le « bruit » hebdomadaire et révéler la direction sous-jacente de l’activité.

python
A line chart displaying moving average of sales data over a two-year period featuring a blue line that shows smoothed sales signal for 4-week moving average

Analyse des dépenses et de la corrélation

Bien que la corrélation entre les dépenses et les ventes soit un bon point de départ, elle peut être trompeuse en raison de facteurs de confusion comme la saisonnalité. Dans cet exemple, nous observons que, tandis que le canal 2 agit comme un « déclencheur de ventes » avec des pics rapides, les canaux 1 et 3 jouent un rôle de construction de marque.

python
three charts showing the correlation of marketing spend for different media channels to the sales shown in black

Construire le Media Mix Model

Nous respectons la nature temporelle du marketing en utilisant une séparation en séries temporelles, en réservant les 10 % de données les plus récentes comme « jeu de test » afin d’évaluer la façon dont le modèle prédit les performances futures.

python

chart showing data split between training set and the 10% of the test set

Le graphique ci-dessus représente l’évolution des ventes au fil du temps, le dataframe étant scindé en période d’entraînement (bleu) et période de test (orange). Nous pouvons maintenant définir les ensembles d’entraînement et de test pour la modélisation.

markdown

Définition des priors et des spécifications du modèle

La modélisation bayésienne nous permet de définir des « priors » — des croyances initiales sur la façon dont notre marketing fonctionne. Par exemple, nous utilisons une distribution HalfNormal pour l’ordonnée à l’origine afin de garantir que la contribution des ventes de base ne soit jamais négative.

Dans le code suivant, nous utilisons les parts de dépenses par canal pour mettre à l’échelle certains priors :

markdown

Nous sommes prêts à utiliser ces priors pour les coefficients de saturation dans la configuration du modèle.

markdown

Le modèle utilise un échantillonnage Markov Chain Monte Carlo (MCMC) pour estimer les valeurs des paramètres inconnus. En définissant time_varying_intercept=False et en utilisant des termes de Fourier, nous permettons au modèle d’apprendre des schémas de saisonnalité annuelle lisses et récurrents.

markdown

L’objet MMM est doté d’un ensemble de méthodes (ou fonctions) qui permettent l’algorithme d’échantillonnage MCMC.

Ajustement du modèle et diagnostics

Une fois configuré, nous lançons l’échantillonneur MCMC. C’est à ce moment-là que le modèle « apprend » à partir de vos données.

python

Contrôle de santé : R-hat et graphiques de trace

Pour faire confiance à votre modèle, vous devez vérifier la convergence.

  • Statistique R-hat : Idéalement, elle devrait être de 1.00. Toute valeur supérieure à 1,1 suggère que le modèle « erre » encore et n’a pas trouvé de réponse stable.
  • Graphiques de trace : Recherchez le motif de « chenille floue ». Cela indique que le processus d’échantillonnage a été stable et cohérent sur plusieurs exécutions.

Statistique R-hat

R-hat est une mesure mathématique indiquant à quel point les chaînes MCMC ont convergé vers une distribution a posteriori stable. Elle compare la variance entre différentes chaînes à la variance au sein de chaque chaîne. En termes plus simples, elle vous indique si l’algorithme MCMC a réellement trouvé les bonnes réponses ou s’il erre encore sans but.

Idéalement, R-hat devrait être inférieur à 1,05 et, s’il est supérieur à 1,1, vous devez alors ajuster le modèle à nouveau en essayant un target_accept différent ou en reparamétrant.

python

De plus, nous pouvons examiner R-hat avec le code suivant :

python

Montrant que les statistiques R-hat sont toutes égales à 1.

bash

Graphiques de trace

Un graphique de trace est un historique visuel du processus d’apprentissage que votre modèle a traversé pendant sa phase d’estimation. Alors que R-hat vous donne un seul chiffre pour vérifier l’état de santé, un graphique de trace vous montre le « battement de cœur » de votre modèle.

Un graphique de trace se compose généralement de deux parties pour chaque paramètre : la première est la KDE (estimation de densité par noyau), une courbe de distribution montrant où le modèle pense que la valeur se situe le plus probablement. La seconde est le graphique de trajectoire, un graphique de série temporelle qui suit le parcours des paramètres du modèle pendant le processus d’ajustement.

python

Bayesian model diagnostic plots showing four overlapping "fuzzy caterpillar" MCMC traces for the intercept and adstock parameters, indicating successful model convergence and stable sampling.


Les motifs en « chenille floue » dans les graphiques de trace à droite indiquent que le processus d’échantillonnage était stable, tandis que les courbes de densité superposées dans les graphiques à gauche montrent que le modèle est parvenu à un consensus cohérent sur plusieurs exécutions indépendantes.

Pour mieux comprendre les graphiques de trace, regardez un exemple de ce à quoi un graphique de trace ne devrait pas ressembler.

Analyse approfondie : extraire des insights actionnables

Le « pourquoi » du MMM est d’éclairer de meilleures décisions de dépenses. Nous pouvons maintenant décomposer notre KPI pour voir exactement ce qui a stimulé les ventes.

1. Répartition de la contribution

Dans ce scénario, le Baseline (Intercept) représente 40 % des ventes, ce qui indique une forte implantation organique de la marque. Parmi les médias, Channel 3 est le principal contributeur (30 %), suivi de Channel 1 (24 %).

python

stack chart showing the contribution of each media channel to the sales in marketing mix modeling MMM

python

A waterfall decomposition chart showing the percentage contribution to total sales from baseline effects (40.2%), Channel 1 (24%), Channel 2 (5.8%), and Channel 3 (30%).

2. Saturation et courbes de réponse

Les courbes « Hilltop » visualisent la relation entre les dépenses et le retour. Tous les canaux ici présentent une forme concave, ce qui signifie qu’à mesure que vous dépensez davantage, chaque dollar supplémentaire génère un retour marginal plus faible.

markdown

A plot of media response curves for three marketing channels, illustrating diminishing returns (saturation) as weekly spend increases, with shaded credible intervals showing model uncertainty.

Ces courbes de réponse directe (également appelées courbes de saturation ou « hilltop ») visualisent la relation entre les dépenses marketing et la contribution qui en résulte pour trois canaux différents. Pour en savoir plus sur le rendement décroissant, lisez cet article.

3. ROI avec intervalles de crédibilité

Contrairement aux outils traditionnels qui vous donnent un seul « chiffre de ROI », PyMC-Marketing fournit une distribution a posteriori. Par exemple, Channel 3 est un gagnant évident, car même son ROI dans le « pire des cas » est souvent meilleur que le ROI moyen des autres canaux.

python

A Bayesian posterior distribution plot for Marketing ROI per channel, showing the most probable ROI values and the 94% highest density intervals (HDI) for Channel 1, 2, and 3.

4. Part des dépenses vs. part du chiffre d’affaires

Ensuite, nous pouvons tracer les dépenses et le chiffre d’affaires pour chaque canal avec le ROAS, qui montre dans quelle mesure chaque canal contribue au chiffre d’affaires (ou aux ventes) par rapport à sa part au sein du mix marketing.

python

bar chart showing contribution of each channel to the sales versus the share of spend for the channel


5. Retour sur les dépenses publicitaires (ROAS)

Nous pouvons également examiner le ROAS avec des barres d’erreur (intervalles de crédibilité) comme suit.

python

Bar chart for ROAS or return on ad spend for each media channel. Error bars show the 90% confidence interval

Prédictions sur l’ensemble de test

Examinons maintenant comment le modèle se comporte sur les données de test ; PyMC-Marketing génère des prédictions à partir d’un modèle ajusté comme suit :

python

Ensuite, on peut visualiser ensemble l’ajustement sur l’ensemble d’entraînement et la prédiction sur l’ensemble de test comme suit :


python

line chart showing the prediction of MMM model against the actual sales for both training data in blue color and the 10% test set data in the orange color

La ligne verticale sépare la période en phases d’entraînement et de test. L’ajustement du modèle semble bon. Examinons de plus près la période de test.


python

Line chart showing actual sales for the test data set against the MMM prediction for the same time interval shown in orange color with additional 90% confidence interval as shaded organge area

Globalement, les performances du modèle semblent bonnes sur l’ensemble de test : il capture très bien la tendance, avec un MAPE sur l’ensemble de test de 0,12.

Conclusion

PyMC-Marketing transforme les données historiques en une feuille de route stratégique. En allant au-delà de simples régressions, vous pouvez :

  • Modéliser l’Adstock et la saturation avec une complexité réaliste.
  • Prendre des décisions tenant compte de l’incertitude qui reflètent le monde réel.
  • Stimuler une croissance tournée vers l’avenir grâce à l’optimisation automatisée des budgets.

Prêt à vous lancer ? Vous pouvez explorer l’intégralité du code et des notebooks d’exemple sur GitHub.

Faites évoluer votre marketing avec des solutions MMM sur mesure

Prêt à libérer le véritable potentiel de vos dépenses marketing ? Chez ELIYA, nous aidons les marques à naviguer dans la complexité en développant des solutions MMM personnalisées et sur mesure, conçues pour maximiser le ROI et optimiser chaque euro de votre budget.

Réservez une démo avec ELIYA dès aujourd’hui

FAQ

1. Qu’est-ce que le Marketing Mix Model (MMM) et pourquoi est-il essentiel pour les marques modernes ?

Le Marketing Mix Model (MMM) est une analyse statistique de haut niveau utilisée pour une mesure marketing complète. En évaluant des données agrégées historiques, le MMM quantifie l’efficacité de différents canaux marketing sur les ventes. Il est essentiel aujourd’hui, car il offre une approche respectueuse de la vie privée pour obtenir une mesure de l’impact marketing précise, sans s’appuyer sur le suivi individuel des utilisateurs ni sur les cookies.

2. Comment la modélisation bayésienne améliore-t-elle l’optimisation des dépenses marketing ?

Contrairement aux statistiques « fréquentistes » traditionnelles, le media mix modeling bayésien permet aux entreprises d’intégrer des « priors » (a priori) ou des connaissances métier existantes dans le modèle. Cela se traduit par une optimisation des dépenses marketing plus stable et plus réaliste, car le modèle peut mieux gérer la volatilité des données et fournir une plage de résultats probables plutôt qu’un seul chiffre, potentiellement trompeur.

3. Quel est le rôle de la saturation dans l’optimisation du budget marketing ?

Dans toute stratégie d’optimisation du budget marketing, comprendre la saturation est essentiel. Chaque canal finit par atteindre un point de rendements décroissants, où dépenser davantage n’entraîne pas une augmentation proportionnelle des ventes. PyMC-Marketing modélise ces courbes « Hilltop », ce qui vous permet d’identifier précisément quand arrêter d’investir sur un canal et réallouer les ressources vers un autre pour une meilleure optimisation de l’allocation marketing.

4. Le media mix modeling peut-il fournir une mesure précise de l’impact marketing pour les canaux offline ?

Oui. L’un des plus grands atouts du media mix modeling est sa capacité à mesurer simultanément l’impact des canaux digitaux et offline (comme la TV, la radio ou l’affichage/OOH). En analysant les dépenses et les résultats dans le temps, il fournit une vision holistique de la mesure marketing, garantissant que les contributions offline ne sont pas ignorées dans votre stratégie globale de croissance.

5. À quelle fréquence devrions-nous réaliser une analyse d’optimisation de l’allocation marketing ?

Alors que le MMM traditionnel était un événement annuel, des outils modernes comme PyMC-Marketing permettent des mises à jour plus fréquentes. Nous recommandons d’effectuer une optimisation de l’allocation marketing sur une base trimestrielle, voire mensuelle. Une mesure marketing régulière garantit que votre stratégie reste agile, vous permettant de vous ajuster en temps réel aux évolutions du marché et à l’activité des concurrents.

6. Pourquoi devrais-je choisir ELIYA pour mes solutions de mesure marketing ?

Chez ELIYA, nous sommes spécialisés dans le fait d’aller au-delà des logiciels « prêts à l’emploi ». Nous développons des solutions de media mix modeling sur mesure, adaptées à votre contexte spécifique et à la complexité des nuances réelles de votre activité. En nous concentrant sur une mesure précise de l’impact marketing et une optimisation du budget marketing pilotée par les données, nous permettons à votre marque de dépenser plus intelligemment et de croître plus vite.

Pour plus d’informations, veuillez visiter notre page de service Marketing Analytics

7. Qu’est-ce que PyMC-Marketing ?

PyMC-Marketing est une bibliothèque open source construite au-dessus de PyMC, conçue spécifiquement pour des tâches d’analytics marketing telles que le Media Mix Modeling (MMM), la modélisation adstock, la modélisation de saturation, et l’optimisation du budget à l’aide de méthodes bayésiennes.

PyMC-Marketing est une bibliothèque créée en utilisant le cœur de la PyMC library.

8. Quels types de modèles puis-je construire avec PyMC-Marketing ?

PyMC-Marketing prend en charge une gamme de modèles marketing, notamment :

  • Des Media Mix Models
  • Adstock et courbes de réponse de Saturation
  • MMM hiérarchique (multi-marché ou multi-marque)
  • Saisonnalité et variables de contrôle
  • Optimisation du budget basée sur les estimations a posteriori

Pour plus d’informations, nous renvoyons les lecteurs vers le dépôt GitHub de PyMC-Marketing

9. Puis-je utiliser PyMC-Marketing pour l’optimisation du budget ?

Oui. PyMC-Marketing inclut des fonctionnalités permettant d’effectuer une optimisation de l’allocation budgétaire en utilisant la distribution a posteriori des effets par canal. Cela aide à identifier le mix de dépenses qui maximise le ROI sous des contraintes réalistes.

10. Quelles sont les principales différences entre Robyn, Meridian et PyMC-Marketing ?

Bien que les trois soient des frameworks open source de premier plan pour le media mix modeling, ils répondent à des besoins techniques et à des objectifs business différents :

  • Robyn (Meta) : Développé par Meta, Robyn est principalement basé sur R et utilise le machine learning (régression Ridge) plutôt qu’une approche purement bayésienne. Il est hautement automatisé et semi-autonome, ce qui en fait un choix populaire pour les équipes orientées digital qui recherchent une entrée rapide et accessible dans la mesure de l’impact marketing.
  • Meridian (Google) : Le tout nouveau framework bayésien de Google est conçu pour s’intégrer en profondeur à l’écosystème Google, en incorporant des points de données uniques comme le volume de recherche Google et la portée/fréquence YouTube. C’est un excellent outil pour l’optimisation des dépenses marketing, en particulier pour les marques qui investissent fortement dans les plateformes publicitaires de Google. Pour une comparaison entre Meridian et Robyn, voir cet article.
  • PyMC-Marketing : En tant que bibliothèque native Python, PyMC-Marketing offre le plus haut niveau de flexibilité et de transparence. Elle permet aux data scientists de construire des modèles hautement personnalisés avec des a priori sur mesure et des paramètres variant dans le temps. Ce contrôle granulaire en fait le « gold standard » pour l’optimisation du budget marketing avancée et l’optimisation de l’allocation marketing à long terme, lorsque les nuances spécifiques à l’entreprise sont critiques pour la réussite du modèle.