sensitivitySamplerManual function

Sensitivity sampler for DPMech-class.

Sensitivity sampler for DPMech-class.

Given a constructed DPMech-class, complete with target

function and sensitivityNorm, and an oracle for producing records, samples the sensitivity of the target function to set the mechanism's sensitivity. Typically the method sensitivitySampler should be used instead; NOTE this method does not properly set the gammaSensitivity slot of DPMech-class unlike the preferred method.

sensitivitySamplerManual(object, oracle, n, m, k)

Arguments

  • object: an object of class DPMech-class.
  • oracle: a source of random databases. A function returning: list, matrix/data.frame (data in rows), numeric/character vector of records if given desired length > 1; or single record given length 1, respectively a list element, a row/named row, a single numeric/character. Whichever type is used should be expected by object@target.
  • n: database size scalar positive numeric, integer-valued.
  • m: sensitivity sample size scalar positive numeric, integer-valued.
  • k: order statistic index in 1,...,m.

Returns

object with updated sensitivity parameter.

Examples

## Simple example with unbounded data hence no global sensitivity. f <- function(xs) mean(xs) m <- DPMechLaplace(target = f, dims = 1) P <- function(n) rnorm(n) m <- sensitivitySamplerManual(m, oracle = P, n = 100, m = 10, k = 10) m@sensitivity

References

Benjamin I. P. Rubinstein and Francesco Aldà. "Pain-Free Random Differential Privacy with Sensitivity Sampling", accepted into the 34th International Conference on Machine Learning (ICML'2017), May 2017.

See Also

sensitivitySampler preferred method for sensitivity sampling.