Documento no oficial y de circulación interna al interior de Instituto Nacional de Estadísticas con fines pedagógicos.

1 Antecedentes y definiciones previas

1.1 Descripción del microdato y particularidades

Los datos son de carácter sintéticos. Fueron generados desde los cuatro microdatos de la Encla 2019 no anonimizados (trabajadores, sindicatos, empresas y autoaplicado).

Explicitar:

  • Objetivo de la base de datos y nombre de la institución responsable del levantamiento

  • Número de variables de la base de datos y principales características

  • Número de observaciones (Unidades)

  • Estructura jerarquica (si aplica)

  • Listado de las variables cuasidentificadoras potenciales

Cargar microdato:

data <- readxl::read_excel("../input/encla data sintetica/encla2019 microdato combinado var claves.xlsx")

número de observaciones y variables:

dim(data)
## [1] 3670   25

En la data solo hay 25 variables dado que los cuatro microdatos de Encla 2019 se encuentran combinados y resumidos, solo presentando información de sus variables claves. Esta combinación se hace dado que un intruso también podría hacerla desde los microdatos a liberar, los cuáles tienen el mismo id para las empresas.

10 filas y 5 columnas de la data:

Extracto microdato sintético Encla 2019
id agrupacion_actividad tamano agrupacion_regional empl_g1_3
1236143 Q 2 3 85
1240058 P 3 3 2
1240365 G 3 6 2
1241051 A 1 3 85
1241449 K-L 4 6 85
1241697 G 3 3 85
1247708 G 4 3 85
1247893 B 1 5 85
1248994 G 1 3 85
1250480 F 1 3 85

El microdato a evaluar es una muestra de 3670 empresas que representan a 7.9437^{4} empresas de la población con 5 o más trabajadores contratados directamente.

La encuesta no tiene estructura jerárquica. Si bien existen diferencias entre unidad de observación (gerentes, dirigentes o trabajadores) y unidad de análisis (empresas), las estimaciones solo se pueden realizar para las empresas.

1.2 Escenario considerado

Listar solo las variables cuasidentificadoras (clave) que potenciales intrusos externos puedan tener para re-identificar unidades del microdato a anonimizar y que serán consideradas simultáneamente para el análisis de riesgo.

Se listan en siguiente apartado.

1.3 Medidas de riesgo consideradas y umbrales definidos

Para medir el riesgo de divulgación de las bases se identifica el porcentaje de casos únicos en la muestra según distintas medidas.

1.3.1 % de observaciones que pueden pasar a llevar 2k, 3k y 5k

K-anonimato identifica cuantos casos con combinaciones únicas de variables hay en la muestra (no utiliza factores de expansión): si un caso tiene 3k de anonimato significa que ese caso es idéntico a otros 2 de la muestra. Si un caso tiene 10k significa que hay otros 9 como él, lo que lo hace común y poco único –y, por ende, poco identificable-. Dada la recomendación de la literatura se reportan las medidas para 2k, 3k y 5k. Si el microdato se tratara de un censo, ninguna observación debiese violar los 2k y 3k.

1.3.2 % de observaciones que pueden pasar a llevar 2l, 3l y 5l

L-Diversity, solo para el caso de Censos y registros administrativos. No se considera en este caso.

1.3.3 % de riesgo global tolerado

El riesgo global suma todos los riesgos individuales. En la presente anonimización que el riesgo global esté bajo el 5%.

1.3.4 % de observaciones que pueden tener más de x% de riesgo individual

El riesgo individual considera al factor de expansión. En la presente anonimización se espera que no haya casos con riesgos sobre el 10% (no del 5% como sugiere el informe de 2020 de la mesa).

1.4 Medidas de utilidad a considerar

Número de trabajadores (nt original se correlacionará con el dato anonimizado, no consigo mismo)

Tasa de sindicalización por sector (solo empresas con sindicatos)

##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's 
## -85.0000   0.1322   0.3039  -5.8701   0.5425   1.0000     2523

2 Creación objeto sdcMicro desde microdato (estimación modelo)

2.1 Variables claves o cuasi identificadoras consideradas

Variable claves o cuasi identificadoras en Encla 2019
Variable Etiqueta
agrupacion_actividad Agrupación económica de la empresa
tamano Tamaño de la empresa según variable NT
agrupacion_regional Agrupación regional de la empresa
empl_g1_3 Ocurre huelga legal en empresa en 2018 según empresa
empl_h6_1 Mes en que se inició la última negociación colectiva en esta empresa
empl_h6_2 Año en que se inició la última negociación colectiva en esta empresa
empl_f5 Sindicatos en empresa al 30 de noviembre según empresa
sindicatos_tipo Tipo de sindicato según RRAA
huelga2018_empresa Ocurrencia de huelga en 2018 según RRAA
nt Número de trabajadores
auto_j1_1_1 Sindicatos en empresa al momento de aplicar la encuesta (2019) según empresa
auto_j3_3_1 Grupos negociadores en empresa al momento de aplicar la encuesta (2019) según empresa
sind_g1 Tipo de sindicato según sindicato
sind_g25 Afiliación a central sindical
sind_g11 Número de sindicatos en empresa al momento de aplicar la encuesta (2019) según sindicato
sind_ano_constitucion_ooss Año de constitución del sindicato según RRAA
sind_h1_3 Huelga en 2018 en empresa según sindicato
sind_g2_1 Mujeres afialiadas a sindicato
sind_g2_2 Hombres afiliados a sindicato
sind_g2_3 Afiliados y afiliadas a sindicato (p1)
sind_g3_3 Afiliados y afiliadas a sindicato (p2)
trab_g1 No existe sindicato. ¿Hubo en algún momento? según trabajador informante
tasa_sindicalizacion Tasa de sindicatolización (g2_3 / nt)

Se advierte que varias de estas variables refieren al mismo tema pero fueron reportadas por distintos informantes. Si bien hay diferencias según el informante que responda, para efectos prácticos y con el objeto de no sobrestimar los riesgos solo se seleccionó una de estas variables:

## Variables claves

# categóricas
variablesclaves <- c("agrupacion_actividad","tamano","agrupacion_regional",
                     "empl_g1_3","empl_h6_1","empl_h6_2","sind_g1",
                     "sind_g25","trab_g1","sind_ano_constitucion_ooss")

# numéricas
variablesnumericas <- c("nt" ,"sind_g11" ,"auto_j3_3_1" ,
                        "sind_g2_1","sind_g2_2","sind_g2_3",
                        "tasa_sindicalizacion")

## Las variables claves se pasan a formato factor
data <- data %>% mutate_at(c("agrupacion_actividad","tamano","agrupacion_regional",
                     "empl_g1_3","empl_h6_1","empl_h6_2","sind_g1",
                     "sind_g25","trab_g1"),as.factor)

2.2 Explicitar y reportar si se consideran o no variables sensibles

No se considerarán variables sensibles

sensibles <- NULL

2.3 Explicitar y reportar si se utilizan factores de expansión o ponderadores

Sólo para muestras.

peso <- 'fe_empresa'

2.4 Explicitar semilla considerada

semilla <- 1917

2.5 Creación objeto sdcMicro e impresión de sus categorías

objeto_sdc <- createSdcObj(data, 
                     keyVars = variablesclaves, 
                     pramVars = NULL, 
                     weightVar = peso, 
                     numVars = variablesnumericas,
                     sensibleVar = NULL,
                     seed = semilla)
