Petite anecdote sur les archives numériques : ce projet a vu le jour en janvier 2025. Puis, comme beaucoup de projets parallèles quand on jongle avec plusieurs choses à la fois, il a tranquillement pris la poussière dans mes brouillons pendant que je m’attelais à d’autres quêtes. C’est en fouillant récemment dans mes drafts que je suis retombé dessus et que j’ai décidé de finaliser la rédaction.

Bonus nostalgie : à l’époque, j’avais aussi décidé de faire quelque chose d’inhabituel pour moi — tout coder en R au lieu de me réfugier dans mon confortable écosystème Python. Pourquoi ? Par curiosité. Par défi. Et peut-être aussi parce que j’aime bien me compliquer la vie.

Voyager dans le temps à travers les données est une forme de divination moderne. En ouvrant les archives de l’enquête nationale indonésienne de 1987, je n’ai pas seulement trouvé des chiffres. J’ai découvert des récits de vie, des choix personnels et des dynamiques sociales figées dans le temps.

Dans cette quête, je vous emmène avec moi pour transformer ces archives en un outil de compréhension statistique. Nous allons voir comment l’alchimie de la régression multinomiale permet de comprendre — et de tenter de prévoir — les forces qui guident les choix contraceptifs de milliers de femmes.

Parce que oui, même les décisions les plus intimes peuvent être modélisées. Et non, ce n’est pas aussi glauque que ça en a l’air.

L’Appel de la Donnée : Le Contexte

La planification familiale est bien plus qu’une question de santé publique ; c’est un miroir de la société. En Indonésie, à la fin des années 80, le choix d’une méthode contraceptive était influencé par une multitude de forces invisibles : l’éducation, la religion, le niveau de vie, et même l’exposition aux médias.

En parcourant les archives de l’UCI Machine Learning Repository, je suis tombé sur ce dataset de 1987 — l’Enquête Nationale Indonésienne sur la Prévalence des Méthodes Contraceptives. 1473 femmes mariées, 10 variables, 3 choix possibles. Le genre de dataset parfait pour s’exercer sur des techniques statistiques classiques.

Le défi que je me suis lancé : tout faire en R. Pas de Python. Pas de scikit-learn. Pas de mes outils habituels. Juste l’écosystème statistique pur : nnet::multinom, ggplot2, les tests du Chi-carré, les odds ratios, toute la panoplie.

Quelque part entre le calcul des p-values et l’interprétation des coefficients, je me suis pris au jeu. Ce qui devait être un simple exercice technique est devenu une véritable exploration sociologique.

L’objectif est devenu clair :

  • Comprendre les forces invisibles qui guident ces choix
  • Valider ces intuitions par des tests de robustesse (Chi-carré, ANOVA, VIF)
  • Construire un modèle multinomial capable d’anticiper la décision d’une femme mariée face aux trois sentiers possibles : aucune méthode, méthodes à court terme, ou méthodes à long terme

Et accessoirement, voir jusqu’où je pouvais pousser une analyse complète en R sans céder à la tentation de basculer sur Python.

Le Grimoire des Variables

Le jeu de données CMC (Contraceptive Method Choice) est notre parchemin sacré. Il contient 1473 instances, chacune décrivant une trajectoire de vie à travers 10 variables clés :

  • L’âge et la progéniture : Le socle démographique. Spoiler : plus vous avez d’enfants, plus vous voulez arrêter d’en faire. La logique est implacable xd.
  • L’éducation (Épouse & Mari) : Le levier de la connaissance. Parce que oui, l’éducation change tout.
  • La religion et le travail : Les racines culturelles et économiques qui façonnent les décisions.
  • Le niveau de vie et les médias : L’environnement social, cette force silencieuse mais omniprésente.

Dix variables. Trois catégories de réponse. Une infinité de combinaisons possibles. C’est là que la magie statistique entre en jeu.

L’Alchimie Statistique : Exploration et Validation

Avant de modéliser, il faut purifier les données et tester leur cohérence. C’est l’étape de l’EDA (Exploratory Data Analysis), ou comme je l’appelle affectueusement : “La Phase où l’on découvre si nos hypothèses tiennent la route” (Spoiler : elles tiennent rarement lol surtout quand il s’agit de données socio-culturelles).

Les Tests d’Association

Nous avons invoqué le Test du Chi-carré pour les variables catégorielles. Les résultats ont été sans appel : l’éducation et le niveau de vie sont étroitement liés au choix contraceptif. Quand votre p-value est si petite qu’elle nécessite une notation scientifique, vous savez que vous tenez quelque chose.

