Skip to contents

The sixteen selection methods samplyr ships, what each one requires, and how registered methods extend the set. draw() chooses among them with its method argument.

Details

Sixteen methods are built in, in three families: equal probability, PPS (probability proportional to size, all requiring mos), and balanced.

MethodReplacementSizemosAlso takes
srsworWithoutFixed--
srswrWithFixed--
systematicWithoutFixed--
bernoulliWithoutRandom-prn
pps_systematicWithoutFixedRequired-
pps_brewerWithoutFixedRequired-
pps_cpsWithoutFixedRequired-
pps_sampfordWithoutFixedRequired-
pps_poissonWithoutRandomRequiredprn
pps_spsWithoutFixedRequiredprn
pps_paretoWithoutFixedRequiredprn
pps_multinomialWithFixedRequired-
pps_chromyMinimumFixedRequired-
cubeWithoutFixedOptionalaux
lpm2WithoutFixedOptionalspread
scpsWithoutFixedOptionalspread, prn

Every method takes either n or frac, except pps_cps, which requires n. For fixed-size methods, frac follows the round parameter (ceiling by default). Bernoulli and PPS Poisson use an unrounded expected target. prn in the last column marks the methods that accept permanent random numbers for coordination, and it is always optional. cube takes aux optionally, whereas lpm2 and scps require spread.

What each method does

  • srswor, the default, is simple random sampling.

  • srswr allows a unit to be drawn more than once.

  • systematic selects at a fixed interval.

  • bernoulli makes an independent trial for each unit.

  • pps_systematic is order-sensitive, with exact first-order probabilities.

  • pps_brewer has exact first-order and approximate joint probabilities.

  • pps_cps has the highest entropy and exact joint probabilities.

  • pps_sampford has exact Sampford joint probabilities.

  • pps_poisson is the PPS analog of Bernoulli sampling.

  • pps_sps (sequential Poisson) and pps_pareto meet their probability targets only approximately.

  • pps_multinomial allows any number of hits, with the Hansen-Hurwitz estimator.

  • pps_chromy is the method of SAS PPS_SEQ.

  • cube is the cube method of Deville and Tillé (2004).

  • lpm2 and scps spread the sample in space.

"Min. repl." is probability minimum replacement: pps_chromy draws a unit either \(\lfloor E \rfloor\) or \(\lceil E \rceil\) times, where \(E\) is its expected number of hits, so a unit is never hit more often than its size warrants.

Selection and inference

Every method above draws a sample when its inputs are met, but selection support and variance support are separate contracts. variance_estimation gives how each method's variance is estimated and how exact it is.

SPS, Pareto and custom approximate targets require allow_approximate = TRUE in exante_probabilities() and exante_overlaps(). Estimates using these targets need not be design-unbiased. Unknown probabilities are refused. Probability and variance declarations by a custom-method author are contracts, not proofs.

The two order-sampling methods part ways in small pools. Drawing 3 of 12 units with sizes from 1 to 20, over 20,000 draws, pps_sps realized inclusion probabilities up to 0.047 away from its targets, and a Horvitz-Thompson count built on the targets came out 6.6% low. pps_pareto stayed within 0.009 of its targets, with a bias under 1%. For coordinated samples from small pools, prefer pps_pareto.

Fixed vs random sample size

Where the table says Fixed, n is the realized sample size. Where it says Random, n is the expected size: it is converted to frac = n / N (with N the stratum or frame size) and the realized count varies around it.

For pps_poisson, the raw inclusion probabilities are computed as \(\pi_i = f \cdot x_i / \bar{x}\) where \(f\) is frac and \(x_i\) is the MOS value. Any \(\pi_i > 1\) is clipped to 1, so the expected sample size \(E[n] = \sum \min(\pi_i, 1)\) can be less than \(f \cdot N\) when large units dominate the MOS distribution. Use certainty_size or certainty_prop to handle these dominant units explicitly.

Declaring certainty units does more than remove them. The remainder is re-resolved over the reduced target and the reduced MOS total, so the surviving chances can rise. The remaining expected take equals the reduced target only if no remaining probability needs clipping. See draw() for the certainty-adjusted n and frac contract.

This is not silent. execute() warns with class samplyr_warning_poisson_shortfall once per stage when a pool's resolved expectation falls more than 5% below what that pool could reach, naming the pools affected and how many chances were clipped. The comparison is against the reachable target rather than the request: a pool asked for more units than it holds has already had its target reduced by the population, which samplyr_warning_nominal_cap reports, and only the further reduction that saturation caused is charged here. A design reduced both ways gets both warnings.

The shortfall is a gap between the nominal and realized design, not a bias. Horvitz-Thompson estimates from a saturated Poisson design remain unbiased, because the weights are the reciprocals of the resolved probabilities.

When an allocation method is set in stratify_by() (equal, proportional, neyman, optimal, power), specify total sample size via n. Combining alloc with frac is not supported.

References

srswor, srswr, systematic, bernoulli, pps_systematic, pps_multinomial: Cochran, W.G. (1977). Sampling Techniques, 3rd ed. Wiley.

pps_brewer: Brewer, K.R.W. (1975). A simple procedure for sampling PPS WOR. Australian Journal of Statistics, 17(3), 166-172.

pps_cps: Hájek, J. (1964). Asymptotic theory of rejective sampling with varying probabilities from a finite population. Annals of Mathematical Statistics, 35(4), 1491-1523.

Chen, X.-H., Dempster, A.P. and Liu, J.S. (1994). Weighted finite population sampling to maximize entropy. Biometrika, 81(3), 457-469.

pps_sampford: Sampford, M.R. (1967). On sampling without replacement with unequal probabilities of selection. Biometrika, 54(3/4), 499-513.

pps_poisson: Tillé, Y. (2006). Sampling Algorithms. Springer.

pps_sps: Ohlsson, E. (1998). Sequential Poisson sampling. Journal of Official Statistics, 14(2), 149-162.

pps_pareto: Rosén, B. (1997). Asymptotic theory for order sampling. Journal of Statistical Planning and Inference, 62(2), 135-158.

pps_chromy: Chromy, J.R. (1979). Sequential sample selection methods. Proceedings of the Survey Research Methods Section, ASA, 401-406.

balanced: Deville, J.-C. and Tillé, Y. (2004). Efficient balanced sampling: the cube method. Biometrika, 91(4), 893-912.

Chauvet, G. (2009). Stratified balanced sampling. Survey Methodology, 35(1), 115-119.

lpm2: Grafström, A., Lundström, N.L.P. and Schelin, L. (2012). Spatially balanced sampling through the pivotal method. Biometrics, 68(2), 514-520. doi:10.1111/j.1541-0420.2011.01699.x

scps: Grafström, A. (2012). Spatially correlated Poisson sampling. Journal of Statistical Planning and Inference, 142(1), 139-147. doi:10.1016/j.jspi.2011.07.003

Grafström, A. and Matei, A. (2018). Coordination of spatially balanced samples. Survey Methodology, 44(2), 215-238.

Matei, A., Smith, P.A., Smeets, M.J.E. and Klingwort, J. (2023). Targetted double control of burden in multiple surveys. Survey Methodology, 49(2), 363-384.

See also

draw() to set a method on a stage, variance_estimation for how each method's variance is estimated, joint_expectation() for which methods yield exact second-order quantities

Other design specification: add_stage(), cluster_by(), draw(), sampling_design(), stratify_by()