
Cell suppression from synthetic decimal numbers
Source:R/SuppressionFromDecimals.R
SuppressionFromDecimals.RdDecimal numbers, as calculated by GaussSuppressDec, are used to decide suppression (whole numbers or not).
Technically, the calculations are done via GaussSuppressionFromData,
but without running GaussSuppression.
All suppressed cells are primary suppressed.
Usage
SuppressionFromDecimals(
data,
decVar,
freqVar = NULL,
numVar = NULL,
preAggregate = FALSE,
digits = 9,
...
)Arguments
- data
Input data as a data frame
- decVar
One ore several (
nRep>1) decimal number variables.- freqVar
A single variable holding counts (not needed)
- numVar
Other numerical variables to be aggregated
- preAggregate
Parameter to
GaussSuppressionFromData- digits
Parameter to
RoundWhole. Values close to whole numbers will be rounded.- ...
Other parameters to
GaussSuppressionFromData
Details
Several decimal number variables reduce the probability of obtaining whole numbers by chance.
Examples
z2 <- SSBtoolsData("z2")
# Find suppression and decimal numbers with "fylke" in model
a1 <- GaussSuppressDec(z2,
fun = SuppressSmallCounts,
dimVar = c("region", "fylke", "hovedint"),
freqVar = "ant", protectZeros = FALSE, maxN = 2,
output = "inner")
#> [extend0 44*4->44*4]
#> GaussSuppression_anySum: ..........................
# Add decimal numbers to data
z2$freqDec <- a1$freqDec
# Find suppression with "kostragr" in model
a2 <- SuppressionFromDecimals(z2, dimVar = c("region", "kostragr", "hovedint"),
freqVar = "ant", decVar = "freqDec")
#> GaussSuppression_none:
tail(a2)
#> region hovedint ant freqDec primary suppressed
#> 65 J trygd 20 20.0000000 FALSE FALSE
#> 66 K Total 35 35.0000000 FALSE FALSE
#> 67 K annet 4 5.6718736 TRUE TRUE
#> 68 K arbeid 2 0.3281264 TRUE TRUE
#> 69 K soshjelp 18 18.0000000 FALSE FALSE
#> 70 K trygd 11 11.0000000 FALSE FALSE
b1 <- GaussSuppressDec(data = SSBtoolsData("magnitude1"),
fun = SuppressDominantCells,
numVar = "value",
formula = ~sector2 * geo + sector4 * eu,
contributorVar = "company", k = c(80, 99))
#> [preAggregate 20*6->20*7]
#> [extraAggregate 20*7->10*7] Checking .....
#> GaussSuppression_numttHTT: .........:::::
b2 <- SuppressionFromDecimals(b1[b1$isInner, ],
formula = ~(sector2 + sector4) * eu,
numVar = "value",
decVar = "freqDec")
#> GaussSuppression_none:
FormulaSelection(b2, ~sector2 * eu)
#> sector4 eu freqDec value primary suppressed
#> 1 Total Total 1.110223e-16 462.3 FALSE FALSE
#> 2 private Total -1.110223e-16 429.5 FALSE FALSE
#> 3 public Total 2.220446e-16 32.8 FALSE FALSE
#> 8 Total EU 5.551115e-16 425.2 FALSE FALSE
#> 9 Total nonEU -4.440892e-16 37.1 FALSE FALSE
#> 10 private EU 3.330669e-16 392.4 FALSE FALSE
#> 11 private nonEU -4.440892e-16 37.1 FALSE FALSE
#> 12 public EU 2.220446e-16 32.8 FALSE FALSE