Le package contient un jeu de données pour s’exercer:
data("dtest", package = "ckm")
Une étape préalable: poser les clés individuelles
La fonction build_individual_keys()
ajoute à votre jeu
de données une colonne rkey
contenant les clés
individuelles qui sont des nombres aléatoires tirés selon une loi
uniforme entre 0 et 1.
set.seed(451919)
dtest_avec_cles <- build_individual_keys(dtest)
On peut vérifier que la distribution des clés individuelles est bien uniforme.
hist(dtest_avec_cles$rkey)
Appliquer la méthode des clés aléatoires en une étape
Après avoir généré la clé individuelle sur votre jeu de données, il est possible de construire directement le tableau perturbé.
Le code ci-dessous va réaliser les étapes suivantes:
- construire le tableau agrégé croisant les variables
"REG", "DEP","DIPLOME", "SEXE", "AGE"
, y compris les marges du tableau. - calculer la table de pertubation en fonction des paramètres
D
(déviation maximale) etV
(la variance de la distribution) - appliquer la perturbation sur le tableau agrégé.
res_ckm <- tabulate_and_apply_ckm(
df = dtest_avec_cles,
cat_vars = c("DEP","DIPLOME", "SEXE", "AGE"),
D = 5, V = 2
)
Le résultat renvoyé est une liste de deux éléments:
str(res_ckm, max.level = 2)
#> List of 4
#> $ tab : tibble [3,847 × 6] (S3: tbl_df/tbl/data.frame)
#> $ risque : NULL
#> $ utilite: tibble [1 × 3] (S3: tbl_df/tbl/data.frame)
#> $ ptab :Formal class 'ptable' [package "ptable"] with 8 slots
Appliquer la méthode des clés aléatoires étape par étape
1-Générer le tableau de comptages avec la clé des cellules
La deuxième étape consiste à construire votre tableau de comptage. Il faut pour cela renseigner le jeu de données contenant la colonne avec les clés individuelles et les variables catégorielles que vous souhaitez croiser ensemble.
La fonction tabulate_cnt_micro_data
s’occupe de
construire l’ensemble des croisements possibles - y compris les marges -
et de fournir à la fois le comptage (le nombre d’individus contenu dans
chaque croisement) et la clé de la cellule obtenue en récupérant la
partie décimale de la somme des clés individuelles.
tab_avant <- tabulate_cnt_micro_data(
df = dtest_avec_cles,
cat_vars = c("DEP","DIPLOME", "SEXE", "AGE")
)
L’argument marge_label
permet de renseigner la modalité
des marges (par défaut "Total"
) et l’argument
hrc_vars
permet de renseigner une éventuelle hiérarchie
entre des variables - dans le cas où vous souhaitez que cette hiérarchie
apparaisse dans une unique colonne.
2-Appliquer la perturbation
La troisième étape consiste à appliquer la perturbation à la table précédente. Il suffit de renseigner, a minima :
- le tableau sur lequel appliqué la perturbation
- et les deux paramètres principaux de la CKM:
- la déviation maximale
D
. Par exemple,D=5
conduit à dévier les données d’un entier compris entre-5
et+5
. - la variance
V
de la distribution de probabilités. Plus la variance sera importante, plus la perturbation globale (mesurée par exemple par la moyenne des écarts absolus) le sera.
- la déviation maximale
res_ckm <- apply_ckm(tab_avant, D = 5, V = 2)
str(res_ckm, max.level = 2)
#> List of 4
#> $ tab : tibble [3,847 × 6] (S3: tbl_df/tbl/data.frame)
#> $ risque : NULL
#> $ utilite: tibble [1 × 3] (S3: tbl_df/tbl/data.frame)
#> $ ptab :Formal class 'ptable' [package "ptable"] with 8 slots