A simple method to perfom local suppression.
localSupp(obj, threshold = 0.15, keyVar)
object of class freqCalc
or sdcMicroObj-class
.
threshold for individual risk
Variable on which some values might be suppressed
an updated object of class freqCalc
or the sdcMicroObj-class
object with manipulated data.
Values of high risk (above the threshold) of a certain variable (parameter keyVar) are suppressed.
Templ, M. Statistical Disclosure Control for Microdata Using the R-Package sdcMicro, Transactions on Data Privacy, vol. 1, number 2, pp. 67-85, 2008. http://www.tdp.cat/issues/abs.a004a08.php
Templ, M. Statistical Disclosure Control for Microdata: Methods and Applications in R. Springer International Publishing, 287 pages, 2017. ISBN 978-3-319-50272-4. doi:10.1007/978-3-319-50272-4 doi:10.1007/978-3-319-50272-4
data(francdat)
keyVars <- paste0("Key",1:4)
# \donttest{
f <- freqCalc(francdat, keyVars = keyVars, w = 8)
f
#>
#> --------------------------
#> 4 obs. violate 2-anonymity
#> 8 obs. violate 3-anonymity
#> --------------------------
f$fk
#> [1] 2 2 2 1 1 1 1 2
f$Fk
#> [1] 110.0 84.5 84.5 17.0 541.0 8.0 5.0 110.0
## individual risk calculation:
indivf <- indivRisk(f)
indivf$rk
#> [1] 0.01714426 0.02204233 0.02204233 0.17707583 0.01165448 0.29706308 0.40235948
#> [8] 0.01714426
## Local Suppression
localS <- localSupp(f, keyVar = "Key4", threshold = 0.15)
#> 3observations has individual risks >=0.15and were suppressed!
f2 <- freqCalc(localS$freqCalc, keyVars = keyVars, w = 8)
indivf2 <- indivRisk(f2)
indivf2$rk
#> [1] 0.017144262 0.022042326 0.022042326 0.177075834 0.003581243 0.003581243
#> [7] 0.402359478 0.017144262
identical(indivf$rk, indivf2$rk)
#> [1] FALSE
## select another keyVar and run localSupp once again,
# if you think the table is not fully protected
## for objects of class sdcMicro:
data(testdata)
sdc <- createSdcObj(
dat = testdata,
keyVars = c("urbrur", "roof", "walls", "water", "electcon", "relat", "sex"),
w = "sampling_weight"
)
sdc <- localSupp(sdc, keyVar = "urbrur", threshold = 0.045)
print(sdc, type = "ls")
#> Local suppression:
#> KeyVar | Suppressions (#) | Suppressions (%)
#> <char> <char> <int> <char> <char>
#> urbrur | 157 | 3.428
#> roof | 0 | 0.000
#> walls | 0 | 0.000
#> water | 0 | 0.000
#> electcon | 0 | 0.000
#> relat | 0 | 0.000
#> sex | 0 | 0.000
#> ----------------------------------------------------------------------
#>
# }