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.

MethodReplacementSizemosOther inputNotes
srsworWithoutFixed--The default. Standard SRS
srswrWithFixed--Allows duplicates
systematicWithoutFixed--Periodic selection
bernoulliWithoutRandom-prnIndependent trial per unit
pps_systematicWithoutFixedRequired-Order-sensitive, exact first-order probabilities
pps_brewerWithoutFixedRequired-Exact first-order, approximate joint probabilities
pps_cpsWithoutFixedRequired-Highest entropy, exact joint probabilities
pps_sampfordWithoutFixedRequired-Exact Sampford joint probabilities
pps_poissonWithoutRandomRequiredprnPPS analog of Bernoulli
pps_spsWithoutFixedRequiredprnSequential Poisson with approximate probability targets
pps_paretoWithoutFixedRequiredprnPareto with approximate probability targets
pps_multinomialWithFixedRequired-Any hit count, Hansen-Hurwitz
pps_chromyMin. repl.FixedRequired-As SAS PPS_SEQ
cubeWithoutFixedOptionalaux optionalDeville & Tillé 2004
lpm2WithoutFixedOptionalspread requiredSpatial spread
scpsWithoutFixedOptionalspread requiredSpatial spread

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. The prn column marks the methods that accept permanent random numbers for coordination. It is always optional.

"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

All methods above can draw samples when their input requirements are met. Selection support and variance support are separate contracts. This table is a quick comparison. as_svydesign() and as_svrepdesign() describe the supported stage/phase compositions and sample-specific checks.

Method or familyFirst-order quantityJoint informationAnalysis route
srsworExact inclusion probabilitiesSRS formulas (not exposed by the joint helper)SRS with FPC, standard replicates or RWYB
srswr, pps_multinomialExact expected hit countsExact joint hits for PPSWR draw occurrences with standard replicates or RWYB
systematic, pps_systematicExact inclusion probabilitiesExact order-specific matrix for PPS (zero pairs may occur)SRS/Brewer or generic replicate approximation under the systematic policy
bernoulli, pps_poissonExact independent probabilitiesExact Poisson matrix for PPSAnalytic single-stage Poisson variance, or RWYB for supported clustered/multistage designs
pps_brewer, pps_cps, pps_sampfordExact inclusion probabilitiesApproximate for Brewer, exact for CPS/SampfordBrewer by default, an explicit joint matrix, or PPS-compatible replicates (including approximate RWYB)
pps_sps, pps_paretoApproximate targetsHigh-entropy approximation using targetsBrewer or generic PPS-compatible replicates (no built-in RWYB mapping)
pps_chromyExact expected hit countsMonte Carlo joint hitsWR or generic replicate approximation to PMR (no built-in RWYB mapping)
Unconstrained cubeExact inclusion probabilities under the method contractHigh-entropy approximationApproximate linearization or generic replicates (no built-in RWYB mapping)
Bounded cube, lpm2, scpsExact inclusion probabilities under the method contractRefusedGeneric subbootstrap or mrbbootstrap only (linearization refused)
Custom methodsDeclared exact or approximate qualityRegistered joint supportDepends on the variance-family declaration and adapter checks

Joint information here refers to joint_expectation(), which exposes PPS/balanced-family quantities. Ordinary SRS, WR and independent Bernoulli formulas still apply. A stage's joint matrix is not automatically a matrix for the final units of a multistage design. Exact first-order probabilities do not establish exact variance or confidence-interval coverage.

RWYB means the explicit type = "rwyb" option with svrep. type = "auto" does not select it. PPS WOR remains approximate. Generic replicates do not recreate ordering, balancing, spatial spreading or hard constraints. Poisson sampling is refused by generic replicate methods. See as_svrepdesign() for missing-parent and singleton restrictions, and as_svydesign() for Poisson and two-phase export limits.

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.

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.

See also

draw() to set a method on a stage, joint_expectation() for which methods yield exact second-order quantities, as_svydesign() for how each family is exported to survey

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