library(surveysd)
library(data.table)
setDTthreads(1)
set.seed(1234)
eusilc <- demo.eusilc(n = 3, prettyNames = TRUE)
dat_boot <- draw.bootstrap(eusilc, REP = 1, hid = "hid",
weights = "pWeight",
strata = "region", period = "year")
# calibrate weight for bootstrap replicates
dat_boot_calib <- recalib(dat_boot, conP.var = "gender", conH.var = "region",
verbose = TRUE)
# calibrate on other variables
dat_boot_calib <- recalib(dat_boot, conP.var = c("gender", "age"),
conH.var = c("region", "hsize"), verbose = TRUE)
# supply contingency tables directly
conP1 <- xtabs(pWeight ~ age + year, data = eusilc)
conP2 <- xtabs(pWeight ~ gender + year, data = eusilc)
conH1 <- xtabs(pWeight ~ region + year,
data = eusilc[!duplicated(paste(hid,year))])
conH2 <- xtabs(pWeight ~ hsize + year,
data = eusilc[!duplicated(paste(hid,year))])
conP <- list(conP1,conP2)
conH <- list(conH1,conH2)
dat_boot_calib <- recalib(dat_boot, conP.var = NULL,
conH.var = NULL, conP = conP,
conH = conH, verbose = TRUE)
# calibrate on gender x age
dat_boot_calib <- recalib(dat_boot, conP.var = list(c("gender", "age")),
conH.var = NULL, verbose = TRUE)
# identical
conP1 <- xtabs(pWeight ~ age + gender + year, data = eusilc)
conP <- list(conP1)
dat_boot_calib <- recalib(dat_boot, conP.var = NULL,
conH.var = NULL, conP = conP,
conH = NULL, verbose = TRUE)
Run the code above in your browser using DataLab