SuppressDec | R Documentation |
Assume that frequencies to be published, z
, can be computed from inner
frequencies, y
, via z = t(x) %*% y
,
where x
is a dummy matrix.
Assuming correct suppression, this function will generate safe inner cell frequencies as decimal numbers.
SuppressDec( x, z = NULL, y = NULL, suppressed = NULL, digits = 9, nRep = 1, yDeduct = NULL, resScale = NULL, rmse = NULL, sparseLimit = 500 )
x |
Dummy matrix where the dimensions matches z and/or y input. Sparse matrix (Matrix package) is possible. |
z |
Frequencies to be published. All, only the safe ones or with suppressed as NA. |
y |
Inner cell frequencies (see details). |
suppressed |
Logical vector defining the suppressed elements of z. |
digits |
Output close to whole numbers will be rounded using |
nRep |
Integer, when >1, several y's will be generated. Extra columns in output. |
yDeduct |
Values to be subtracted from y and added back after the calculations. Can be used to perform the modulo method described in the paper (see examples). |
resScale |
Residuals will be scaled by resScale |
rmse |
Desired root mean square error (residual standard error). Will be used when resScale is NULL or cannot be used. |
sparseLimit |
Limit for the number of rows of a reduced x-matrix within the algorithm. When exceeded, a sparse algorithm is used
(see |
This function makes use of ReduceX
and RegSDCipso
.
It is not required that y
consists of cell frequencies. A multivariate y
or z
is also possible.
Then several values are possible as digits
, resScale
and rmse
input.
The inner cell frequencies as decimal numbers
Capital letters, X, Y and Z, are used in the paper.
Øyvind Langsrud
# Same data as in the paper z <- RegSDCdata("sec7z") x <- RegSDCdata("sec7x") y <- RegSDCdata("sec7y") # Now z is t(x) %*% y zAll <- RegSDCdata("sec7zAll") zAllSupp <- RegSDCdata("sec7zAllSupp") xAll <- RegSDCdata("sec7xAll") # When no suppression, output is identical to y SuppressDec(xAll, zAll, y) SuppressDec(xAll, zAll) # y can be seen in z # Similar to Y* in paper (but other random values) SuppressDec(x, z, y) # Residual standard error forced to be 1 SuppressDec(x, z, y, rmse = 1) # Seven ways of obtaining the same output SuppressDec(x, z, rmse = 1) # slower, y must be estimated SuppressDec(x, y = y, rmse = 1) SuppressDec(xAll, zAllSupp, y, rmse = 1) SuppressDec(xAll, zAllSupp, rmse = 1) # slower, y must be estimated SuppressDec(xAll, zAll, y, is.na(zAllSupp), rmse = 1) SuppressDec(xAll, zAll, suppressed = is.na(zAllSupp), rmse = 1) # y seen in z SuppressDec(xAll, y = y, suppressed = is.na(zAllSupp), rmse = 1) # YhatMod4 and YhatMod10 in Table 2 in paper SuppressDec(xAll, zAllSupp, y, yDeduct = 4 * (y%/%4), resScale = 0) SuppressDec(xAll, zAllSupp, y, yDeduct = 10 * (y%/%10), rmse = 0) # As data in Table 3 in paper (but other random values) SuppressDec(xAll, zAllSupp, y, yDeduct = 10 * (y%/%10), resScale = 0.1) # rmse instead of resScale and 5 draws SuppressDec(xAll, zAllSupp, y, yDeduct = 10 * (y%/%10), rmse = 1, nRep = 5)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.