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.
Muchas veces se bromea con que la energía de fusión comercial siempre está a cincuenta años vista; aunque los más optimistas prefieren decir que siempre está a veinte años vista. Así se decía hace cincuenta años, y hace veinte años, y se sigue diciendo hoy. De hecho, mi propia estimación es que la ruta hacia la energía fusión con ITER+IFMIF+DEMO+PROTO acabará con los primeros reactores comerciales (si todo va bien) alrededor de 2070 (que está a unos cincuenta años vista). ¿Cuál es la razón? «Es la economía, estúpido» (the economy, stupid, la famosa frase de la campaña electoral de Bill Clinton en 1992). La investigación, el desarrollo y la innovación en energía de fusión siempre han estado infrafinanciados. Y no solo lo saben y lo afirman los científicos, también los políticos. Pero una cosa es saberlo y otra muy diferente poner un arreglo. Mientras el motor de la política sean los resultados a cuatro o cinco años vista, la energía de fusión nunca será alcanzada. Nunca. Si de verdad queremos que la energía de fusión revolucione nuestro mundo tenemos que apostar de forma rotunda por una vía rápida hacia la fusión.