Procesos de Anonimización
ATENCIÓN, ESTA PÁGINA ES PARTE DE UN TRABAJO EN CURSO, Y POR TANTO SUS CONTENIDOS SE ENCUENTRAN SUJETOS A REVISIONES Y CAMBIOS SIN PREVIO AVISO.
Esta página describe el proceso de anonimización definido para los datasets del Núcleo Común que contengan información personal a proteger.
1. ¿Qué es la anonimización?
Contrariamente a la creencia popular, anonimizar un conjunto de datos no consiste sólo en evitar la identificación eliminando los denominados identificadores directos, es decir, aquellos datos que normalmente identifican unívocamente a un individuo, como puedan ser el DNI, o el nombre y apellidos.
Es también necesario (y mucho más complejo), tratar de evitar la reidentificación, es decir, poder identificar los datos de un individuo dentro del dataset partiendo de un subconjunto de datos conocidos, que en este caso se denominan identificadores indirectos y que pueden ser sencillos de obtener por parte de un potencial “atacante”. Ejemplos clásicos de identificadores indirectos son la fecha de nacimiento, el género, el código postal, el nivel de estudios , la profesión, etc.
El riesgo es que conocer un subconjunto de identificadores indirectos nos permita reindentificar al individuo al no haber otros individuos dentro del dataset con los mismos valores; por ejemplo: si en un dataset al que se le hayan quitado los identificadores directos, solo hay una persona con fecha de nacimiento “A”, género “B”, código postal “C”, nivel de estudios “D” y sector profesional “E”, esa persona quedará reidentificada y por tanto sus demás datos expuestos al potencial atacante.
2. Procesos de anonimizacion
Para evitar la reindentificación se pueden utilizar diferentes técnicas. A continuación se explican las que se han utilizan en el “Núcleo Común”. En la definición de cada dataset se especifica si está o no anonimizado.
2.1 Permutación de bloques de variables en grupos
Este proceso de anonimización consiste en agrupar los registros en base a grupos y las variables en base a bloques de coherencia, y permutar, dentro de cada grupo de registros, los bloques de variables.
2.1.1 Proceso
Paso 1: Separar el dataset en grupos
Elegimos un subconjunto de variables pivote, que serán las variables que determinarán la formación de los grupos.
Separamos el dataset en tantos grupos como valores combinados distintos tengan las variables pivote
El proceso de anonimización garantiza que se conservará la relación entre las variables pivote y todas las demás, por lo que es importante seleccionar variables que se usen habitualmente como criterio de agregación en los análisis del dataset.
Paso 2: Permutar aleatoriamente los bloques de variables entre los registros de cada grupo
Asignamos las variables restantes (no pivote) a bloques de coherencia, de tal forma que las variables cuya relación queramos preservar estén en el mismo bloque de coherencia.
Permutamos aleatoriamente los bloques de coherencia de los registros del grupo.
Cada bloque de coherencia debe contener variables cuyos valores están especialmente relacionados o son dependientes entre sí, y garantiza que esos valores estarán siempre juntos tras el proceso de permutación, es decir, conservarán su coherencia interna.
Paso 3: Detectar y desidentificar grupos pequeños
De los grupos generados en el Paso 1, identificamos aquellos con un nº de registros menor a un valor umbral “X”.
En esos grupos, se eliminan los valores de las variables pivote que sean necesarios para “disolverlos” en un grupo mayor y menos identificable.
2.1.2 Diferencial de privacidad
El diferencial de privacidad es la especificación y cuantificación de la información que se ha perdido respecto al dataset original como efecto colateral del proceso de anonimización.
En el caso del proceso de anonimización que nos ocupa, la pérdida de información viene de los siguientes dos efectos:
2.1.2.1 Pérdida de información relacional
Al permutar los registros se pierde una parte de la información relacional, esto es, datos que antes estaban asociados entre sí por pertenecer al mismo individuo, pasan a estar disociados. Es esencial que el reutilizador entienda la información relacional que se pierde, y la información relacional que se preserva. Esto viene expresado por las dos siguientes afirmaciones:
2.1.2.2 Posible pérdida de valores en las variables pivote
Se eliminarán valores de las variables pivote que den lugar a grupos pequeños, lo que puede acarrear una pérdida de datos en estas variables (es decir, que aparezcan vacías para determinados registros)
2.1.3 Ejemplo
Imaginemos el siguiente dataset de partida, que contiene información sobre estudiantes matriculados en un determinado año académico y en una determinada Universidad. Para poder ilustrar mejor los efectos de la anonimización, los valores que corresponden al mismo individuo han sido coloreados del mismo color:
TITULACIÓN | CENTRO | AÑO NACIMIENTO | GÉNERO | CRÉDITOS MATRICULADOS | CRÉDITOS PRESENTADOS | CRÉDITOS SUPERADOS |
---|---|---|---|---|---|---|
A | A | A | HOMBRE | 36 | 24 | 24 |
A | A | B | MUJER | 48 | 48 | 48 |
A | A | C | HOMBRE | 16 | 0 | 0 |
A | A | B | HOMBRE | 60 | 36 | 36 |
A | A | A | MUJER | 16 | 0 | 0 |
A | B | C | MUJER | 24 | 18 | 12 |
B | C | C | MUJER | 36 | 36 | 36 |
B | C | B | MUJER | 12 | 12 | 12 |
En este ejemplo, sólo con conocer - por ejemplo - los identificadores indirectos “año de nacimiento” y “género” podríamos reidentificar a bastantes individuos: si conocemos a un determinado estudiante (hombre) de la Titulación A de esa Universidad que nació en el año C, lo puedo identificar unívocamente en el dataset, ya que no existe otro registro con esos mismo datos (tercer registro, en negrita y cursiva):
TITULACIÓN | CENTRO | AÑO NACIMIENTO | GÉNERO | CRÉDITOS MATRICULADOS | CRÉDITOS PRESENTADOS | CRÉDITOS SUPERADOS |
---|---|---|---|---|---|---|
A | A | A | HOMBRE | 36 | 24 | 24 |
A | A | B | MUJER | 48 | 48 | 48 |
A | A | C | HOMBRE | 16 | 0 | 0 |
A | A | B | HOMBRE | 60 | 36 | 36 |
A | A | A | MUJER | 16 | 0 | 0 |
A | B | C | MUJER | 24 | 18 | 12 |
B | C | C | MUJER | 36 | 36 | 36 |
B | C | B | MUJER | 12 | 12 | 12 |
la reindentificación nos ha permitido obtener información que no teníamos: que se matriculó de 16 créditos y no se presentó a ninguno. Esto ejemplifica lo que queremos evitar mediante la anonimización.
Paso 1: Separar el dataset en grupos
El primer paso para anonimizar este dataset es separarlo en grupos. Para ello debemos elegir un subconjunto de variables “pivote” cuyos valores serán los que definirán la cantidad y composición de esos grupos. Es buena práctica que las variables pivote coincidan con variables que se suelan usar como criterios de agrupación a la hora de analizar los datos del dataset que se esté anonimizando. Para el ejemplo, elegiremos las variables “TITULACIÓN” y “CENTRO”.
Esto da lugar tres grupos, a saber:
GRUPO | TITULACIÓN | CENTRO | Nº DE REGISTROS |
---|---|---|---|
1 | A | A | 5 |
2 | A | B | 1 |
3 | B | C | 2 |
El grupo 1 se compone de los 5 registros con Titulación “A” y Centro “A”:
TITULACIÓN | CENTRO | AÑO NACIMIENTO | GÉNERO | CRÉDITOS MATRICULADOS | CRÉDITOS PRESENTADOS | CRÉDITOS SUPERADOS |
---|---|---|---|---|---|---|
A | A | A | HOMBRE | 36 | 24 | 24 |
A | A | B | MUJER | 48 | 48 | 48 |
A | A | C | HOMBRE | 16 | 0 | 0 |
A | A | B | HOMBRE | 60 | 36 | 36 |
A | A | A | MUJER | 16 | 0 | 0 |
El grupo 2 se compone del único registro con Titulación “A” y Centro “B”:
TITULACIÓN | CENTRO | AÑO NACIMIENTO | GÉNERO | CRÉDITOS MATRICULADOS | CRÉDITOS PRESENTADOS | CRÉDITOS SUPERADOS |
---|---|---|---|---|---|---|
A | B | C | MUJER | 24 | 18 | 12 |
El grupo 3 se compone los dos registros con Titulación “B” y Centro “C”:
TITULACIÓN | CENTRO | AÑO NACIMIENTO | GÉNERO | CRÉDITOS MATRICULADOS | CRÉDITOS PRESENTADOS | CRÉDITOS SUPERADOS |
---|---|---|---|---|---|---|
B | C | C | MUJER | 36 | 36 | 36 |
B | C | B | MUJER | 12 | 12 | 12 |
Paso 2: Permutar aleatoriamente los bloques de variables entre los registros de cada grupo
El siguiente paso es asignar las variables restantes (las que no forman parte del “pivote”) a bloques de coherencia. Cada bloque de coherencia debe contener variables cuyos valores están especialmente relacionados o son dependientes entre sí, y garantiza que esos valores estarán siempre juntos tras el proceso de permutación, es decir, conservarán su coherencia interna. Recordemos que tras el proceso de permutación sólo se garantiza que se conservará la relación entre las variables pivote y todas las demás, y entre las variables que compartan bloque de coherencia.
Para este caso elegimos tres bloques de coherencia, compuestos por las siguientes variables:
Bloque 1:
Variable “Año Nacimiento”
Bloque 2:
Variable “Género”
Bloque 3:
Variable “Créditos Matriculados”
Variable “Créditos Presentados”
Créditos “Créditos Superados”
Esto quiere decir que, en el proceso de permutación, las tres variables relacionadas con los créditos se permutarán juntas, conservando su coherencia interna. Las variables “Año Nacimiento” y “Género”, por el contrario, sólo conservarán la coherencia con las variables “pivote” (“Estudio” y “Centro”).
Procedamos a la permutación aleatoria de los bloques de coherencia entre los registros de cada grupo:
| VARIABLES PIVOTE | BLOQUE 1 | BLOQUE 2 | BLOQUE 3 | |||
---|---|---|---|---|---|---|---|
GRUPO | TITULACIÓN | CENTRO | AÑO NACIMIENTO | GÉNERO | CRÉDITOS MATRICULADOS | CRÉDITOS PRESENTADOS | CRÉDITOS SUPERADOS |
1 | A | A | B | MUJER | 16 | 0 | 0 |
1 | A | A | A | HOMBRE | 16 | 0 | 0 |
1 | A | A | B | MUJER | 36 | 24 | 24 |
1 | A | A | C | HOMBRE | 48 | 48 | 48 |
1 | A | A | A | HOMBRE | 60 | 36 | 36 |
2 | A | B | C | MUJER | 24 | 18 | 12 |
3 | B | C | B | MUJER | 12 | 12 | 12 |
3 | B | C | C | MUJER | 36 | 36 | 36 |
Tras este paso, es importante darse cuenta de que ya no se puede afirmar que los datos de cada registro (fila) pertenezcan al mismo individuo.
Paso 3: Detectar y desidentificar grupos pequeños
El último paso consiste en detectar y desidentificar grupos pequeños, ya que normalmente la probabilidad de reidentificación por inferencia estadística es inversamente proporcional al tamaño del grupo (en este ejemplo tenemos un caso extremo de grupo de tamaño 1: bastaría con saber la titulación y el centro del estudiante del grupo 2 para reindentificarlo por completo).
Para este ejemplo identificaremos y suprimiremos los grupos de menos de 4 registros. Esto nos lleva a eliminar ( ) todos los valores de las variables pivote para los grupos 2 y 3 (que son de tamaño 1 y 2, respectivamente), “disolviéndose” ambos grupos pequeños en otro más grande y sin identificación de titulación/centro, quedando el dataset final anonimizado así:
| VARIABLES PIVOTE | BLOQUE 1 | BLOQUE 2 | BLOQUE 3 | |||
---|---|---|---|---|---|---|---|
GRUPO | TITULACIÓN | CENTRO | AÑO NACIMIENTO | GÉNERO | CRÉDITOS MATRICULADOS | CRÉDITOS PRESENTADOS | CRÉDITOS SUPERADOS |
1 | A | A | B | MUJER | 16 | 0 | 0 |
1 | A | A | A | HOMBRE | 16 | 0 | 0 |
1 | A | A | B | MUJER | 36 | 24 | 24 |
1 | A | A | C | HOMBRE | 48 | 48 | 48 |
1 | A | A | A | HOMBRE | 60 | 36 | 36 |
2 |
|
| C | MUJER | 24 | 18 | 12 |
3 |
|
| B | MUJER | 12 | 12 | 12 |
3 |
|
| C | MUJER | 36 | 36 | 36 |
Diferencial de privacidad
El diferencial de privacidad - esto es, la cuantificación de la información que hemos perdido como efecto colateral del proceso de anonimización - puede ser representado con la siguiente tabla, que especifica la pérdida de información de cada campo así como la conservación o pérdida de la relación entre variables:
| PÉRDIDA DE INFORMACIÓN | VARIABLES PIVOTE | BLOQUE 1 | BLOQUE 2 | BLOQUE 3 | ||||
---|---|---|---|---|---|---|---|---|---|
TITULACIÓN | CENTRO | AÑO NACIMIENTO | GÉNERO | CRÉDITOS MATRICULADOS | CRÉDITOS PRESENTADOS | CRÉDITOS SUPERADOS | |||
VARIABLES PIVOTE | TITULACIÓN | 37,5% |
|
|
|
|
|
|
|
CENTRO | 37,5% |
|
|
|
|
|
|
| |
BLOQUE 1 | AÑO NACIMIENTO | 0% |
|
|
|
|
|
|
|
BLOQUE 2 | GÉNERO | 0% |
|
|
|
|
|
|
|
BLOQUE 3 | CRÉDITOS MATRICULADOS | 0% |
|
|
|
|
|
|
|
CRÉDITOS PRESENTADOS | 0% |
|
|
|
|
|
|
| |
CRÉDITOS SUPERADOS | 0% |
|
|
|
|
|
|
|
La tabla de diferencial de privacidad nos indica, por ejemplo, las siguientes cosas:
El dataset anonimizado final nos permitirá realizar cualquier cálculo (recuentos, medias, máximos, mínimos, etc.) sobre cualquier variable usando como criterio de agrupación la Titulación, el Centro, o ambos.
El dataset anonimizado nos permitirá calcular, por ejemplo, la tasa de éxito (créditos superados respecto a créditos matriculados), al haberse conservado la relación entre ambas variables (puesto que ambas pertenecen al mismo bloque de coherencia, lo que se denota con un en la tabla)
El dataset anonimizado NO nos permitirá calcular, por ejemplo, la media de créditos matriculados por Género, al NO haberse conservado la relación entre las variables implicadas (“género” y “créditos matriculados” pertenecen a distintos bloques de coherencia, lo que se denota con un en la tabla)
Las variables pivote (“Titulación” y “Centro”) han perdido el 37,5% de sus valores (NOTA: en los datasets reales esta pérdida suele ser marginal)