Comprendre la différence entre anonymisation et pseudonymisation.
Repérer les identifiants directs, quasi-identifiants et variables sensibles dans un jeu de données.
Mettre en œuvre, en R, un pipeline simple d’anonymisation combinant plusieurs techniques.
Discuter le compromis entre protection de la vie privée et utilité statistique.
⚠️ Ce document a une vocation pédagogique. Il ne remplace pas un avis juridique ni les lignes directrices officielles de votre organisme.
1. Contexte et définitions
On distinguera dans la suite :
Donnée personnelle : information se rapportant à une personne physique identifiée ou identifiable.
Anonymisation : transformation de données personnelles de façon à ce qu’il soit raisonnablement impossible d’identifier une personne, directement ou indirectement, de manière irréversible.
Pseudonymisation : remplacement des identifiants directs par des codes (pseudonymes). La ré-identification reste possible si l’on dispose de la clé de correspondance.
Identifiants directs : nom, prénom, adresse postale complète, numéro d’assurance maladie, etc.
Quasi-identifiants : variables qui, combinées, peuvent identifier une personne (âge, sexe, code postal, date d’hospitalisation, etc.).
Variables sensibles : diagnostics médicaux, revenus, résultats scolaires, etc.
Dans la pratique, un processus d’anonymisation combine en général :
le filtrage ou la transformation des identifiants directs ;
la réduction d’information sur les quasi-identifiants (généralisation, suppression, agrégation) ;
éventuellement l’ajout de bruit ou la publication d’agrégats plutôt que de micro-données.
2. Création et exploration du jeu de données fictif
Nous créons un petit jeu de données de patients fictifs d’un hôpital.
# A tibble: 8 × 7
nom prenom sexe age code_postal diagnostic poids
<chr> <chr> <fct> <dbl> <chr> <chr> <dbl>
1 Martin Anne F 34 G1K 7P4 Diabète 62
2 Gagnon Louis M 51 G1V 1A2 Hypertension 81
3 Tremblay Sophie F 28 G1C 3T8 COVID-19 70
4 Roy Marc M 79 G1B 4S9 Asthme 74
5 Ouellet Julie F 45 G1X 2P1 Diabète 55
6 Bouchard Pierre M 38 G1S 2B3 Cancer 90
7 Lavoie Marie F 60 G1P 4M2 Hypertension 68
8 Fortin Luc M 52 G1E 5T7 Dépression 80
Niveau de protection très élevé : on ne voit plus aucune ligne individuelle.
Utilité : bonne pour des analyses descriptives, plus limitée pour les modèles complexes sur données individuelles.
9. Synthèse des versions du jeu de données
tibble(nom_objet =c("donnees","donnees_sans_id","donnees_pseudo","donnees_gen","donnees_perturbees","donnees_agregees" ),description =c("Jeu de données original, nominatif.","Identifiants directs retirés, quasi-identifiants encore très précis.","Pseudonymisation avec un identifiant artificiel.","Généralisation des quasi-identifiants.","Généralisation + bruit sur le poids.","Statistiques agrégées par diagnostic et tranche d'âge." ))
# A tibble: 6 × 2
nom_objet description
<chr> <chr>
1 donnees Jeu de données original, nominatif.
2 donnees_sans_id Identifiants directs retirés, quasi-identifiants encore tr…
3 donnees_pseudo Pseudonymisation avec un identifiant artificiel.
4 donnees_gen Généralisation des quasi-identifiants.
5 donnees_perturbees Généralisation + bruit sur le poids.
6 donnees_agregees Statistiques agrégées par diagnostic et tranche d'âge.
On peut relier chaque version à un niveau (très simplifié) de protection et d’utilité :
Version
Protection vie privée
Utilité pour l’analyse individuelle
donnees
Très faible
Très élevée
donnees_sans_id
Faible
Très élevée
donnees_pseudo
Faible à modérée
Très élevée
donnees_gen
Modérée
Élevée
donnees_perturbees
Modérée à élevée
Moyenne à élevée
donnees_agregees
Très élevée
Faible pour les analyses individuelles
10. Checklist pratique (version simple)
Avant de partager un jeu de données contenant des personnes :
Lister les variables et les classer en identifiants directs, quasi-identifiants, variables sensibles.
Retirer les identifiants directs du jeu qui sera partagé.
Décider du niveau de généralisation acceptable (tranches d’âge, agrégation géographique, etc.).
Évaluer le risque de réidentification (par exemple, vérifier si des combinaisons de quasi-identifiants sont uniques).
Ajouter du bruit si nécessaire sur certaines variables numériques.
Se demander si la diffusion d’agrégats serait suffisante pour l’objectif.
Documenter toutes les transformations appliquées et conserver cette documentation dans le dossier de projet.
Vérifier la conformité avec les politiques internes et le cadre légal pertinent avant diffusion.
11. Références (pour aller plus loin)
CNIL. Anonymisation of personal data: definitions and techniques. 2020.
Commission d’accès à l’information du Québec. Règlement sur l’anonymisation des renseignements personnels. 2024.
Norton Rose Fulbright. Anonymisation des renseignements personnels : comment faire pour procéder en toute conformité. 2024.
Sweeney, L. k-anonymity: a model for protecting privacy. International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, 2002.
El Emam, K. Protecting Privacy Using k-Anonymity. Journal of the American Medical Informatics Association, 2008.