knit_print(objeto_sdc)
##                Key Variable Number of categories      Mean size           
##        agrupacion_actividad                   13 (13)   282.308  (282.308)
##                      tamano                    4  (4)   917.500  (917.500)
##         agrupacion_regional                    6  (6)   611.667  (611.667)
##                   empl_g1_3                    3  (3)  1223.333 (1223.333)
##                   empl_h6_1                   14 (14)    89.231   (89.231)
##                   empl_h6_2                    7  (7)   203.333  (203.333)
##                     sind_g1                    5  (5)   301.000  (301.000)
##                    sind_g25                   11 (11)    21.100   (21.100)
##                     trab_g1                    5  (5)   619.000  (619.000)
##  sind_ano_constitucion_ooss                   68 (68)    17.388   (17.388)
##  Size of smallest (>0)      
##                     63  (63)
##                    311 (311)
##                    266 (266)
##                     47  (47)
##                      5   (5)
##                      1   (1)
##                      7   (7)
##                      1   (1)
##                     26  (26)
##                      1   (1)

3 Medidas de riesgo según modelo especificado

3.1 K-anonimato

Solo de referencia para el caso de muestras

kanom_inicial <- data.frame(Anonimato=c("2k","3k","5k")) %>% 
  mutate(porcentaje_observaciones=c(
kAnon_violations(objeto_sdc,weighted = FALSE, 2)[1]/nrow(data)*100,
kAnon_violations(objeto_sdc,weighted = FALSE, 3)[1]/nrow(data)*100,
kAnon_violations(objeto_sdc,weighted = FALSE, 5)[1]/nrow(data)*100
)) %>% 
  mutate(numero_observaciones=c(
kAnon_violations(objeto_sdc,weighted = FALSE, 2)[1],
kAnon_violations(objeto_sdc,weighted = FALSE, 3)[1],
kAnon_violations(objeto_sdc,weighted = FALSE, 5)[1]
))

kanom_inicial %>% knitr::kable(caption = "Obervaciones pasando a llevar umbrales de k-anonimato") %>% 
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
Obervaciones pasando a llevar umbrales de k-anonimato
Anonimato porcentaje_observaciones numero_observaciones
2k 6.839237 251
3k 14.686649 539
5k 28.283379 1038

3.2 Riesgos globales

Riesgos globales iniciales
global.risk global.risk_ER global.risk_pct global.threshold global.max_risk
0.057936 212.6251 5.793598 0.0204248 0.01

3.3 Riesgos individuales:

3.3.1 Visualización de su distribución

rindividuales_iniciales <- objeto_sdc@risk$individual %>% as.data.frame()

resumen <- rindividuales_iniciales %>% 
  mutate(
    "sobre_1%"=if_else(risk > 0.01,1,0),
    "sobre_5%"=if_else(risk > 0.05,1,0),
    "sobre_10%"=if_else(risk > 0.1,1,0),
    "sobre_25%"=if_else(risk > 0.25,1,0),
    "sobre_50%"=if_else(risk > 0.50,1,0),
         ) %>% 
  summarise("sobre_1%"=sum(`sobre_1%`),
            "sobre_5%"=sum(`sobre_5%`),
            "sobre_10%"=sum(`sobre_10%`),
            "sobre_25%"=sum(`sobre_25%`),
            "sobre_50%"=sum(`sobre_50%`)) 

resumen[2,] <- resumen[1,]/nrow(data) 

rindividuales_iniciales %>% arrange(risk) %>% 
  mutate(rank=1:3670) %>% 
  ggplot(aes(x=rank,y=risk)) + 
  geom_line() + 
  geom_hline(yintercept=0.10, linetype="dashed", 
                color = "darkred", size=1) + 
  geom_vline(xintercept=(3670-resumen[1,3]), linetype="dashed", 
                color = "darkred", size=1) +
  annotate("text", x = 3300, y = 0.20, label = paste0(resumen[1,3]," observaciones\ncon riesgos sobre 10%")) + 
  theme_bw() +
  labs(title = "Riesgos individuales de observaciones")

3.3.2 Contabilizar aquellas que superan el 1%, 2%, 5%, 10%, 25% y 50%

resumen %>% 
  mutate(unidad=c("observaciones","porcentaje respecto del total")) %>% 
  select(6,1:5) %>% 
  kable(caption = "Porcentaje de observaciones con riesgos individuales sobre los umbrales") %>% 
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
Porcentaje de observaciones con riesgos individuales sobre los umbrales
unidad sobre_1% sobre_5% sobre_10% sobre_25% sobre_50%
observaciones 1524.0000000 671.0000000 454.0000000 242.0000000 136.0000000
porcentaje respecto del total 0.4152589 0.1828338 0.1237057 0.0659401 0.0370572

3.3.3 Listar unidades de observación identificadas como riesgosas

A continuación se reportan las observaciones más riesgosas (con riesgos individuales sobre el 50%):

riesgosas <- objeto_sdc@risk$individual %>% 
  as.data.frame() %>% 
  cbind(objeto_sdc@manipKeyVars) %>% 
  cbind(objeto_sdc@origData$fe_empresa) %>% 
  mutate("sobre_50%"=if_else(risk > 0.5,1,0)) %>% 
  filter(`sobre_50%`==1) %>% 
  arrange(-risk) %>% 
  select(-`sobre_50%`)

