2  Poser le secret sur un tableau

Etapes de la pose du secret sur un seul tableau
  1. Poser le secret primaire
  2. Calculer le nombre de cellules détectées comme à risque
  3. Poser le secret secondaire à l’aide de la fonction tab_rtauargus()
  4. Faire une synthèse du secret posé

Ce chapitre a été réalisé avec la version 1.2.0 de rtauargus et la version 4.2.3 de TauArgus.

library(rtauargus)
library(dplyr)

Poser un masque de secret sur un tableau comprend les étapes suivantes :

  1. Poser le secret primaire en créant des variables indicatrices :

Voici un exemple de code pour les règles classiques en statistiques d’entreprises :

Le tableau T0 présente le chiffre d’affaires des entreprises ventilé par leur activité et leur taille.

str(T0)
tibble [414 × 5] (S3: tbl_df/tbl/data.frame)
 $ ACTIVITY: chr [1:414] "AZ" "BE" "FZ" "GI" ...
 $ SIZE    : chr [1:414] "Total" "Total" "Total" "Total" ...
 $ FREQ    : int [1:414] 405 12878 28043 62053 8135 8140 11961 41359 26686 25108 ...
 $ VALUE   : num [1:414] 44475 24827613 8907311 26962063 8584917 ...
 $ MAX     : num [1:414] 6212 1442029 1065833 3084242 3957364 ...
# Pose du secret "manuelle"
T0_detect <- T0 %>% 
  mutate(
      is_secret_freq = FREQ > 0 & FREQ < 3,
      is_secret_dom = (VALUE != 0) & (MAX > 0.85*VALUE)
    ) %>% 
  mutate(
    is_secret_prim = is_secret_freq | is_secret_dom
  )

# Résultat
str(T0_detect)
tibble [414 × 8] (S3: tbl_df/tbl/data.frame)
 $ ACTIVITY      : chr [1:414] "AZ" "BE" "FZ" "GI" ...
 $ SIZE          : chr [1:414] "Total" "Total" "Total" "Total" ...
 $ FREQ          : int [1:414] 405 12878 28043 62053 8135 8140 11961 41359 26686 25108 ...
 $ VALUE         : num [1:414] 44475 24827613 8907311 26962063 8584917 ...
 $ MAX           : num [1:414] 6212 1442029 1065833 3084242 3957364 ...
 $ is_secret_freq: logi [1:414] FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ is_secret_dom : logi [1:414] FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ is_secret_prim: logi [1:414] FALSE FALSE FALSE FALSE FALSE FALSE ...
  1. Calculer le nombre de cellules détectées comme à risque

  2. Poser le secret secondaire en utilisant le package rtauargus en utilisant la fonction tab_rtauargus().

La fonction tab_rtauargus() requiert les arguments suivants :

# Localisation de tauargus sur AUS
loc_tauargus <- "Y:/Logiciels/TauArgus/TauArgus4.2.3/TauArgus.exe"
options(rtauargus.tauargus_exe = loc_tauargus)

# Préciser la localisation de tauargus
loc_tauargus <- "C:/Users/tmm7an/Documents/SDC/TauArgus/TauArgus4.2.3/TauArgus.exe"
options(rtauargus.tauargus_exe = loc_tauargus)
T0_masq <- tab_rtauargus(
  T0_detect,
  dir_name = "tauargus_files/ex_T0",
  files_name = "T0",
  explanatory_vars = c("ACTIVITY","SIZE"),
  secret_var = "is_secret_prim",
  value = "VALUE",
  freq = "FREQ",
  totcode = c(ACTIVITY="Total",SIZE="Total"),
  verbose = FALSE
)
  1. Calculer le nombre de cellules selon leur statut final en suivant la norme européenne :

Pour faire le bilan du secret, le mieux est de modifier la variable Status fournie par Tau-Argus. En effet, cette variable ne permet pas de faire la distinction entre les deux types de secret primaire (fréquence ou dominance), on modifie donc ces modalités pour faire apparaître cette distinction.

T0_masq <- T0_masq %>% 
  mutate(
    statut_final = case_when(
      is_secret_freq ~ "A",
      is_secret_dom ~ "B",
      TRUE ~ Status,
    )
  )

Afin de bien appréhender l’impact du secret posé, on va non seulement compter le nombre de cellules masquées, mais aussi calculer la valeur des cellules masquées.

T0_masq %>% 
  group_by(statut_final) %>% 
  summarise(
    n_cell = n(),
    val_cell = sum(VALUE)
  ) %>%
  mutate(
    pc_n_cell = n_cell/sum(n_cell)*100,
    pc_val_cell = val_cell/sum(val_cell)*100
  )
# A tibble: 4 × 5
  statut_final n_cell    val_cell pc_n_cell pc_val_cell
  <chr>         <int>       <dbl>     <dbl>       <dbl>
1 A                52   22115262.     12.6         1.51
2 B                25   37823909.      6.04        2.59
3 D                46   21032941.     11.1         1.44
4 V               291 1381270369.     70.3        94.5 

Un bon indicateur de la qualité du secret secondaire posé consiste à rapporter le nombre de cellules supprimées lors de cette phase au nombre de cellules détectées comme à risque (secret primaire). Ici par exemple, nous avons un ratio de \(46/(52+25) = 0.6\). Ainsi, pour protéger une case en secret primaire, Tau-argus a dû masquer 0.6 cellule(s) ; ce qui est très peu car ce ratio est généralement autour de 2.

En effet, pour un tableau à deux dimensions, la présence d’un secret primaire engendre la suppression d’au moins 3 cellules supplémentaires. Donc, le ratio obtenu sur cet exemple indique qu’un certain nombre de cellules en secret primaire se protègent entre elles.