Compute replicate weights from a survey design. These functions are usually called from as.svrepdesign rather than directly by the user.

brrweights(strata, psu, match = NULL,
              small = c("fail","split","merge"),
              large = c("split", "merge", "fail"),
              fay.rho=0, only.weights=FALSE,
              compress=TRUE, hadamard.matrix=NULL)
jk1weights(psu,fpc=NULL,
              fpctype=c("population","fraction","correction"),
              compress=TRUE)
jknweights(strata,psu, fpc=NULL,
              fpctype=c("population","fraction","correction"),
              compress=TRUE,
              lonely.psu=getOption("survey.lonely.psu"))

Arguments

strata

Stratum identifiers

psu

PSU (cluster) identifier

match

Optional variable to use in matching.

small

How to handle strata with only one PSU

large

How to handle strata with more than two PSUs

fpc

Optional population (stratum) size or finite population correction

fpctype

How fpc is coded.

fay.rho

Parameter for Fay's extended BRR method

only.weights

If TRUE return only the matrix of replicate weights

compress

If TRUE, store the replicate weights in compressed form

hadamard.matrix

Optional user-supplied Hadamard matrix for brrweights

lonely.psu

Handling of non-certainty single-PSU strata

Details

JK1 and JKn are jackknife schemes for unstratified and stratified designs respectively. The finite population correction may be specified as a single number, a vector with one entry per stratum, or a vector with one entry per observation (constant within strata). When fpc is a vector with one entry per stratum it may not have names that differ from the stratum identifiers (it may have no names, in which case it must be in the same order as unique(strata)). To specify population stratum sizes use fpctype="population", to specify sampling fractions use fpctype="fraction" and to specify the correction directly use fpctype="correction"

The only reason not to use compress=TRUE is that it is new and there is a greater possibility of bugs. It reduces the number of rows of the replicate weights matrix from the number of observations to the number of PSUs.

In BRR variance estimation each stratum is split in two to give half-samples. Balanced replicated weights are needed, where observations in two different strata end up in the same half stratum as often as in different half-strata.BRR, strictly speaking, is defined only when each stratum has exactly two PSUs. A stratum with one PSU can be merged with another such stratum, or can be split to appear in both half samples with half weight. The latter approach is appropriate for a PSU that was deterministically sampled.

A stratum with more than two PSUs can be split into multiple smaller strata each with two PSUs or the PSUs can be merged to give two superclusters within the stratum.

When merging small strata or grouping PSUs in large strata the match variable is used to sort PSUs before merging, to give approximate matching on this variable.

If you want more control than this you should probably construct your own weights using the Hadamard matrices produced by hadamard

Value

For brrweights with only.weights=FALSE a list with elements

weights

two-column matrix indicating the weight for each half-stratum in one particular set of split samples

wstrata

New stratum variable incorporating merged or split strata

strata

Original strata for distinct PSUs

psu

Distinct PSUs

npairs

Dimension of Hadamard matrix used in BRR construction

sampler

function returning replicate weights

compress

Indicates whether the sampler returns per PSU or per observation weights

For jk1weights and jknweights a data frame of replicate weights and the scale and rscale arguments to svrVar.

References

Levy and Lemeshow "Sampling of Populations". Wiley.

Shao and Tu "The Jackknife and Bootstrap". Springer.

Examples

data(scd)
scdnofpc<-svydesign(data=scd, prob=~1, id=~ambulance, strata=~ESA,
nest=TRUE)

## convert to BRR replicate weights
scd2brr <- as.svrepdesign(scdnofpc, type="BRR")
svymean(~alive, scd2brr)
#>         mean     SE
#> alive 46.333 3.5824
svyratio(~alive, ~arrests, scd2brr)
#> Ratio estimator: svyratio.svyrep.design(~alive, ~arrests, scd2brr)
#> Ratios=
#>         arrests
#> alive 0.1535064
#> SEs=
#>             [,1]
#> [1,] 0.009418401

## with user-supplied hadamard matrix
scd2brr1 <- as.svrepdesign(scdnofpc, type="BRR", hadamard.matrix=paley(11))
svymean(~alive, scd2brr1)
#>         mean     SE
#> alive 46.333 3.5824
svyratio(~alive, ~arrests, scd2brr1)
#> Ratio estimator: svyratio.svyrep.design(~alive, ~arrests, scd2brr1)
#> Ratios=
#>         arrests
#> alive 0.1535064
#> SEs=
#>            [,1]
#> [1,] 0.01001468