Category Archives: Health

ARX Anonymization Tool: guia pràctica per anonimitzar dades de recerca

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.

Recerca & MetodologiaTemps de lectura: ~15 minNivell: IntermediEina: ARX v3.9+

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
Per on començar

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.

Exemple real: l’atac de combinació

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
Atenció: la trampa de k-anonimitat

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:

Càlcul
# 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 ✓
Recomanació per a dades clíniques

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.

Exemple: calcular t per a una classe
# 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

  1. Descarregar — Ves a arx.deidentifier.org/downloads i baixa el ZIP de l’última versió estable.

  2. Verificar Java — Obre un terminal i escriu java -version. Necessites Java 11+. Si no el tens, descarrega’l de adoptium.net (gratuït).

  3. 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ó.

  1. Importar el CSVFile > Import Data > CSV File. Configura separador (coma), encoding (UTF-8) i activa “First row contains header”.

  2. 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.

  3. 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*** → *).

  4. 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).

jerarquia_cp.csv — exemple
# 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.

Consell pràctic

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
Combinació recomanada per a dades clíniques
  • 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ïtament

Referè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.

Dieta de Salut Planetària (Planetary Health Diet)

Una dieta per a la salut planetària

Alguna de la informació aportada està extreta del llibre de Marta Peirano “Contra el futuro. Resisténcia Ciudadana frente al feudalismo climático” (detalls aquí) que és la segona part del llibre que també recomano “El enemigo conoce el sistema” (detalls aquí)

Fets (extrets del llibre):

  • La industrialització de la cadena alimentaria és la causa principal de la obesitat i de les anomenades MNT o Malalties No Transmissibles (cardiovasculars i respiratòries, càncer, diabetis..) que són el responsable del 71% de les morts que es produeixen en el mon. La dieta mata a més gent que el sexe sense protecció, l’alcohol, les drogues i el tabac junts.
  • És un dels principals agents de degradació mediambiental al llarg de tota la seva cadena de subministrament, incloent la producció, el processament i la distribució.
  • La carn i els làctics proporcionen el 18% de les calories i el 37% de les proteïnes de la nostre dieta, però utilitzen el 83% del sol o es veuen el 90% de l’aigua
  • La comissió EAT-Lancet és un consorci de 37 científics de prestigi mundial, procedents d’institucions de diversos països i disciplines que es van proposar establir un consens científic.
  • La composició de la dieta va tenir 2 fases:
    • 1a Fase: Nutricionistes van revisar literatura científica actualitzada per dissenyar una dieta bàsica i completa, composada de productes integrals, no refinats
    • 2a Fase: Els científics del clima van apartar tot allò que causés emissions en excés o pèrdua de biodiversitat, o grans extraccions d’aigua potable, terra fèrtil
  • La Dieta Planetària consisteix bàsicament en fruites, verdures, nous, cereals en gra i llegums i proteïna vegetal amb un consum moderat de proteïna animal (un filet o hamburguesa de 100g per setmana o dues racions de pollastre o peix)
  • Destaca la importància de reduir el consum de carn per que la seva producció contribueix massa a la desigualtat econòmica i a la degradació de la salut pública i mediambiental, a més de consumir molts més recursos que els que retorna
  • Una investigació publicada en Nature va calcular que, només amb el que el 54% dels països més rics del mon seguissin la dieta planetària, el resultat seria equivalent a que tots els països complissin el 100% dels propòsits de la COP26
  • Implementar la dieta planetària comportaria estalviar-nos fer servir enormes quantitats de terreny que es podrien fer servir per capturar carboni de la atmosfera
  • Els humans som més intel·ligents, més sans i més feliços quan tenim accés a entorns naturals. El fenomen es coneix coma “biofilia”

La Dieta Planetària te el seu origen en un informe elaborat per la comissió EAT-Lancet com a part d’un informe publicat a la revista científica The Lancet el 16 de gener de 2019.

A part d’una millor dieta i millorar la nostre salut disminuint riscos de malalties com la diabetis o càncers, la dieta de salut planetària també te un gran impacte en el medi ambient i en assolir un sistema d’alimentació sostenible a nivell planetària que permetria alimentar a 10.000 milions de persones al 2050.

Teniu més informació a: