Say we have a country divided in 100 municipalities. Within each municipality, the population can be categorised into 10-year age groups and the population size of each group is known. A two-stage cluster design can be implemented, where 20 municipalities are first randomly sampled. Subsequently, within each sampled municipality, a simple random sample of 200 individuals is taken. Initially, no stratification by age group is applied. The survey may be subject to unit non-response, which itself can differ per municipality and by age.

Given the unit non-response, it seems reasonable to poststratify the dataset on age within each sampled municipality. Question 1 When using the R package survey, is poststratification within the second stage done by using the interaction between municipality and age?

design <- svydesign(
  ids = ~ municipality + individual,
  strata = ~ country + age,
  fpc = ~ municipality.size + population.size,
  data = data
  design = design,
  strata = ~ municipality + age,
  population = population.frequencies

When this is done, the dataset's age distribution will not agree with the national age distribution, given that only a sample of the municipalities are included. Therefore, it would make sense to me to poststratify a second time on the population size per age group at the national level. I would argue that agreement at the national level is what is usually sought after. If that is the case, we have first poststratified by the interaction of the municipality and age and then poststratified again by age alone, nation wide. I have not seen examples of such a procedure before. Question 2 Does this procedure make theoretical sense?

I understand the age distribution of the dataset cannot both agree within each municipality and at the national level. The second iteration of the poststratification destroys the age distribution within municipalities. Question 3 Could the poststratification step within municipalities be skipped, requiring only poststratifying at the national level? Or is there value in first ensuring the data agree at the municipal level?

Note that I have talked about 'poststratification', but one may also read this as 'raking' or 'calibration'. And I have given examples based on the R package survey, but the general question regarding this procedure is not dependent on this specific package.

  • $\begingroup$ Were the municipalities sampled randomly with equal probabilities or were they stratified or sampled with probability proportional to size? Does the refusal rate vary widely by municipality? Or by age? $\endgroup$ Commented Feb 13 at 20:46
  • $\begingroup$ In this fictional example, you may assume either. But my real dataset has PPS. This is relevant because larger municipalicties (with large cities) often include more young people (e.g. due to universities) meaning the age distribution varies by municipality size, leading to a bias in favour of young people when PPS is used. $\endgroup$
    – LBogaardt
    Commented Feb 13 at 22:14
  • $\begingroup$ The second iteration of poststratification could remove this bias, and other random fluctuations in the age distribution due to the sample of municipalities. The non-response also differs, but not wildly. I guess the more it varies per municipality, the larger the expected deviation from the national, right? $\endgroup$
    – LBogaardt
    Commented Feb 13 at 22:23

1 Answer 1


The stage= argument to calibrate function in the survey package lets you calibrate weights within clusters for precisely this reason.

It should be preferable to calibrate the whole sample to the whole population first, then calibrate within each PSU.

There's some discussion of this in Sarndal C-E, Swensson B, Wretman J. Model Assisted Survey Sampling, chapter 8. Specifically, in section 8.2 they introduce three settings

  • A: PSU-level auxiliary information available for the whole population
  • B: individual-level auxiliary information for the whole population
  • C: individual-level auxiliary information for sampled PSUs

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.