Tot el que necessites saber sobre k-anonimitat, l-diversity i t-closeness, amb exemples reals pas a pas i consells per començar a fer servir l’eina d’anonimització ARX.
Si treballes amb dades de pacients, enquestes o qualsevol dataset que contingui informació personal, anonimitzar correctament és una obligació legal i ètica. ARX és l’eina de referència en recerca clínica i biomèdica, gratuïta i de codi obert. Aquesta guia t’explica com funciona i com usar-la des de zero.
Què és ARX i per a qui és útil?
ARX (ARX Data Anonymization Tool) és una eina de codi obert desenvolupada per Florian Prasser i col·laboradors, dissenyada específicament per a la anonimització de dades tabulars. Té interfície gràfica (GUI) i API per a Java, cosa que la fa accessible tant per a investigadors sense coneixements de programació com per a equips de data science que volen automatitzar el procés.
És especialment popular en:
- Recerca clínica i biomèdica: datasets de pacients, histories clíniques, estudis epidemiològics
- Ciències socials: enquestes, dades socioeconòmiques, censos
- Tesis doctorals que treballen amb dades personals i han de complir amb el RGPD
- Publicació de datasets oberts en repositoris institucionals o Zenodo
Descarrega ARX gratuïtament a arx.deidentifier.org/downloads. Requereix Java 11 o superior. A la mateixa pàgina trobaràs un projecte d’exemple que pots obrir directament per explorar la interfície.
Pas 1: Classificar els atributs del dataset
Abans de tocar cap paràmetre, cal entendre que no totes les columnes del teu dataset creen el mateix risc. ARX distingeix cinc tipus d’atributs:
| Tipus a ARX | Risc | Acció automàtica | Exemple típic |
|---|---|---|---|
| Identifying | Molt alt | Elimina la columna del dataset de sortida | DNI, número de SS, nom complet |
| Quasi-identifying (QI) | Mig (perillós en combinació) | Generalitza o suprimeix | Edat, codi postal, sexe |
| Sensitive | Alt per inferència | Protegit pel model de privacitat triat | Diagnòstic, salari, addicció |
| Insensitive | Negligible | Es manté sense canvis | Medicació genèrica, grup sanguini |
| Response variable | Context-dependent | Tractat com insensible per defecte | Variable de resultat clínic |
Per què els quasi-identificadors son tan perillosos?
Latanya Sweeney va demostrar l’any 2000 que combinant data de naixement + sexe + codi postal, es pot identificar el 87% de la població dels EUA. A Espanya, la situació és similar: el codi postal de 5 dígits combinat amb edat i sexe pot ser suficient per identificar individus en zones poc poblades.
Imagina que publiques una llista d’altes hospitalàries amb edat, codi postal i sexe (sense nom ni DNI). Un atacant pot creuar aquesta llista amb el cens electoral del mateix districte i identificar la majoria de pacients. Eliminar els identificadors directes no és suficient.
Pas 2: Entendre els models d’atac
ARX no aplica una protecció genèrica: et demana que decideixis contra quin perfil d’atacant vols protegir-te. Són tres models ben diferenciats:
| Model | L’atacant sap que… | Quan usar-lo |
|---|---|---|
| Prosecutor | Un individu concret és al dataset i vol confirmar-ho | Dades molt sensibles, obligació legal de protegir individus específics |
| Journalist | Hi ha algú al dataset que compleix un perfil i vol trobar qui és | Publicació de dades obertes o en repositoris acadèmics |
| Marketer | El dataset existeix i vol re-identificar el màxim d’individus | Publicació pública massiva, datasets per a ML |
Per a recerca doctoral amb dades clíniques, el mínim recomanable és el model Journalist. Si el dataset conté dades especialment sensibles (salut mental, VIH, addiccions), considera el model Prosecutor.
Pas 3: k-Anonimitat — el fonament
La k-anonimitat és el model de privacitat base que gairebé sempre aplicaràs. La idea és senzilla: cap individu ha de poder distingir-se de com a mínim k-1 altres persones en el dataset.
Per aconseguir-ho, ARX generalitza els quasi-identificadors (substitueix valors exactes per rangs o categories més amples) fins que cada combinació de QI apareix almenys k vegades. A aquests grups se’ls anomena classes d’equivalència.
Exemple pràctic: de valors exactes a classes d’equivalència
Tenim 6 pacients. Columnes QI: Edat, Codi Postal, Sexe. Atribut sensible: Diagnòstic.
| ID | Edat orig. | Edat (k=2) | Codi Postal orig. | CP (k=2) | Sexe | Diagnòstic |
|---|---|---|---|---|---|---|
| P001 | 29 | 20–30 | 08001 | 080** | F | Ins. cardíaca |
| P002 | 31 | 20–30 → 30–40 | 08001 | 080** | F | Hipertensió |
| P003 | 45 | 40–50 | 08010 | 080** | M | Fibril. auricular |
| P004 | 47 | 40–50 | 08010 | 080** | M | Fibril. auricular |
| P005 | 52 | 50–60 | 08015 | 080** | F | Cardiopatia isq. |
| P006 | 54 | 50–60 | 08015 | 080** | F | Hipertensió |
Ara P001 i P002 formen una classe (si generalitzem prou l’edat), P003 i P004 en formen una altra, i P005 i P006 una tercera. Amb k=2 cap individu es pot distingir de l’altre dins de la seva classe.
Quant val de k has de triar?
| k | Protecció | Pèrdua d’info | Recomanat per a… |
|---|---|---|---|
| k = 2 | Mínima | Baixa | Ús intern en consorcis tancats |
| k = 3–5 | Bona | Moderada | Publicació acadèmica estàndard |
| k ≥ 10 | Alta | Alta | Requisits HIPAA, dades molt sensibles |
Si tots els membres d’una classe d’equivalència tenen el mateix diagnòstic, un atacant pot inferir-lo sense necessitat d’identificar ningú. Exemple: si tots els homes de 40–50 anys de Barcelona del dataset han estat hospitalitzats per fibril·lació auricular, saber que algú pertany a aquest grup ja revela el diagnòstic. Aquí entra l-diversity.
Pas 4: l-Diversity — protegir el diagnòstic
La l-diversity afegeix un requisit sobre l’atribut sensible: dins de cada classe d’equivalència, hi ha d’haver almenys l valors ben representats de l’atribut sensible. Això evita que un atacant pugui inferir el diagnòstic, addicció o qualsevol altra dada sensible fins i tot sense saber qui és l’individu.
Les tres variants principals
- Distinct l-diversity — la més simple: almenys l valors distints per classe. Suficient quan tots els valors de l’atribut sensible son igualment sensibles.
- Entropy l-diversity — la més robusta: l’entropia de Shannon de la distribució de l’atribut sensible ha de ser ≥ log(l). Detecta casos on un valor domina fins i tot si n’hi ha l de distints.
- Recursive (c, l)-diversity — intermèdia: el valor més freqüent no pot concentrar massa quota relativa respecte als altres.
Càlcul d’entropy l-diversity: exemple pas a pas
Tenim una classe amb 4 pacients i diagnòstics: Fibril·lació auricular (×2), Cardiopatia isquèmica (×1), Hipertensió (×1). Comprovem si satisfà entropy 2-diversity:
# Distribució de l'atribut sensible a la classe
Fibril. auricular: 2/4 = 0.50
Cardiopatia isq.: 1/4 = 0.25
Hipertensió: 1/4 = 0.25
# Entropy de Shannon
H = -(0.50 × log₂(0.50)) - (0.25 × log₂(0.25)) - (0.25 × log₂(0.25))
H = 0.50 + 0.50 + 0.50 = 1.50 bits
# Requisit per a Entropy 2-diversity: H ≥ log₂(2) = 1.0
1.50 ≥ 1.0 → SATISFET ✓Usa Entropy l-diversity amb l = 3 per a datasets clínics on hi ha diagnòstics molt prevalents (com la hipertensió o la diabetis). La variant Distinct pot ser insuficient si un diagnòstic concentra el 70–80% dels registres d’una classe.
Pas 5: t-Closeness — l’últim escut
Fins i tot amb l-diversity, pot passar que una classe d’equivalència tingui una distribució de diagnòstics molt diferent de la distribució global del dataset. Si un diagnòstic molt rar a la població general és molt freqüent en una classe concreta, un atacant que sap que algú pertany a aquella classe pot inferir el diagnòstic amb alta probabilitat.
t-Closeness exigeix que la distribució de l’atribut sensible dins de cada classe no difereixi en més de t de la distribució global. La distància s’avalua amb Earth Mover’s Distance (EMD).
Intuïció visual
Pensa-ho com un embut d’arena: la distribució global és la forma que té la platja (30% IC, 20% FA, 20% HTA, 30% Cardiopatia). Cada classe és un got ple d’arena. t-Closeness exigeix que la forma de l’arena al got s’assembli prou a la de la platja.
# Classe CE-6: {P008, P009} — homes 60–70 anys
# Diagnòstics: Cardiopatia isquèmica (50%), Ins. cardíaca (50%)
Distribució global de referència:
IC: 30% FA: 20% HTA: 20% Card.Isq: 30%
Distribució local CE-6:
IC: 50% FA: 0% HTA: 0% Card.Isq: 50%
# EMD = suma de diferències absolutes / 2
|50-30| + |0-20| + |0-20| + |50-30| = 80
EMD = 80 / 2 = 0.40
Compleix t=0.20? NO (0.40 > 0.20)
Compleix t=0.50? SÍ (0.40 ≤ 0.50)Quin valor de t triar?
| Valor de t | Protecció | Pèrdua d’info | Cas d’ús |
|---|---|---|---|
| t = 0.05–0.10 | Molt alta | Molt alta | Dades extremadament sensibles (VIH, salut mental) |
| t = 0.15–0.20 | Alta | Moderada–Alta | Dades clíniques per a publicació pública |
| t = 0.25–0.35 | Moderada | Baixa–Moderada | Dades de recerca per a ús intern |
Pas 6: Usar la GUI d’ARX pas a pas
ARX organitza el flux de treball en quatre perspectives visuals. Les recorres en ordre: Configuració → Exploració → Utilitat → Riscos.
Instal·lació en 2 minuts
-
Descarregar — Ves a
arx.deidentifier.org/downloadsi baixa el ZIP de l’última versió estable. -
Verificar Java — Obre un terminal i escriu
java -version. Necessites Java 11+. Si no el tens, descarrega’l deadoptium.net(gratuït). -
Executar — Fes doble clic sobre
arxanonymizer.jar. Si no s’obre, des del terminal:java -jar arxanonymizer.jar
Perspectiva 1: Configuració
Aquí defineixes el dataset i les jerarquies de generalització.
-
Importar el CSV — File > Import Data > CSV File. Configura separador (coma), encoding (UTF-8) i activa “First row contains header”.
-
Assignar tipus — Clic dret sobre cada columna > Attribute type. Marca els QI com a Quasi-identifying, el diagnòstic com a Sensitive, els identificadors directes com a Identifying.
-
Crear jerarquies — Per a cada QI, clic dret > Edit Hierarchy. Per a l’edat usa “Order-based” amb intervals de 10 anys. Per al codi postal usa “Masking-based” (080** → 08*** → *).
-
Configurar el model — Panel dret > Add criterion. Afegeix k-Anonymity (k=5), Distinct l-Diversity (l=3, atribut=Diagnòstic) i opcionalment t-Closeness (t=0.20).
# Format: valor_original, nivell1, nivell2, supressió_total
08001,080**,08***,*
08002,080**,08***,*
08010,080**,08***,*
08015,080**,08***,*
08020,080**,08***,*
08030,080**,08***,*Perspectiva 2: Exploració (el lattice)
ARX construeix un lattice de transformacions: un graf on cada node és una combinació possible de nivells de generalització. Els nodes verds compleixen els criteris, els vermells no. El node recomanat (millor utilitat + privacitat) apareix ressaltat.
Si el lattice té molts nodes vermells, el teu dataset és massa petit o els QI massa específics per a la k escollida. Prova a reduir k en un nivell o a augmentar la granularitat de les jerarquies (intervals d’edat de 20 anys en lloc de 10).
Perspectiva 3: Utilitat
Comprova que el dataset anonimitzat segueix sent vàlid per a les teves anàlisis. ARX mostra histogrames comparatius (original vs. anonimitzat) i les mètriques clau:
| Mètrica | Valor ideal | Alerta si… |
|---|---|---|
| Non-Uniform Entropy Loss | < 30% | > 50%: les anàlisis estadístiques poden ser invàlides |
| Registres suprimits | < 10% | > 20%: revisa les jerarquies o redueix k |
| Mida mitja de les classes | Pròxima a k | Molt major que k: possible sobreprotecció |
Perspectiva 4: Riscos
Aquí és on demostres al CEI i als revisors que la protecció és real. ARX calcula els tres riscos de re-identificació:
| Indicador | Model | Acceptable per publicació |
|---|---|---|
| Highest risk (individual) | Prosecutor | < 0.33 |
| Success rate (re-id) | Journalist | < 0.20 |
| Expected risk | Marketer | < 0.10 |
Resum i checklist final
Abans de donar per acabat el procés d’anonimització, comprova cada punt d’aquesta llista:
| # | Acció | Documentat? |
|---|---|---|
| 1 | Atributs classificats i validats amb el director/a i el CEI | ☐ |
| 2 | Jerarquies de generalització creades i exportades com a CSV | ☐ |
| 3 | Model de privacitat configurat: k ≥ 5 + l ≥ 3 + t ≤ 0.20 | ☐ |
| 4 | Pèrdua d’informació < 30% i registres suprimits < 10% | ☐ |
| 5 | Riscos de re-identificació dins dels llindars acceptables | ☐ |
| 6 | Fitxer .arx guardat per a reproductibilitat | ☐ |
| 7 | Secció metodològica d’anonimització documentada | ☐ |
- k = 5 (k-anonimitat) per a publicació acadèmica estàndard
- Entropy 3-diversity per a diagnòstics amb distribució no uniforme
- t = 0.20 (t-closeness) per a dades amb diagnòstics rars o molt prevalents
- Model d’atacant: Journalist com a mínim per a publicació oberta
Continua aprenent sobre privacitat de dades en recerca
Tens el document complet amb exemples guiats, exercicis i plantilles, lliure per descarregar.
Descarregar la guia completa (Word) Descarregar ARX gratuïtamentReferències: Prasser F. et al. (2020). Flexible Data Anonymization Using ARX. Software: Practice and Experience. · Sweeney L. (2002). k-Anonymity: A Model for Protecting Privacy. International Journal of Uncertainty. · Li N. et al. (2007). t-Closeness: Privacy Beyond k-Anonymity and l-Diversity. IEEE ICDE. · Machanavajjhala A. et al. (2007). l-Diversity: Privacy Beyond k-Anonymity. ACM TKDD.