Title: | Bootstrap Algorithms for Finite Population Inference |
---|---|
Description: | Finite Population bootstrap algorithms to estimate the variance of the Horvitz-Thompson estimator for single-stage sampling. For a survey of bootstrap methods for finite populations, see Mashreghi et Al. (2016) <doi:10.1214/16-SS113>. |
Authors: | Roberto Sichera [aut, cre] |
Maintainer: | Roberto Sichera <[email protected]> |
License: | GPL-3 |
Version: | 0.4.6 |
Built: | 2025-02-01 03:25:53 UTC |
Source: | https://github.com/rhobis/bootstrapfp |
Perform bootstrap variance estimation of the Horvitz-Thompson total estimator in finite population sampling with equal or unequal probabilities.
Maintainer: Roberto Sichera [email protected]
Mashreghi Z.; Haziza D.; Léger C., 2016. A survey of bootstrap methods in finite population sampling. Statistics Surveys 10 1-52.
Useful links:
Report bugs at https://github.com/rhobis/bootstrapFP/issues
Bootstrap variance estimation for finite population sampling.
bootstrapFP( y, pik, B, D = 1, method, design, x = NULL, s = NULL, distribution = "uniform" )
bootstrapFP( y, pik, B, D = 1, method, design, x = NULL, s = NULL, distribution = "uniform" )
y |
vector of sample values |
pik |
vector of sample first-order inclusion probabilities |
B |
scalar, number of bootstrap replications |
D |
scalar, number of replications for the double bootstrap (when applicable) |
method |
a string indicating the bootstrap method to be used, see Details for more |
design |
sampling procedure to be used for sample selection. Either a string indicating the name of the sampling design or a function; see section "Details" for more information. |
x |
vector of length N with values of the auxiliary variable for all population units, only required if method "ppHotDeck" is chosen |
s |
logical vector of length N, TRUE for units in the sample, FALSE otherwise. Alternatively, a vector of length n with the indices of the sample units. Only required for "ppHotDeck" method. |
distribution |
required only for |
Argument design
accepts either a string indicating the sampling design
to use to draw samples or a function.
Accepted designs are "brewer", "tille", "maxEntropy", "poisson",
"sampford", "systematic", "randomSystematic".
The user may also pass a function as argument; such function should take as input
the parameters passed to argument design_pars
and return either a logical
vector or a vector of 0 and 1, where TRUE
or 1
indicate sampled
units and FALSE
or 0
indicate non-sample units.
The length of such vector must be equal to the length of x
if units
is not specified, otherwise it must have the same length of units
.
method
must be a string indicating the bootstrap method to use.
A list of the currently available methods follows, the sampling design they
they should be used with is indicated in square brackets.
The prefix "pp" indicates a pseudo-population method, the prefix "d"
represents a direct method, and the prefix "w" inicates a weights method.
For more details on these methods see Mashreghi et al. (2016).
"ppGross" [SRSWOR]
"ppBooth" [SRSWOR]
"ppChaoLo85" [SRSWOR]
"ppChaoLo94" [SRSWOR]
"ppBickelFreedman" [SRSWOR]
"ppSitter" [SRSWOR]
"ppHolmberg" [UPSWOR]
"ppChauvet" [UPSWOR]
"ppHotDeck" [UPSWOR]
"dEfron" [SRSWOR]
"dMcCarthySnowden" [SRSWOR]
"dRaoWu" [SRSWOR]
"dSitter" [SRSWOR]
"dAntalTille_UPS" [UPSWOR]
"wRaoWuYue" [SRSWOR]
"wChipperfieldPreston" [SRSWOR]
"wGeneralised" [any]
The bootstrap variance of the Horvitz-Thompson estimator.
Mashreghi Z.; Haziza D.; Léger C., 2016. A survey of bootstrap methods in finite population sampling. Statistics Surveys 10 1-52.
library(bootstrapFP) ### Generate population data --- N <- 20; n <- 5 x <- rgamma(N, scale=10, shape=5) y <- abs( 2*x + 3.7*sqrt(x) * rnorm(N) ) pik <- n * x/sum(x) ### Draw a dummy sample --- s <- sample(N, n) ### Estimate bootstrap variance --- bootstrapFP(y = y[s], pik = n/N, B=100, method = "ppSitter") bootstrapFP(y = y[s], pik = pik[s], B=10, method = "ppHolmberg", design = 'brewer') bootstrapFP(y = y[s], pik = pik[s], B=10, D=10, method = "ppChauvet") bootstrapFP(y = y[s], pik = n/N, B=10, method = "dRaoWu") bootstrapFP(y = y[s], pik = n/N, B=10, method = "dSitter") bootstrapFP(y = y[s], pik = pik[s], B=10, method = "dAntalTille_UPS", design='brewer') bootstrapFP(y = y[s], pik = n/N, B=10, method = "wRaoWuYue") bootstrapFP(y = y[s], pik = n/N, B=10, method = "wChipperfieldPreston") bootstrapFP(y = y[s], pik = pik[s], B=10, method = "wGeneralised", distribution = 'normal')
library(bootstrapFP) ### Generate population data --- N <- 20; n <- 5 x <- rgamma(N, scale=10, shape=5) y <- abs( 2*x + 3.7*sqrt(x) * rnorm(N) ) pik <- n * x/sum(x) ### Draw a dummy sample --- s <- sample(N, n) ### Estimate bootstrap variance --- bootstrapFP(y = y[s], pik = n/N, B=100, method = "ppSitter") bootstrapFP(y = y[s], pik = pik[s], B=10, method = "ppHolmberg", design = 'brewer') bootstrapFP(y = y[s], pik = pik[s], B=10, D=10, method = "ppChauvet") bootstrapFP(y = y[s], pik = n/N, B=10, method = "dRaoWu") bootstrapFP(y = y[s], pik = n/N, B=10, method = "dSitter") bootstrapFP(y = y[s], pik = pik[s], B=10, method = "dAntalTille_UPS", design='brewer') bootstrapFP(y = y[s], pik = n/N, B=10, method = "wRaoWuYue") bootstrapFP(y = y[s], pik = n/N, B=10, method = "wChipperfieldPreston") bootstrapFP(y = y[s], pik = pik[s], B=10, method = "wGeneralised", distribution = 'normal')