Résultats des tests Chi-carré :

  • Éducation de la femme : Chi² = 140.46, p < 2.2e-16
  • Éducation du mari : Chi² = 73.95, p = 6.3e-14
  • Niveau de vie : Chi² = 62.20, p = 1.6e-11
  • Religion : Chi² = 21.62, p = 2.0e-05
  • Exposition aux médias : Chi² = 31.57, p = 1.4e-07

En revanche, le statut professionnel de la femme (p = 0.075) est apparu comme un facteur plus discret, presque marginal dans cette décision précise. Une nuance importante qui mérite d’être notée.

La Vérification de la Colinéarité

Dans le monde des statistiques, trop de ressemblance entre les variables est un piège vicieux. En calculant le VIF (Variance Inflation Factor), nous nous sommes assurés que nos variables restaient indépendantes.

Tous les VIF < 2. Pas de colinéarité problématique. Le modèle peut respirer tranquille.

C’est un peu comme organiser un dîner : vous ne voulez pas inviter cinq personnes qui vont toutes raconter exactement la même histoire.

Le Rituel de Modélisation : La Régression Multinomiale

Le cœur du projet réside dans l’utilisation d’une Régression Logistique Multinomiale via le package nnet::multinom. Contrairement à une régression classique qui prédit une seule chose, celle-ci permet de jongler avec trois catégories de réponses sans ordre hiérarchique imposé.

Pensez-y comme à une boule de cristal à trois facettes. Chaque facette révèle une probabilité différente, et ensemble, elles forment une vision complète du futur.

Les Enseignements des Odds Ratios

C’est ici que l’analyse révèle ses trésors. Les odds ratios nous ont dévoilé des vérités fascinantes sur les dynamiques sociales indonésiennes de 1987 :

L’Éducation comme Superpouvoir

Une femme avec un niveau d’éducation très élevé est 15 fois plus susceptible d’opter pour une méthode à long terme par rapport à une absence de contraception. Quinze fois.

Pour être précis :

  • Éducation niveau 2 → OR = 2.86 (méthodes long terme)
  • Éducation niveau 3 → OR = 6.35
  • Éducation niveau 4 → OR = 15.98

C’est une progression exponentielle. L’éducation n’est pas juste un facteur parmi d’autres — c’est le facteur déterminant.

L’Impact de la Famille

Le nombre d’enfants agit comme un catalyseur puissant : OR = 1.43 pour les méthodes long terme. Plus vous en avez, plus vous voulez vous assurer de ne pas en avoir d’autres. La logique reproductrice inversée en action lol.

Le Niveau de Vie comme Accélérateur

Les femmes avec un niveau de vie très élevé sont 3,4 fois plus susceptibles d’utiliser des méthodes long terme :

  • Niveau de vie 2 → OR = 1.91
  • Niveau de vie 3 → OR = 2.68
  • Niveau de vie 4 → OR = 3.39

La contraception n’existe pas dans un vide social. Les ressources économiques influencent profondément l’accès et le choix des méthodes.

Les Contre-Intuitions

Quelques résultats ont bousculé mes attentes :

  • L’âge : Plus une femme vieillit, moins elle utilise de contraceptifs (OR = 0.95). Probablement parce que la fertilité diminue naturellement.
  • La religion : Les femmes musulmanes sont moins susceptibles d’utiliser des contraceptifs (OR = 0.57), reflétant les normes culturelles et religieuses.
  • L’éducation du mari : Effet complexe et non linéaire. Un mari très éduqué favorise les méthodes court terme mais réduit l’adoption du long terme.

Performance et Réflexions : Les 52%

Parlons maintenant de l’éléphant dans la pièce : la performance prédictive.

Exactitude du modèle : 52,34%

Oui, un peu plus qu’un pile ou face. Et avant que vous ne pensiez “c’est nul”, laissez-moi contextualiser.

Pourquoi cette Performance ?

Plusieurs facteurs entrent en jeu :

1. La nature de l’exercice
Ce projet était avant tout une exploration statistique, pas une compétition Kaggle. L’objectif n’était pas de construire le prédicteur ultime, mais de comprendre les relations entre variables socio-démographiques et choix contraceptifs.

2. Les limites du R classique
J’ai volontairement choisi de rester dans l’écosystème R “pur statistique” : pas de random forests, pas de XGBoost, pas d’ensembles models. Juste une bonne vieille régression multinomiale avec nnet::multinom. C’est élégant, interprétable, mais pas optimisé pour la performance brute je pense.

3. La complexité humaine
Les décisions contraceptives sont influencées par des facteurs psychologiques, relationnels, culturels et personnels qu’aucun dataset de 1987 ne peut capturer. On modélise des êtres humains, pas des systèmes déterministes.

