Comment la Data Science révèle les secrets d'une campagne bancaire
"Qui contacter ? Quand ? Et surtout... pourquoi certains clients disent OUI ?"
C'est la question à laquelle une banque portugaise a tenté de répondre entre 2008 et 2010, en passant plus de 45 000 appels téléphoniques. Nous allons y répondre chiffres à l'appui.
Le contexte: Une banque, 45 211 clients, et un mystère
Imaginez la scène. Nous sommes en 2008, en pleine crise financière mondiale. Une banque portugaise cherche à convaincre ses clients de placer leur argent dans des dépôts à terme. La stratégie retenue ? Des campagnes de marketing direct par téléphone, menées sur deux ans, de mai 2008 à novembre 2010.
À la fin, le bilan est posé sur la table : 45 211 appels passés, 5 289 souscriptions obtenues, soit seulement 11,7 %. La banque a mobilisé d'importants moyens humains pour un rendement décevant. Mais la vraie question n'est pas combien d'appels ont été passés. C'est à qui fallait-il vraiment téléphoner.
C'est exactement ce que nous avons cherché à découvrir en appliquant les outils de la statistique multivariée sur le célèbre Bank Marketing Dataset de l'UCI (Cortez & Moro, 2012) :
- Statistiques univariées et détection d'outliers
- Tests de corrélation (Pearson, Spearman, Chi-deux, V de Cramér)
- Analyses factorielles : AFC et ACM
- Réduction de dimension : ACP
- Clustering : CAH, K-Means, K-Médoïdes
Chaque méthode apporte une pièce du puzzle. Ensemble, elles révèlent quelque chose que personne n'aurait vu à l'œil nu.
Partie I : Ce que les chiffres cachent au premier regard
La trahison des moyennes
Avant toute modélisation, on inspecte les données. Et là, le premier piège se dévoile immédiatement.
La variable balance (solde annuel moyen du client) affiche une médiane de 448€ mais une moyenne de 1 362€. L'écart est gigantesque. Comment est-ce possible ?
Réponse : 4 729 clients (10,5 % du dataset !) présentent un solde supérieur à 3 462€, avec un maximum à 102 127€. Ces quelques clients fortunés tirent la moyenne vers le haut comme un mensonge statistique. Si on construisait une stratégie marketing basée sur la "moyenne", on ciblerait un profil fantôme qui ne représente presque personne.
Variable | Médiane | Moyenne | Outliers | Skewness
-----------|----------|----------|----------|----------
age | 39 ans | 40,9 ans | 487 (1%) | 0,69
balance | 448 € | 1 362 € | 4 729 !! | 8,36
duration | 180 s | 258 s | 3 235 7% | 3,14
La distribution de balance avec un skewness de 8,36 est un cas d'école. La règle IQR est formelle :
- Borne inférieure : −1 962€
- Borne supérieure : 3 462€
- Tout ce qui dépasse = aberrant statistiquement
Stratégie de traitement retenue : log-transformation après décalage pour
balance(distribution trop asymétrique), winsorisation pourdurationetage. La variablepdays(−1 = "jamais contacté") est recodée à 0 avant normalisation.
La variable duration raconte une autre histoire. La plupart des appels durent moins de 5 minutes, mais certains dépassent l'heure. Ces appels très longs correspondent souvent à des clients qui posent beaucoup de questions... avant de signer. Ils sont précieux, mais leur présence déforme les calculs de distance dans les algorithmes de clustering. Winsorisation au seuil Q3+1,5×IQR = 643 secondes.
Partie II : Le prédicteur que personne n'aurait deviné
Chi-deux et la variable qui change tout
J'ai calculé le test du Chi-deux entre chaque variable catégorielle et la variable cible y. Et parmi toutes les corrélations testées, une variable sort du lot avec une force statistique écrasante : poutcome le résultat de la campagne de marketing précédente.
Résultat χ² = 4 391,51 | p ≈ 0 | V de Cramér = 0,31 (FORTE liaison)
Pour comprendre pourquoi c'est si puissant, il suffit de regarder les taux de souscription par modalité :
| poutcome | Clients | Taux souscription | vs référence |
|---|---|---|---|
| success | 1 511 | 64,7 % | ▲ ×5,5 |
| other | 1 840 | 16,7 % | ▲ +5pp |
| failure | 4 901 | 12,6 % | ≈ référence |
| unknown | 36 959 | 9,2 % | ▼ −2,5pp |
Un client qui a souscrit lors de la dernière campagne a 5,5 fois plus de chances de souscrire à nouveau. 64,7 % contre 11,7 % en moyenne. Ce n'est pas une coïncidence, c'est une signature comportementale. Ces clients ont déjà franchi le pas psychologique. Ils font confiance à leur banque. Ils comprennent le produit.
À l'inverse, les 36 959 clients unknown (jamais contactés avant dans ce contexte) affichent seulement 9,2 %. Autrement dit, contacter quelqu'un sans historique de relation est statistiquement moins efficace que la moyenne globale.
L'AFC (Analyse Factorielle des Correspondances) confirme visuellement cette structure : poutcome=success se positionne à l'extrémité droite de l'axe F1, exactement là où y=yes se trouve. Ces deux modalités sont si proches dans l'espace factoriel qu'elles se confondent presque.
L'ACM Voir tout le paysage à la fois
L'ACM appliquée sur 9 variables catégorielles simultanément donne une vue d'ensemble impossible à obtenir autrement.
L'axe F1 (7,75 % d'inertie) révèle une opposition structurelle entre deux profils de clients :
Côté positif (+F1) = profil souscripteur :
-
education=tertiary(CTR=17,1 %) 1er contributeur -
job=management(CTR=13,0 %) -
poutcome=success(CTR=6,1 %) -
y=yes(CTR=8,3 %)
Côté négatif (−F1) = profil non-souscripteur :
-
job=blue-collar(CTR=11,4 %) -
contact=unknown(CTR=8,6 %) -
education=primary(CTR=6,3 %)
L'écart entre les centroïdes des deux groupes sur F1 est de 0,61 significatif et cohérent avec l'analyse précédente. F1 est littéralement un "axe de propension à souscrire".
Insight clé : L'ACM nous dit que le niveau d'éducation, la catégorie professionnelle et le résultat de la campagne précédente sont les trois variables qualitatives les plus prédictives. Et ces trois variables convergent vers le même profil.
Partie III : ACP : réduire 7 dimensions à 3 sans perdre l'essentiel
Le critère de Kaiser et les 3 composantes qui comptent
Avec 7 variables numériques (age, balance, day, duration, campaign, pdays, previous), visualiser directement les données est impossible. L'ACP projette ces 7 dimensions dans un espace réduit en maximisant l'information conservée.
Le critère de Kaiser (λ ≥ 1) retient 3 composantes :
PC1 : λ = 1,509 → 21,6 % de variance
PC2 : λ = 1,155 → 16,5 % de variance
PC3 : λ = 1,097 → 15,7 % de variance
PC4 : λ = 0,975 → exclue
→ Total retenu : 53,7 %
Ce que les cercles de corrélations nous disent
Les cercles de corrélations sont les graphiques les plus riches de cette analyse. Ils montrent comment chaque variable originale se "projette" sur les axes factoriels.
Sur le plan PC1 × PC2 :
-
pdaysetprevious(flèches orange) pointent fortement vers la droite → PC1 = "Historique de contact" -
campaignetday(flèches bleues) pointent vers le haut-gauche → PC2 = "Intensité de la campagne en cours" -
duration(flèche verte) pointe vers le bas → durée d'appel longue = peu de relances
Sur le plan PC1 × PC3 (non montré dans l'article) :
-
ageetbalance(flèches violettes) dominent PC3 → PC3 = "Profil financier du client"
La révélation :
ageetbalancesont quasi-absents de PC1 et PC2. Cela signifie que le profil financier d'un client est presque indépendant de son comportement face aux campagnes. L'âge et le solde bancaire ne prédisent pas grand chose. C'est l'historique de contact qui prédit.
Les souscripteurs dans le plan factoriel
En projetant les 45 211 individus dans le plan PC1×PC2 et en les colorant selon leur décision :
- Centroïde
y=no: PC1 = −0,065 - Centroïde
y=yes: PC1 = +0,493
L'écart est clair, même si les deux nuages se superposent fortement. Les variables numériques seules ne suffisent pas à séparer parfaitement les groupes — mais elles indiquent la bonne direction.
Partie IV : Trois portraits de clients qui changent tout
Le dendrogramme raconte une histoire
La CAH (Classification Ascendante Hiérarchique) appliquée sur les 3 composantes principales donne un résultat net. Le dendrogramme révèle un grand saut entre h ≈ 30 et h ≈ 43, suggérant de couper à k = 3 clusters.
k=2 : silhouette = 0,43 — trop grossier
k=3 : silhouette = 0,25 — meilleur équilibre
k=4 : silhouette = 0,26 — marginal
Les 3 profils révélés
Le graphique synthèse des profils CAH est celui qui concentre le plus d'information utile de toute l'analyse.
** Cluster 1 : Les "Fidèles" (n = 376, 18,8 %)**
Taux souscription : 22,0 % (+10,3 pp vs référence)
Âge moyen : 41 ans
Solde moyen : 1 529 €
Durée appel : 251 s
pdays moyen : 231 jours (contact précédent établi)
Ces clients ont déjà répondu à une campagne précédente. La banque les connaît, eux connaissent la banque. Chaque conversation est productive. Ce sont vos meilleurs clients potentiels — et paradoxalement, ils ne représentent que 18 % du portefeuille.
** Cluster 2 : Les "Sur-sollicités" (n = 745, 37,3 %)**
Taux souscription : 5,0 % (−6,7 pp vs référence)
Âge moyen : 36 ans
Solde moyen : 543 €
Durée appel : 186 s
pdays moyen : −1 (jamais contacté avant)
campaign moy. : 3,9 appels dans cette campagne
Jamais contactés avant cette campagne, mais rappelés 4 fois en moyenne. Les appels sont courts — le client raccroche vite. Le taux de 5 % est bien en-dessous de la référence. Plus vous les appelez, plus vous gaspillez des ressources. C'est le cluster "stop".
** Cluster 3 : Les "Matures Aisés" (n = 879, 43,9 %)**
Taux souscription : 14,0 % (+2,3 pp vs référence)
Âge moyen : 46 ans
Solde moyen : 2 047 €
Durée appel : 347 s
Clients plus âgés, plus aisés, appels plus longs. Pas de contact récent mais réceptifs. Un segment à travailler avec un message adapté à leur maturité financière, sécurité, rendement garanti, transmission de patrimoine.
Ce que ça donne concrètement 3 stratégies marketing
| Cluster | Potentiel | Stratégie | Actions |
|---|---|---|---|
| C1 — Fidèles | ÉLEVÉ | Priorité absolue | Relance personnalisée, offre exclusive, rappel historique |
| C2 — Sur-sollicités | FAIBLE | Réduire les contacts | Pause 6 mois, changer de canal |
| C3 — Matures aisés | MOYEN | Ciblage adapté | Message sécurité/patrimoine, appel unique bien préparé |
Estimation de gain : Le Cluster 2 représente 13 716 clients avec un taux de 6,2 %. Réduire leur fréquence de contact de moitié représente ~6 800 appels économisés par campagne, pour un impact négligeable sur les souscriptions.
Quelques décisions techniques qui méritent une explication
Pourquoi Spearman et pas Pearson ?
Aucune des 5 variables numériques ne suit une loi normale (Shapiro-Wilk, p ≪ 0,05 pour toutes). previous affiche un skewness de 41,85 sa distribution est quasi-nulle sauf pour quelques pics. Pearson supposerait une distribution normale et une relation linéaire : les deux conditions sont violées. Spearman, basé sur les rangs, est la seule option robuste.
Pourquoi K-Médoïdes en plus de K-Means ?
balance a un maximum de 102 127€ pour une médiane de 448€. K-Means calcule des moyennes le centroïde C2 monte à 2 542€ alors que 75 % des clients ont balance < 1 428€. Ce centroïde ne représente personne. K-Médoïdes utilise des individus réels comme centres immunisés contre les outliers par construction.
# K-Means : centre = moyenne (point virtuel)
centroide_C2 = X_cluster2.mean() # déformé par balance=102127€
# K-Médoïdes : centre = individu réel (minimise la somme des distances)
medoide_C2 = X_cluster2[argmin(sum(distances))] # reste dans la zone dense
Pourquoi la CAH sur les composantes ACP ?
Appliquer la CAH directement sur 7 variables brutes amplifierait les effets des outliers de balance et duration. Travailler sur les 3 composantes normalisées et décorrélées produit des clusters plus stables et interprétables. C'est une pratique standard en data science exploratoire.
Le stack technique
# Les bibliothèques essentielles
import pandas as pd # manipulation des données
import numpy as np # calculs numériques
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats # tests statistiques (Shapiro, Pearson, Chi²)
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
from scipy.cluster.hierarchy import linkage, dendrogram, fcluster
import prince # AFC et ACM — pip install prince
Tout le code tourne en Python 3.12 dans un Jupyter Notebook, avec uniquement des bibliothèques open source.
Ce que j'ai appris au-delà des formules
Ce projet était mon devoir de fin de cours en Statistiques Multivariées, mais il m'a appris des choses qui dépassent largement le cadre académique.
1. La convergence des méthodes est votre meilleur allié. Quand 5 méthodes indépendantes pointent toutes dans la même direction poutcome comme prédicteur dominant c'est le signal le plus fiable que vous puissiez avoir.
2. La significativité statistique ≠ l'importance pratique. Avec n = 45 211, une corrélation r = 0,015 est statistiquement significative (p = 0,002). Mais r = 0,015 explique... 0,02 % de la variance. Ne confondez jamais les deux.
3. Les graphiques sont la seule vérité universelle. Un tableau de valeurs propres, ça ne parle qu'aux statisticiens. Un dendrogramme avec un grand saut visible, ça parle à tout le monde. Investissez dans la visualisation.
4. Nettoyer les données n'est pas optionnel. La log-transformation de balance et la winsorisation de duration ont changé radicalement la qualité des clusters obtenus. Des données brutes bruyantes donnent des segments flous. Des données traitées donnent des profils actionnables.
Conclusion
Au début de cet article, la question était simple : qui contacter, et pourquoi ?
La réponse est maintenant chiffrée et actionnable :
Concentrez vos efforts sur les clients avec un historique de contact positif (poutcome≠unknown). Arrêtez de harceler les nouveaux clients sans historique. Laissez les clients qui posent des questions finir leur raisonnement.
Ces conclusions émergent de la convergence de 5 méthodes statistiques indépendantes. Ce n'est pas une opinion. Ce n'est pas une intuition. C'est ce que 45 211 lignes de données nous disent quand on leur pose les bonnes questions.
C'est ça, la puissance de la statistique multivariée.
Si cet article vous a été utile, un like ou un commentaire est toujours apprécié !
Des questions sur l'implémentation ? Les commentaires sont ouverts.
#datascience #python #statistics #machinelearning #clustering #pca #banking #frenchdev
Reginald Victor — Étudiant en Science des Données & IA | 2026
Top comments (0)