riesgosas %>% 
  kable(caption = "Unidades riesgosas (sobre 50%)") %>% 
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
Unidades riesgosas (sobre 50%)
risk fk Fk agrupacion_actividad tamano agrupacion_regional empl_g1_3 empl_h6_1 empl_h6_2 sind_g1 sind_g25 trab_g1 sind_ano_constitucion_ooss
1.0000000 1 1.000000 D-E 3 1 85 NA 2017 NA NA 2 NA 1.000000
1.0000000 1 1.000000 P 1 2 2 NA NA 1 NA 2 2005 1.000000
1.0000000 1 1.000000 A 1 3 1 6 2017 NA NA 2 NA 1.000000
0.9518905 1 1.102757 Q 3 5 2 6 2017 1 NA 1 2018 1.102757
0.9422643 1 1.125000 F 3 3 2 1 2015 1 NA 88 NA 1.125000
0.9189758 1 1.181372 R-S 4 3 2 NA NA NA NA 2 2009 1.181372
0.8984657 1 1.234226 F 3 2 2 NA NA 1 NA 2 2011 1.234226
0.8972225 1 1.237532 K-L 2 6 85 NA NA NA NA 2 NA 1.237532
0.8925742 1 1.250000 A 4 2 2 NA NA 1 NA 2 1980 1.250000
0.8831784 1 1.275728 A 4 6 2 NA NA 1 NA 1 NA 1.275728
0.8831784 1 1.275728 C 4 4 2 NA 2019 NA NA NA NA 1.275728
0.8831784 1 1.275728 C 1 2 2 NA NA NA NA 2 NA 1.275728
0.8831784 1 1.275728 B 1 6 85 NA NA NA NA 2 NA 1.275728
0.8831784 1 1.275728 C 2 6 2 12 2017 NA NA 2 NA 1.275728
0.8630462 1 1.333333 M-N 2 5 2 NA NA 1 NA NA NA 1.333333
0.8584588 1 1.346954 R-S 2 5 85 5 2019 1 NA 1 1971 1.346954
0.8584588 1 1.346954 G 3 1 1 NA 2018 NA 1 NA NA 1.346954
0.8584588 1 1.346954 C 2 2 2 NA NA 1 NA 2 NA 1.346954
0.8584588 1 1.346954 R-S 4 5 2 10 NA NA NA NA NA 1.346954
0.8584588 1 1.346954 B 1 3 1 6 NA NA NA NA NA 1.346954
0.8584588 1 1.346954 K-L 3 6 85 3 NA 1 NA 2 1969 1.346954
0.8584588 1 1.346954 P 2 5 2 NA 2018 1 NA 2 1968 1.346954
0.8425155 1 1.395801 M-N 4 4 2 NA 2015 NA NA 2 NA 1.395801
0.8346251 1 1.420875 A 1 2 85 3 2018 1 NA 2 2005 1.420875
0.8346251 1 1.420875 K-L 1 1 2 7 NA 2 NA 2 NA 1.420875
0.8322415 1 1.428571 R-S 4 3 1 NA 2018 1 NA NA 2012 1.428571
0.8224482 1 1.460801 K-L 2 6 2 10 NA 2 NA 2 2018 1.460801
0.8224482 1 1.460801 I 3 6 85 NA NA NA NA 2 1971 1.460801
0.8214070 1 1.464286 F 1 5 2 NA 2018 NA NA 2 2008 1.464286
0.8214070 1 1.464286 K-L 2 4 85 9 NA 2 NA 2 NA 1.464286
0.8214070 1 1.464286 Q 1 1 2 NA 2018 NA NA 2 NA 1.464286
0.8194308 1 1.470932 K-L 3 5 85 4 2017 NA NA 2 2013 1.470932
0.8060865 1 1.516918 K-L 4 1 2 3 NA 1 NA NA 2005 1.516918
0.8028911 1 1.528223 H-J 2 2 85 NA NA NA NA NA NA 1.528223
0.8028911 1 1.528223 D-E 3 4 2 NA NA NA NA 2 NA 1.528223
0.8028911 1 1.528223 D-E 2 1 85 NA NA NA NA 2 2017 1.528223
0.8028911 1 1.528223 K-L 4 2 2 5 NA NA NA 2 1971 1.528223
0.8028911 1 1.528223 A 2 2 2 NA 2016 NA NA 2 NA 1.528223
0.8028911 1 1.528223 K-L 1 6 2 10 NA NA NA 2 NA 1.528223
0.8028911 1 1.528223 D-E 4 3 2 8 NA 1 NA 2 2009 1.528223
0.8028911 1 1.528223 K-L 3 2 85 NA 2018 NA NA 85 NA 1.528223
0.8028911 1 1.528223 K-L 4 4 85 NA 2018 1 NA 2 NA 1.528223
0.8028911 1 1.528223 A 2 3 1 8 2018 1 NA 2 2018 1.528223
0.8028911 1 1.528223 H-J 4 6 85 NA NA NA NA 2 1970 1.528223
0.8028911 1 1.528223 K-L 4 2 85 NA 2016 NA NA 2 NA 1.528223
0.8028911 1 1.528223 P 2 6 1 10 NA 1 NA 2 2011 1.528223
0.8028911 1 1.528223 I 1 6 2 NA 2018 1 NA NA NA 1.528223
0.8028911 1 1.528223 K-L 3 6 85 NA 2016 NA NA 1 NA 1.528223
0.8028911 1 1.528223 Q 1 6 85 10 2017 1 NA 2 NA 1.528223
0.8028911 1 1.528223 K-L 2 5 2 NA NA NA NA NA NA 1.528223
0.7977378 1 1.546703 P 1 2 2 12 2018 NA NA 2 2002 1.546703
0.7977378 1 1.546703 K-L 1 6 2 5 NA NA NA 2 NA 1.546703
0.7968090 1 1.550066 C 3 2 2 NA 2019 1 NA 2 2016 1.550066
0.7952990 1 1.555556 G 4 1 85 12 2018 NA NA NA 2013 1.555556
0.7933496 1 1.562682 C 1 3 1 NA NA NA NA 2 NA 1.562682
0.7716848 1 1.645022 M-N 1 3 1 NA 2018 1 NA 2 NA 1.645022
0.7716848 1 1.645022 D-E 3 1 2 NA 2019 1 NA NA NA 1.645022
0.7716848 1 1.645022 A 4 1 2 NA 2018 1 NA 2 2016 1.645022
0.7716848 1 1.645022 P 3 2 2 3 2018 NA NA NA NA 1.645022
0.7716848 1 1.645022 P 1 4 2 6 2018 NA NA NA NA 1.645022
0.7716848 1 1.645022 P 4 4 85 6 NA NA NA NA NA 1.645022
0.7622688 1 1.682692 F 3 6 2 8 2018 1 NA 2 NA 1.682692
0.7580404 1 1.700000 M-N 4 5 1 NA NA NA NA 2 NA 1.700000
0.7494396 1 1.735977 G 4 5 85 11 NA NA NA 1 2008 1.735977
0.7433941 1 1.761905 C 3 4 2 NA NA 1 NA NA NA 1.761905
0.7410038 1 1.772305 D-E 2 3 85 NA 2019 NA NA 1 NA 1.772305
0.7410038 1 1.772305 R-S 3 5 2 5 2019 NA NA 2 NA 1.772305
0.7332714 1 1.806544 D-E 3 1 2 12 2017 1 NA 2 NA 1.806544
0.7328761 1 1.808319 K-L 3 5 85 NA NA 1 NA 1 2013 1.808319
0.7328761 1 1.808319 H-J 4 3 2 4 NA 1 NA 2 2017 1.808319
0.7328761 1 1.808319 P 4 2 2 NA NA NA NA 2 NA 1.808319
0.7328761 1 1.808319 D-E 2 5 85 NA NA 1 NA 2 NA 1.808319
0.7328761 1 1.808319 H-J 4 5 2 NA NA NA NA 2 1990 1.808319
0.7328761 1 1.808319 P 4 5 85 NA 2018 NA 4 2 1994 1.808319
0.7309751 1 1.816890 K-L 4 1 85 NA NA NA 1 2 2017 1.816890
0.7268029 1 1.835901 D-E 1 6 85 NA NA NA NA NA NA 1.835901
0.7232970 1 1.852093 B 1 2 85 NA NA 1 NA 88 NA 1.852093
0.7217213 1 1.859436 Q 3 6 85 NA NA 1 NA 2 NA 1.859436
0.7217213 1 1.859436 Q 4 4 85 NA 2019 NA NA 2 NA 1.859436
0.7217213 1 1.859436 C 3 5 1 12 NA NA NA 2 NA 1.859436
0.7217213 1 1.859436 K-L 4 1 2 NA NA NA NA 2 1992 1.859436
0.7217213 1 1.859436 D-E 1 5 85 NA NA NA NA NA NA 1.859436
0.7217213 1 1.859436 D-E 2 5 85 NA 2017 NA NA 1 NA 1.859436
0.7217213 1 1.859436 G 2 4 2 1 2017 2 1 NA NA 1.859436
0.7174881 1 1.879365 M-N 4 6 85 NA NA 1 NA NA NA 1.879365
0.7018685 1 1.955556 R-S 1 4 1 11 NA NA NA 2 1990 1.955556
0.6958693 1 1.985976 Q 1 4 2 NA NA NA NA 2 2014 1.985976
0.6794241 1 2.072872 A 2 3 2 NA 2018 NA NA 1 2000 2.072872
0.6794241 1 2.072872 F 4 4 1 NA 2019 NA 4 2 NA 2.072872
0.6794241 1 2.072872 I 3 3 1 6 NA NA NA 2 NA 2.072872
0.6794241 1 2.072872 R-S 1 1 2 NA 2016 1 NA 2 NA 2.072872
0.6794241 1 2.072872 M-N 3 6 2 NA NA NA NA 2 2015 2.072872
0.6794241 1 2.072872 M-N 3 6 2 8 NA NA NA 2 1979 2.072872
0.6794241 1 2.072872 H-J 4 2 85 NA NA 1 NA 2 NA 2.072872
0.6794241 1 2.072872 R-S 3 4 85 8 NA NA NA 1 NA 2.072872
0.6794241 1 2.072872 R-S 4 3 2 NA 2019 NA NA 2 2001 2.072872
0.6794241 1 2.072872 P 3 1 2 NA NA NA NA 1 NA 2.072872
0.6794241 1 2.072872 R-S 2 6 85 NA NA 1 NA NA 2015 2.072872
0.6794241 1 2.072872 D-E 4 3 85 NA 2019 NA NA 1 2004 2.072872
0.6794241 1 2.072872 Q 4 2 2 NA NA NA NA NA NA 2.072872
0.6794241 1 2.072872 G 1 1 1 NA NA 1 NA NA 2017 2.072872
0.6558573 1 2.207071 A 1 5 2 NA 2018 3 NA NA 2012 2.207071
0.6558573 1 2.207071 G 4 2 1 NA NA NA NA 2 1992 2.207071
0.6519092 1 2.230753 R-S 4 1 85 NA NA 1 NA 2 NA 2.230753
0.6514007 1 2.233829 K-L 1 1 2 NA 2017 1 NA 2 NA 2.233829
0.6448227 1 2.274177 B 4 3 1 NA 2016 1 NA NA 2004 2.274177
0.6448227 1 2.274177 K-L 3 2 2 3 NA NA NA 2 1980 2.274177
0.6448227 1 2.274177 H-J 1 5 2 3 NA 1 NA 2 2018 2.274177
0.6108605 1 2.500000 C 4 5 2 NA 2018 1 NA 2 NA 2.500000
0.6010210 1 2.571429 K-L 1 4 2 NA NA 1 NA 2 NA 2.571429
0.6010210 1 2.571429 B 1 3 1 3 NA 1 NA 2 NA 2.571429
0.5760957 1 2.766081 I 4 5 85 NA NA 1 NA 2 NA 2.766081
0.5587107 1 2.914717 P 3 5 2 9 2016 NA NA 88 2011 2.914717
0.5521645 1 2.973699 I 4 5 2 4 2017 NA NA 2 NA 2.973699
0.5521645 1 2.973699 F 3 4 1 8 NA NA NA NA 2005 2.973699
0.5521645 1 2.973699 R-S 4 1 2 NA NA NA 1 2 NA 2.973699
0.5521645 1 2.973699 R-S 2 2 85 -96 2018 NA NA 2 NA 2.973699
0.5521645 1 2.973699 A 1 6 85 NA NA 1 NA 88 2014 2.973699
0.5521645 1 2.973699 F 4 5 1 12 NA NA NA 2 2012 2.973699
0.5479607 1 3.012497 F 4 2 2 NA NA 1 NA NA 2000 3.012497
0.5479607 1 3.012497 I 3 6 2 NA NA NA NA 2 NA 3.012497
0.5479607 1 3.012497 H-J 4 1 85 NA NA NA NA 2 NA 3.012497
0.5479607 1 3.012497 B 2 4 2 NA NA NA NA 1 2015 3.012497
0.5402816 1 3.085298 K-L 3 1 85 NA 2019 NA NA 1 2002 3.085298
0.5273988 1 3.213331 G 2 4 2 NA 2019 2 NA NA 2007 3.213331
0.5155776 1 3.337775 P 2 5 2 NA NA 1 NA NA 2017 3.337775
0.5155776 1 3.337775 K-L 3 1 1 9 NA NA NA 2 2019 3.337775
0.5155776 1 3.337775 A 4 5 2 NA NA NA NA 2 NA 3.337775
0.5155776 1 3.337775 C 3 1 85 7 2017 NA NA 1 1972 3.337775
0.5155776 1 3.337775 D-E 1 6 2 NA NA 1 NA 2 1991 3.337775
0.5155776 1 3.337775 Q 4 4 85 NA 2018 NA NA 2 NA 3.337775
0.5093641 1 3.406040 A 4 3 2 3 NA NA NA NA NA 3.406040
0.5079948 1 3.421359 R-S 3 6 85 1 2016 1 NA NA NA 3.421359
0.5079852 1 3.421467 R-S 3 1 85 NA 2019 1 NA NA 1994 3.421467
0.5079852 1 3.421467 C 4 6 85 NA 2018 1 NA NA 2013 3.421467
0.5011052 1 3.500000 D-E 3 2 85 NA 2018 NA NA 2 NA 3.500000