4. Variables manquantes
L’accès réel aux services de santé, les discussions de couple, les normes communautaires locales, les expériences personnelles… autant de fantômes absents de nos données mais cruciaux dans la vraie vie.

Ce que le Modèle Révèle Malgré Tout

Même avec 52% d’exactitude, le modèle a parfaitement accompli sa mission analytique :

  • Identifié les facteurs clés : éducation (x15 !), niveau de vie (x3.4), nombre d’enfants
  • Quantifié les effets : chaque odds ratio raconte une histoire sociologique
  • Validé statistiquement : tous les tests (Chi², ANOVA, VIF) confirment la robustesse de l’analyse
  • Révélé des nuances : l’effet complexe de l’éducation du mari, le rôle marginal du travail de la femme

L’analyse est solide. Les insights sont précieux. La prédiction est modeste.

Et Si Je le Refaisais ?

Avec le recul, voici ce que je tenterais pour améliorer la performance :

Option Python : Refaire le projet avec scikit-learn, tester des algorithmes plus sophistiqués (Random Forest, Gradient Boosting), optimiser les hyperparamètres. J’ai l’intuition qu’on pourrait grappiller 20-25% d’exactitude.

Feature engineering : Créer des interactions entre variables (éducation × niveau de vie, âge × nombre d’enfants), des variables dérivées, des encodages plus fins.

Approche ensembliste : Combiner plusieurs modèles, utiliser du stacking, explorer des architectures plus complexes.

Mais honnêtement ? L’analyse actuelle accomplit déjà l’essentiel. Les odds ratios racontent une histoire claire. Les tests statistiques valident la robustesse. Les insights sociologiques sont là.

Parfois, un modèle à 52% qui vous apprend quelque chose vaut mieux qu’un modèle à 85% qui reste une boîte noire.

Les Enseignements du Sage

Ce projet m’a rappelé une vérité fondamentale : la technique n’est rien sans l’interprétation.

Sortir de ma zone de confort Python pour plonger dans R a été instructif. J’ai redécouvert l’élégance des tests statistiques classiques, la rigueur de l’approche “analyse d’abord, prédiction ensuite”. C’est une philosophie différente du machine learning moderne, mais tout aussi précieuse.

Derrière chaque ligne de code R se cache une réalité humaine. Les données ne parlent pas d’elles-mêmes. Elles ont besoin d’un traducteur. D’un conteur. De quelqu’un qui sait que 15x, c’est le chiffre de l’éducation qui change des vies.

Est-ce que j’aurais pu faire mieux avec Python et des outils plus modernes ? Probablement.
Est-ce que l’analyse aurait été plus riche ? Pas sûr.
Est-ce que j’ai appris quelque chose ? Absolument.

Si vous souhaitez plonger dans le code source de cette quête ou reproduire l’analyse par vous-même, le dépôt GitHub est ouvert à tous les explorateurs de données :

Lien vers le Dépôt GitHub : Statistics CMC Project

[!TIP] Pour une exploration technique totale, n’hésitez pas à consulter le rapport PDF complet inclus dans le dossier modeling/ du dépôt. Il contient tous les graphiques, tous les tests statistiques détaillés, toutes les matrices de corrélation et les équations. C’est dense, c’est rigoureux, et c’est le genre de document qui plaît aux statisticiens old-school.

La statistique peut prédire bien des choses. Elle peut vous dire qu’une femme très éduquée avec 4 enfants et un bon niveau de vie a 15 fois plus de chances d’utiliser une contraception long terme.

Elle peut quantifier l’impact de la religion, mesurer l’effet de l’âge, décomposer les influences socio-économiques.

Mais elle ne peut pas tout capturer. Parce qu’au bout du compte, derrière chaque choix contraceptif, il y a une femme, une histoire, un contexte.

Et ça, aucun modèle — même à 95% d’exactitude — ne pourra jamais complètement le saisir.

Pour aller plus loin

Ressources sur la régression multinomiale et les statistiques en R :

Datasets et archives :

Lectures sur les déterminants sociaux de la santé :

Outils pour aller plus loin :


Dans ce voyage à travers les chiffres et les vies, on aura vu que les données ne sont jamais neutres. Elles portent en elles les traces d’une époque, d’un contexte, de mille décisions individuelles agrégées en tendances.
Un modèle à 52% nous rappelle l’humilité. Parce que derrière chaque coefficient, il y a une femme, un choix, une histoire que nos équations ne captureront jamais complètement.
Et peut-être que c’est là la vraie magie : non pas prédire parfaitement, mais comprendre profondément.
Magiquement vôtre,

M. Royce