## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----setup--------------------------------------------------------------------
library(DPrivStats)
set.seed(42)

## -----------------------------------------------------------------------------
data(example_microdata)
head(example_microdata)
nrow(example_microdata)

## -----------------------------------------------------------------------------
budget <- new_privacy_budget(epsilon = 3.0, delta = 1e-6, composition = "rdp")
budget

## -----------------------------------------------------------------------------
income_bounds <- c(0, 500000)
m <- dp_mean(example_microdata$income, epsilon = 0.5,
             bounds = income_bounds, mechanism = "laplace")
m

## -----------------------------------------------------------------------------
m$sensitivity

## -----------------------------------------------------------------------------
dp_median(example_microdata$income, epsilon = 0.5, bounds = income_bounds,
          n_bins = 200)$estimate

hist_fit <- dp_histogram(example_microdata$income, epsilon = 1.0,
                         breaks = seq(0, 500000, by = 100000),
                         normalize = TRUE)
round(hist_fit$estimate, 4)

## -----------------------------------------------------------------------------
sub <- subset(example_microdata, region %in% c("North", "South"))
tt <- dp_t_test(x = sub$income[sub$region == "North"],
                y = sub$income[sub$region == "South"],
                epsilon = 1.0, bounds = income_bounds)
tt

## -----------------------------------------------------------------------------
budget <- spend(budget, 0.5, description = "DP mean income")
budget <- spend(budget, 0.5, description = "DP median income")
budget <- spend(budget, 1.0, description = "DP histogram")
budget <- spend(budget, 1.0, description = "DP t-test")
budget