3.3.4 Describir estadísticamente a aquellas unidades riesgosas

sjmisc::frq(riesgosas[,4:13])
## 
## agrupacion_actividad <categorical>
## # total N=136  valid N=136  mean=7.29  sd=3.85
## 
## Value |  N | Raw % | Valid % | Cum. %
## -------------------------------------
## A     | 12 |  8.82 |    8.82 |   8.82
## B     |  6 |  4.41 |    4.41 |  13.24
## C     | 11 |  8.09 |    8.09 |  21.32
## D-E   | 14 | 10.29 |   10.29 |  31.62
## F     |  8 |  5.88 |    5.88 |  37.50
## G     |  7 |  5.15 |    5.15 |  42.65
## H-J   |  7 |  5.15 |    5.15 |  47.79
## I     |  6 |  4.41 |    4.41 |  52.21
## K-L   | 23 | 16.91 |   16.91 |  69.12
## M-N   |  7 |  5.15 |    5.15 |  74.26
## P     | 12 |  8.82 |    8.82 |  83.09
## Q     |  8 |  5.88 |    5.88 |  88.97
## R-S   | 15 | 11.03 |   11.03 | 100.00
## <NA>  |  0 |  0.00 |    <NA> |   <NA>
## 
## 
## tamano <categorical>
## # total N=136  valid N=136  mean=2.70  sd=1.16
## 
## Value |  N | Raw % | Valid % | Cum. %
## -------------------------------------
##     1 | 31 | 22.79 |   22.79 |  22.79
##     2 | 24 | 17.65 |   17.65 |  40.44
##     3 | 36 | 26.47 |   26.47 |  66.91
##     4 | 45 | 33.09 |   33.09 | 100.00
##  <NA> |  0 |  0.00 |    <NA> |   <NA>
## 
## 
## agrupacion_regional <categorical>
## # total N=136  valid N=136  mean=3.60  sd=1.78
## 
## Value |  N | Raw % | Valid % | Cum. %
## -------------------------------------
##     1 | 23 | 16.91 |   16.91 |  16.91
##     2 | 23 | 16.91 |   16.91 |  33.82
##     3 | 18 | 13.24 |   13.24 |  47.06
##     4 | 19 | 13.97 |   13.97 |  61.03
##     5 | 27 | 19.85 |   19.85 |  80.88
##     6 | 26 | 19.12 |   19.12 | 100.00
##  <NA> |  0 |  0.00 |    <NA> |   <NA>
## 
## 
## empl_g1_3 <categorical>
## # total N=136  valid N=136  mean=31.15  sd=39.92
## 
## Value |  N | Raw % | Valid % | Cum. %
## -------------------------------------
##     1 | 20 | 14.71 |   14.71 |  14.71
##     2 | 68 | 50.00 |   50.00 |  64.71
##    85 | 48 | 35.29 |   35.29 | 100.00
##  <NA> |  0 |  0.00 |    <NA> |   <NA>
## 
## 
## empl_h6_1 <categorical>
## # total N=136  valid N=49  mean=4.73  sd=15.06
## 
## Value |  N | Raw % | Valid % | Cum. %
## -------------------------------------
##   -96 |  1 |  0.74 |    2.04 |   2.04
##     1 |  3 |  2.21 |    6.12 |   8.16
##     2 |  0 |  0.00 |    0.00 |   8.16
##     3 |  8 |  5.88 |   16.33 |  24.49
##     4 |  3 |  2.21 |    6.12 |  30.61
##     5 |  4 |  2.94 |    8.16 |  38.78
##     6 |  6 |  4.41 |   12.24 |  51.02
##     7 |  2 |  1.47 |    4.08 |  55.10
##     8 |  6 |  4.41 |   12.24 |  67.35
##     9 |  3 |  2.21 |    6.12 |  73.47
##    10 |  5 |  3.68 |   10.20 |  83.67
##    11 |  2 |  1.47 |    4.08 |  87.76
##    12 |  6 |  4.41 |   12.24 | 100.00
##  <NA> | 87 | 63.97 |    <NA> |   <NA>
## 
## 
## empl_h6_2 <categorical>
## # total N=136  valid N=59  mean=2017.68  sd=1.06
## 
## Value |  N | Raw % | Valid % | Cum. %
## -------------------------------------
##   -96 |  0 |  0.00 |    0.00 |   0.00
##  2015 |  2 |  1.47 |    3.39 |   3.39
##  2016 |  7 |  5.15 |   11.86 |  15.25
##  2017 | 12 |  8.82 |   20.34 |  35.59
##  2018 | 25 | 18.38 |   42.37 |  77.97
##  2019 | 13 |  9.56 |   22.03 | 100.00
##  <NA> | 77 | 56.62 |    <NA> |   <NA>
## 
## 
## sind_g1 <categorical>
## # total N=136  valid N=58  mean=1.12  sd=0.38
## 
## Value |  N | Raw % | Valid % | Cum. %
## -------------------------------------
##     1 | 52 | 38.24 |   89.66 |  89.66
##     2 |  5 |  3.68 |    8.62 |  98.28
##     3 |  1 |  0.74 |    1.72 | 100.00
##     4 |  0 |  0.00 |    0.00 | 100.00
##  <NA> | 78 | 57.35 |    <NA> |   <NA>
## 
## 
## sind_g25 <categorical>
## # total N=136  valid N=6  mean=2.00  sd=1.55
## 
## Value |   N | Raw % | Valid % | Cum. %
## --------------------------------------
##     1 |   4 |  2.94 |   66.67 |  66.67
##     2 |   0 |  0.00 |    0.00 |  66.67
##     3 |   0 |  0.00 |    0.00 |  66.67
##     4 |   2 |  1.47 |   33.33 | 100.00
##     5 |   0 |  0.00 |    0.00 | 100.00
##     6 |   0 |  0.00 |    0.00 | 100.00
##     7 |   0 |  0.00 |    0.00 | 100.00
##    77 |   0 |  0.00 |    0.00 | 100.00
##    85 |   0 |  0.00 |    0.00 | 100.00
##    88 |   0 |  0.00 |    0.00 | 100.00
##  <NA> | 130 | 95.59 |    <NA> |   <NA>
## 
## 
## trab_g1 <categorical>
## # total N=136  valid N=103  mean=6.00  sd=18.48
## 
## Value |  N | Raw % | Valid % | Cum. %
## -------------------------------------
##     1 | 15 | 11.03 |   14.56 |  14.56
##     2 | 83 | 61.03 |   80.58 |  95.15
##    85 |  1 |  0.74 |    0.97 |  96.12
##    88 |  4 |  2.94 |    3.88 | 100.00
##  <NA> | 33 | 24.26 |    <NA> |   <NA>
## 
## 
## sind_ano_constitucion_ooss <numeric>
## # total N=136  valid N=60  mean=2002.50  sd=15.50
## 
## Value |  N | Raw % | Valid % | Cum. %
## -------------------------------------
##  1968 |  1 |  0.74 |    1.67 |   1.67
##  1969 |  1 |  0.74 |    1.67 |   3.33
##  1970 |  1 |  0.74 |    1.67 |   5.00
##  1971 |  3 |  2.21 |    5.00 |  10.00
##  1972 |  1 |  0.74 |    1.67 |  11.67
##  1979 |  1 |  0.74 |    1.67 |  13.33
##  1980 |  2 |  1.47 |    3.33 |  16.67
##  1990 |  2 |  1.47 |    3.33 |  20.00
##  1991 |  1 |  0.74 |    1.67 |  21.67
##  1992 |  2 |  1.47 |    3.33 |  25.00
##  1994 |  2 |  1.47 |    3.33 |  28.33
##  2000 |  2 |  1.47 |    3.33 |  31.67
##  2001 |  1 |  0.74 |    1.67 |  33.33
##  2002 |  2 |  1.47 |    3.33 |  36.67
##  2004 |  2 |  1.47 |    3.33 |  40.00
##  2005 |  4 |  2.94 |    6.67 |  46.67
##  2007 |  1 |  0.74 |    1.67 |  48.33
##  2008 |  2 |  1.47 |    3.33 |  51.67
##  2009 |  2 |  1.47 |    3.33 |  55.00
##  2011 |  3 |  2.21 |    5.00 |  60.00
##  2012 |  3 |  2.21 |    5.00 |  65.00
##  2013 |  4 |  2.94 |    6.67 |  71.67
##  2014 |  2 |  1.47 |    3.33 |  75.00
##  2015 |  3 |  2.21 |    5.00 |  80.00
##  2016 |  2 |  1.47 |    3.33 |  83.33
##  2017 |  5 |  3.68 |    8.33 |  91.67
##  2018 |  4 |  2.94 |    6.67 |  98.33
##  2019 |  1 |  0.74 |    1.67 | 100.00
##  <NA> | 76 | 55.88 |    <NA> |   <NA>
sjmisc::descr(riesgosas[,14])

