# Bootstrapping stratified sample that is weighted to population - reweighting during the bootstrap?

I'm using R to provide bootstrap (percentile and t methods) of estimated population totals, using data from a complex survey. It is a stratified survey of tourists expenditure that is weighted to population (the known number of tourists from customs information). I want a confidence interval for total expenditure of various combinations of tourist types (eg "Australian business travellers"). Those tourist characteristics are part of the poststratification weighting scheme, but not the original stratification. Stratification is by departing flight where the interview took place. The weights are very complex and definitely not independent of the variable of interest.

My procedure is to produce a stratified resample; take the cases in this sample's weights from the original sample and scale them up/down so they add again to the correct population totals; and calculate my statistic. Repeat r times. If I don't do the reweighting procedure in the middle my bootstrapped estimates are on average significantly higher than the estimates from the original sample and hence useless. My reweighting procedure does not exactly duplicate the original poststratification weighting (it is a simpler version) but is callibrated to produce the same marginal population totals for combinations of tourists' country of residence, purpose of visit, and age.

I have written code in R to do this but am interested in if there is an existing function I can compare my results with. I've looked at both the boot and survey packages and can't find anything. While boot allows bootstrapping from a stratified sample, I can't see a way to perform the reweighting to population of each replicate resample. My first question is - any pointers to a prebuilt function in R that does this reweighting to population as part of its bootstrap?

I also haven't found anything on exactly this problem in my cursory examination of the literature. However, it must be a common challenge for surveys that have been weighted to populations. My second question is - any pointers to discussion in the literature (not just on R) about the merits or otherwise of this reweighting procedure in the middle of a bootstrap?

-
Don't know about bootstrap, but the Australian Buruea of Statistics uses a jacknife method for variance estimation that sounds very similar to what your bootstrap is doing. The algorithm is called GREGWT (generalised regression weighting), and the jacknife replicates are also "benchmarked" same as the original weights. This may be useful to compare. Implementation is in SAS though... – probabilityislogic Mar 14 '12 at 20:20
Thanks. In the end Lumley's survey package did what I wanted once I got rid of the idea of doing a bootstrap in a loop myself and instead generated replicate weights and raked them to the original marginal total weights. It also does a variety of jacknife replicate weights. I also found the EVER library immensely useful - it has an implementation of Kott's delete-a-group jacknife which is a method trialled by Statistics New Zealand (in SAS) and in fact used in our own surveys (again in SAS). I might look into ABS' GREGWT. – Peter Ellis Mar 14 '12 at 22:00