3.3.5 Perdida de información para variables cuantitativas

Siempre 0 en informe inicial.

Dado que aún no se han alterado las variables cuantitativas la pérdida de utilidad es cero.

objeto_sdc@utility %>% as.data.frame() %>% 
  kable(caption = "Pérdida de información") %>% 
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
Pérdida de información
il1 il1s eigen
0 0 0

3.4 Necesidad de anonimizar la data original

Necesidad o no de aplicar métodos de control de divulgación y posibles variables a trabajar en primer lugar

El microdato de la Encla 2019 sintético es riesgoso, sus riesgos superan los umbrales de referencia. Se recomienda aplicar métodos SDC.

4 Selección de Métodos SDC

4.1 Variables categóricas

Distribución de las variables:

data %>% select("agrupacion_actividad","tamano","agrupacion_regional",
                     "empl_g1_3","empl_h6_1","empl_h6_2","sind_g1",
                     "sind_g25","trab_g1") %>% apply(2, sjmisc::frq)
## $agrupacion_actividad
## 
## x <character>
## # total N=3670  valid N=3670  mean=7.14  sd=3.20
## 
## Value |   N | Raw % | Valid % | Cum. %
## --------------------------------------
## A     | 187 |  5.10 |    5.10 |   5.10
## B     |  63 |  1.72 |    1.72 |   6.81
## C     | 362 |  9.86 |    9.86 |  16.68
## D-E   | 103 |  2.81 |    2.81 |  19.48
## F     | 398 | 10.84 |   10.84 |  30.33
## G     | 682 | 18.58 |   18.58 |  48.91
## H-J   | 297 |  8.09 |    8.09 |  57.00
## I     | 251 |  6.84 |    6.84 |  63.84
## K-L   | 186 |  5.07 |    5.07 |  68.91
## M-N   | 407 | 11.09 |   11.09 |  80.00
## P     | 431 | 11.74 |   11.74 |  91.74
## Q     | 192 |  5.23 |    5.23 |  96.98
## R-S   | 111 |  3.02 |    3.02 | 100.00
## <NA>  |   0 |  0.00 |    <NA> |   <NA>
## 
## 
## $tamano
## 
## x <character>
## # total N=3670  valid N=3670  mean=2.11  sd=1.01
## 
## Value |    N | Raw % | Valid % | Cum. %
## ---------------------------------------
##     1 | 1369 | 37.30 |   37.30 |  37.30
##     2 |  841 | 22.92 |   22.92 |  60.22
##     3 | 1149 | 31.31 |   31.31 |  91.53
##     4 |  311 |  8.47 |    8.47 | 100.00
##  <NA> |    0 |  0.00 |    <NA> |   <NA>
## 
## 
## $agrupacion_regional
## 
## x <character>
## # total N=3670  valid N=3670  mean=3.37  sd=1.32
## 
## Value |    N | Raw % | Valid % | Cum. %
## ---------------------------------------
##     1 |  377 | 10.27 |   10.27 |  10.27
##     2 |  266 |  7.25 |    7.25 |  17.52
##     3 | 1728 | 47.08 |   47.08 |  64.60
##     4 |  513 | 13.98 |   13.98 |  78.58
##     5 |  498 | 13.57 |   13.57 |  92.15
##     6 |  288 |  7.85 |    7.85 | 100.00
##  <NA> |    0 |  0.00 |    <NA> |   <NA>
## 
## 
## $empl_g1_3
## 
## x <character>
## # total N=3670  valid N=3670  mean=60.40  sd=37.92
## 
## Value |    N | Raw % | Valid % | Cum. %
## ---------------------------------------
##     1 |   47 |  1.28 |    1.28 |   1.28
##     2 | 1040 | 28.34 |   28.34 |  29.62
##    85 | 2583 | 70.38 |   70.38 | 100.00
##  <NA> |    0 |  0.00 |    <NA> |   <NA>
## 
## 
## $empl_h6_1
## 
## x <character>
## # total N=3670  valid N=1160  mean=6.63  sd=7.49
## 
## Value |    N | Raw % | Valid % | Cum. %
## ---------------------------------------
##   -96 |    5 |  0.14 |    0.43 |   0.43
##     1 |   53 |  1.44 |    4.57 |   5.00
##     2 |   38 |  1.04 |    3.28 |  36.90
##     3 |  110 |  3.00 |    9.48 |  46.38
##     4 |   74 |  2.02 |    6.38 |  52.76
##     5 |  111 |  3.02 |    9.57 |  62.33
##     6 |  123 |  3.35 |   10.60 |  72.93
##     7 |  142 |  3.87 |   12.24 |  85.17
##     8 |  101 |  2.75 |    8.71 |  93.88
##     9 |   71 |  1.93 |    6.12 | 100.00
##    10 |  105 |  2.86 |    9.05 |  14.05
##    11 |   90 |  2.45 |    7.76 |  21.81
##    12 |  137 |  3.73 |   11.81 |  33.62
##  <NA> | 2510 | 68.39 |    <NA> |   <NA>
## 
## 
## $empl_h6_2
## 
## x <character>
## # total N=3670  valid N=1220  mean=2016.00  sd=60.53
## 
## Value |    N | Raw % | Valid % | Cum. %
## ---------------------------------------
##   -96 |    1 |  0.03 |    0.08 |   0.08
##  2015 |   38 |  1.04 |    3.11 |   3.20
##  2016 |  135 |  3.68 |   11.07 |  14.26
##  2017 |  277 |  7.55 |   22.70 |  36.97
##  2018 |  440 | 11.99 |   36.07 |  73.03
##  2019 |  329 |  8.96 |   26.97 | 100.00
##  <NA> | 2450 | 66.76 |    <NA> |   <NA>
## 
## 
## $sind_g1
## 
## x <character>
## # total N=3670  valid N=1204  mean=1.22  sd=0.59
## 
## Value |    N | Raw % | Valid % | Cum. %
## ---------------------------------------
##     1 | 1046 | 28.50 |   86.88 |  86.88
##     2 |   62 |  1.69 |    5.15 |  92.03
##     3 |   89 |  2.43 |    7.39 |  99.42
##     4 |    7 |  0.19 |    0.58 | 100.00
##  <NA> | 2466 | 67.19 |    <NA> |   <NA>
## 
## 
## $sind_g25
## 
## x <character>
## # total N=3670  valid N=211  mean=8.40  sd=22.42
## 
## Value |    N | Raw % | Valid % | Cum. %
## ---------------------------------------
##     1 |  135 |  3.68 |   63.98 |  63.98
##     2 |   16 |  0.44 |    7.58 |  71.56
##     3 |    9 |  0.25 |    4.27 |  75.83
##     4 |   24 |  0.65 |   11.37 |  87.20
##     5 |    3 |  0.08 |    1.42 |  88.63
##     6 |    6 |  0.16 |    2.84 |  91.47
##     7 |    1 |  0.03 |    0.47 |  91.94
##    77 |    3 |  0.08 |    1.42 |  93.36
##    85 |   13 |  0.35 |    6.16 |  99.53
##    88 |    1 |  0.03 |    0.47 | 100.00
##  <NA> | 3459 | 94.25 |    <NA> |   <NA>
## 
## 
## $trab_g1
## 
## x <character>
## # total N=3670  valid N=2476  mean=4.41  sd=14.28
## 
## Value |    N | Raw % | Valid % | Cum. %
## ---------------------------------------
##     1 |  138 |  3.76 |    5.57 |   5.57
##     2 | 2266 | 61.74 |   91.52 |  97.09
##    85 |   26 |  0.71 |    1.05 |  98.14
##    88 |   46 |  1.25 |    1.86 | 100.00
##  <NA> | 1194 | 32.53 |    <NA> |   <NA>
  • Recodificación global de variable sind_g25, que indaga sobre la central a la que se encuentra afiliado el sindicato. Pasa de tener 12 categorías de respuestas a solamente 4: (1) el sindicato se encuentra afiliado a la CUT; (2) el sindicato no se encuentra afiliado a la CUT; (96) No hay respuesta; (NA) No aplica (flujo cuestionario). Información específica sobre las centrales efectivamente puede ser muy reveladora dado el alto número de centrales paralelas a a la CUT y el bajo número de sindicatos que representan cada una.
data<-data %>% mutate(sind_g25=as.numeric(as.character(sind_g25)),
                     sind_g25 = case_when(sind_g25==1    ~  1,
                                  sind_g25 %in% c(2,3,4,5,6,7,77)  ~    2,
                                  sind_g25 %in% c(85,88,96) ~ 96,
                                  TRUE~sind_g25))

table(data$sind_g25, useNA = "ifany")
## 
##    1    2   96 <NA> 
##  135   62   14 3459
table(objeto_sdc@origData$sind_g25)
## 
##   1   2   3   4   5   6   7  77  85  88 
## 135  16   9  24   3   6   1   3  13   1
objeto_sdc <- groupAndRename(objeto_sdc, var="sind_g25", 
                             before=c("1","2","3","4","5","6","7","77","85","88"), 
                             after=c("1","2","2","2","2","2","2","2","96","96"),
                             addNA = FALSE)
table(objeto_sdc@manipKeyVars$sind_g25)
## 
##   1   2  96 
## 135  62  14
  • Recodificación global de variable sind_g1 que indaga sobre el tipo de sindicato que responde a la encuesta, fue recodificada en dos categorías: (1) “sindicato de empresa y establecimiento” y (2) “otro tipo de sindicatos”.
data<-data %>% mutate(sind_g1=as.numeric(as.character(sind_g1)),
                     sind_g1 = case_when(sind_g1==1  ~  1,
                                         sind_g1==2  ~  1,
                                         sind_g1 %in% c(3,4)  ~ 2,
                                         TRUE~sind_g1))

table(data$sind_g1, useNA = "ifany")
## 
##    1    2 <NA> 
## 1108   96 2466
table(objeto_sdc@origData$sind_g1, useNA = "ifany")
## 
##    1    2    3    4 <NA> 
## 1046   62   89    7 2466
objeto_sdc <- groupAndRename(objeto_sdc, var="sind_g1", 
                             before=c("1","2","3","4"), 
                             after= c("1","1","2","2"),
                             addNA = FALSE)

table(objeto_sdc@manipKeyVars$sind_g1)
## 
##    1    2 
## 1108   96
  • Recodificación global de variable año_constitucion_ooss que indica, según registro administrativo, el año en que se constituyó el sindicato, fue recodificada en cuatro grandes periodos históricos: (1) Desde 1900 a 1973, (2) Desde 1974 a 1989, (3) Desde 1990 al 2005, (4) Entre 2006 y 2019.
## año constitucion
table(data$sind_ano_constitucion_ooss, useNA = "ifany")
## 
## 1929 1931 1933 1938 1939 1942 1943 1945 1951 1952 1953 1954 1957 1959 1961 1962 
##    1    1    2    2    3    2    2    2    3    2    2    1    2    3    3    2 
## 1965 1966 1967 1968 1969 1970 1971 1972 1973 1976 1979 1980 1981 1982 1983 1984 
##   12    4    1    8    6   10   16   14    2    2   15   12    3    4    5    1 
## 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 
##   14   11    9   10   14   24   16   20    5   14    6   10    4   10    8   21 
## 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
##   10   29   23   31   45   45   37   31   46   35   48   65   76   50   57   55 
## 2017 2018 2019 <NA> 
##   66   57   15 2505
data <-data %>% mutate(sind_ano_constitucion_ooss=as.numeric(as.character(sind_ano_constitucion_ooss)),
                       sind_ano_constitucion_ooss = 
                                   case_when(sind_ano_constitucion_ooss<1974 ~ 1,
                                      sind_ano_constitucion_ooss>1973 & sind_ano_constitucion_ooss<1990 ~ 2,
                                     sind_ano_constitucion_ooss>1989 & sind_ano_constitucion_ooss<2006 ~ 3,
                                     sind_ano_constitucion_ooss>=2006 ~ 4,
                                             TRUE ~ sind_ano_constitucion_ooss))


objeto_sdc <- globalRecode(objeto_sdc, column="sind_ano_constitucion_ooss", breaks=c(0,1973,1989,2005,2019))
table(get.sdcMicroObj(objeto_sdc, type="manipKeyVars")$sind_ano_constitucion_ooss)
## 
##    (0,1973] (1973,1989] (1989,2005] (2005,2019] 
##         106         100         276         683
  • Recodificación global de variable empl_h6_1 que indica el mes en el que se desarrolló la última negociación colectiva en la empresa.
sjmisc::frq(data$empl_h6_1)
## 
## x <categorical>
## # total N=3670  valid N=1160  mean=6.63  sd=7.49
## 
## Value |    N | Raw % | Valid % | Cum. %
## ---------------------------------------
##   -96 |    5 |  0.14 |    0.43 |   0.43
##     1 |   53 |  1.44 |    4.57 |   5.00
##     2 |   38 |  1.04 |    3.28 |   8.28
##     3 |  110 |  3.00 |    9.48 |  17.76
##     4 |   74 |  2.02 |    6.38 |  24.14
##     5 |  111 |  3.02 |    9.57 |  33.71
##     6 |  123 |  3.35 |   10.60 |  44.31
##     7 |  142 |  3.87 |   12.24 |  56.55
##     8 |  101 |  2.75 |    8.71 |  65.26
##     9 |   71 |  1.93 |    6.12 |  71.38
##    10 |  105 |  2.86 |    9.05 |  80.43
##    11 |   90 |  2.45 |    7.76 |  88.19
##    12 |  137 |  3.73 |   11.81 | 100.00
##  <NA> | 2510 | 68.39 |    <NA> |   <NA>
objeto_sdc <- groupAndRename(objeto_sdc, var="empl_h6_1", 
                             before=c("-96","1","2","3","4","5","6","7","8","9","10","11","12"), 
                             after= c("-96","1","1","1","1","1","1","2","2","2","2","2","2"))

table(get.sdcMicroObj(objeto_sdc, type="manipKeyVars")$empl_h6_1)
## 
## -96   1   2 
##   5 509 646
  • Recodificación global de variable empl_h6_2 que indica el año en el que se desarrolló la última negociación colectiva en la empresa.
sjmisc::frq(data$empl_h6_2)
## 
## x <categorical>
## # total N=3670  valid N=1220  mean=2016.00  sd=60.53
## 
## Value |    N | Raw % | Valid % | Cum. %
## ---------------------------------------
##   -96 |    1 |  0.03 |    0.08 |   0.08
##  2015 |   38 |  1.04 |    3.11 |   3.20
##  2016 |  135 |  3.68 |   11.07 |  14.26
##  2017 |  277 |  7.55 |   22.70 |  36.97
##  2018 |  440 | 11.99 |   36.07 |  73.03
##  2019 |  329 |  8.96 |   26.97 | 100.00
##  <NA> | 2450 | 66.76 |    <NA> |   <NA>
objeto_sdc <- groupAndRename(objeto_sdc, var="empl_h6_2", 
                             before=c("-96","2015","2016","2017","2018","2019"), 
                             after= c("-96","1","1","1","2","2"))

table(get.sdcMicroObj(objeto_sdc, type="manipKeyVars")$empl_h6_2)
## 
## -96   1   2 
##   1 450 769

Nota: en anonimización real se recodificó la variable considerando simultáneamente año y mes, para determinar si la negociación había sido antes o después de la implementación de la reforma laboral de abril de 2017.

4.2 Variables numéricas

  • Recodificación superior de variable g11 que indaga sobre el número de sindicatos en la empresa fue recodificada en dos categorías de respuesta válida: (1) solo existe un sindicato en la empresa (el que responde) o (2) existen dos o más sindicatos en la empresa.
data<-data %>% mutate(sind_g11=as.numeric(as.character(sind_g11)),
                     sind_g11 = case_when(sind_g11==1    ~  1,
                                          sind_g11>=2    ~  2,
                                          TRUE~sind_g11))


table(objeto_sdc@origData$sind_g11)
## 
##   1   2   3   4   5   6   7   8   9  10  11  12  13  14  16  20  23  40  50  52 
## 719 243  95  45  37  13   7  14   3   3   4   2   2   2   2   7   2   3   4   1 
##  55  56  58  80  87 
##   2   1   2   2   1
objeto_sdc<-topBotCoding(obj =objeto_sdc, #object you created above when top coding
                              column = "sind_g11", #variable to top/bottom code
                              value = 1, 
                              replacement = 2,
                              kind = "top") 

table(objeto_sdc@manipNumVars$sind_g11)
## 
##   1   2 
## 719 497
  • Ruido a variable nt y tasa de sindicalización
objeto_sdc<-addNoise(objeto_sdc,variables = "nt",noise = 20)
objeto_sdc<-addNoise(objeto_sdc,variables = "tasa_sindicalizacion")

5 Medidas de riesgo finalmente alcanzadas con métodos SDC

##                Key Variable Number of categories      Mean size           
##        agrupacion_actividad                   13 (13)   282.308  (282.308)
##                      tamano                    4  (4)   917.500  (917.500)
##         agrupacion_regional                    6  (6)   611.667  (611.667)
##                   empl_g1_3                    3  (3)  1223.333 (1223.333)
##                   empl_h6_1                    4 (14)   386.667   (89.231)
##                   empl_h6_2                    4  (7)   406.667  (203.333)
##                     sind_g1                    3  (5)   602.000  (301.000)
##                    sind_g25                    4 (11)    70.333   (21.100)
##                     trab_g1                    5  (5)   619.000  (619.000)
##  sind_ano_constitucion_ooss                    5 (68)   291.250   (17.388)
##  Size of smallest (>0)      
##                     63  (63)
##                    311 (311)
##                    266 (266)
##                     47  (47)
##                      5   (5)
##                      1   (1)
##                     96   (7)
##                     14   (1)
##                     26  (26)
##                    100   (1)

5.0.1 K anonimato

Obervaciones pasando a llevar umbrales de k-anonimato
Anonimato porcentaje_observaciones numero_observaciones porcentaje_observaciones_inicial numero_observaciones_inicial
2k 5.585831 205 6.839237 251
3k 12.561308 461 14.686649 539
5k 24.332425 893 28.283379 1038

5.0.2 Riesgos globales

Riesgos globales actuales e iniciales
global.risk global.risk_ER global.risk_pct global.threshold global.max_risk riesgo
0.0499006 183.1352 4.990061 0.0234943 0.01 actual
0.0579360 212.6251 5.793598 0.0204248 0.01 inicial

5.0.3 Riesgos individuales

Porcentaje de observaciones con riesgos individuales sobre los umbrales
unidad sobre_1% sobre_5% sobre_10% sobre_25% sobre_50%
observaciones 1524.0000000 671.0000000 454.0000000 242.0000000 136.0000000
porcentaje respecto del total 0.4152589 0.1828338 0.1237057 0.0659401 0.0370572

6 Evaluación de utilidad del microdato anonimizado

Pérdida de información
il1 il1s eigen
2395321 1476.554 0.0846226

## [1] 0.9808909

7 Extraer de sdcMicro microdato anonimizado y exportar

Se extra data anonimizada de sdcMicro

data_anom <- data %>% select(-c(variablesclaves,variablesnumericas))
data_anom <- cbind(data_anom,objeto_sdc@manipKeyVars,objeto_sdc@manipNumVars)

Se guardan en carpeta las bases para ser liberadas al público general.

## Exportar base de datos SUF en distintos formatos (anonimizada, utilizando métodos SDC)
save(data_anom,file="../output/encla data sintetica/encla2019_anonimizada.rds")
writexl::write_xlsx(data_anom,"../output/encla data sintetica/encla2019_anonimizada.xlsx")

8 Conclusiones

Se logra disminuir significativamente los riesgos.

El equipo anonimizador autoriza la publicación de los microdatos anonimizados.

sessionInfo()
## R version 4.0.5 (2021-03-31)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 19042)
## 
## Matrix products: default
## 
## locale:
## [1] LC_COLLATE=Spanish_Chile.1252  LC_CTYPE=Spanish_Chile.1252   
## [3] LC_MONETARY=Spanish_Chile.1252 LC_NUMERIC=C                  
## [5] LC_TIME=Spanish_Chile.1252    
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] sdcMicro_5.6.1   knitr_1.33       forcats_0.5.1    stringr_1.4.0   
##  [5] dplyr_1.0.7      purrr_0.3.4      readr_2.0.1      tidyr_1.1.3     
##  [9] tibble_3.1.3     ggplot2_3.3.5    tidyverse_1.3.1  kableExtra_1.3.4
## 
## loaded via a namespace (and not attached):
##  [1] fs_1.5.0            lubridate_1.7.10    insight_0.14.3     
##  [4] webshot_0.5.2       httr_1.4.2          tools_4.0.5        
##  [7] backports_1.2.1     bslib_0.2.5.1       sjlabelled_1.1.8   
## [10] utf8_1.2.2          R6_2.5.0            DT_0.18            
## [13] DBI_1.1.1           colorspace_2.0-2    withr_2.4.2        
## [16] tidyselect_1.1.1    curl_4.3.2          compiler_4.0.5     
## [19] cli_3.0.1           rvest_1.0.1         xml2_1.3.2         
## [22] rhandsontable_0.3.8 labeling_0.4.2      sass_0.4.0         
## [25] scales_1.1.1        DEoptimR_1.0-9      robustbase_0.93-8  
## [28] systemfonts_1.0.2   digest_0.6.27       foreign_0.8-81     
## [31] shinyBS_0.61        rmarkdown_2.10      svglite_2.0.0      
## [34] rio_0.5.27          pkgconfig_2.0.3     htmltools_0.5.1.1  
## [37] dbplyr_2.1.1        fastmap_1.1.0       highr_0.9          
## [40] htmlwidgets_1.5.3   rlang_0.4.11        readxl_1.3.1       
## [43] rstudioapi_0.13     shiny_1.6.0         prettydoc_0.4.1    
## [46] farver_2.1.0        jquerylib_0.1.4     generics_0.1.0     
## [49] jsonlite_1.7.2      zip_2.2.0           car_3.0-11         
## [52] magrittr_2.0.1      Rcpp_1.0.7          munsell_0.5.0      
## [55] fansi_0.5.0         abind_1.4-5         lifecycle_1.0.0    
## [58] stringi_1.7.3       yaml_2.2.1          snakecase_0.11.0   
## [61] carData_3.0-4       MASS_7.3-53.1       grid_4.0.5         
## [64] promises_1.2.0.1    sjmisc_2.8.7        crayon_1.4.1       
## [67] haven_2.4.3         hms_1.1.0           pillar_1.6.2       
## [70] reprex_2.0.1        glue_1.4.2          evaluate_0.14      
## [73] data.table_1.14.0   modelr_0.1.8        vctrs_0.3.8        
## [76] tzdb_0.1.2          httpuv_1.6.1        cellranger_1.1.0   
## [79] gtable_0.3.0        assertthat_0.2.1    openxlsx_4.2.4     
## [82] xfun_0.25           mime_0.11           xtable_1.8-4       
## [85] broom_0.7.9         later_1.2.0         viridisLite_0.4.0  
## [88] writexl_1.4.0       cluster_2.1.1       ellipsis_0.3.2