Skip to content
/ sps Public

An R package for sequential Poisson sampling

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

marberts/sps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

16e3c70 · Apr 7, 2025
Feb 4, 2025
Apr 7, 2025
Jan 23, 2025
Apr 7, 2025
Nov 21, 2024
Feb 9, 2025
Apr 7, 2025
Mar 29, 2025
Nov 21, 2024
Mar 29, 2025
Feb 9, 2025
Apr 7, 2025
Apr 16, 2021
Sep 12, 2024
Feb 7, 2025
Apr 6, 2025
Feb 9, 2025
Feb 9, 2025
Dec 14, 2024
Feb 9, 2025

Repository files navigation

Sequential Poisson sampling sps website

CRAN status sps status badge Conda Version R-CMD-check codecov DOI Mentioned in Awesome Official Statistics

Sequential Poisson sampling is a variation of Poisson sampling for drawing probability-proportional-to-size samples with a given number of units, and is commonly used for price-index surveys. This package gives functions to draw stratified sequential Poisson samples according to the method by Ohlsson (1998), as well as other order sample designs by Rosén (1997), and generate appropriate bootstrap replicate weights according to the generalized bootstrap method by Beaumont and Patak (2012).

Installation

Get the stable release from CRAN.

install.packages("sps")

The development version can be installed from R-Universe

install.packages("sps", repos = c("https://marberts.r-universe.dev", "https://cloud.r-project.org"))

or directly from GitHub.

pak::pak("marberts/sps")

Usage

Given a vector of sizes for units in a population (e.g., revenue for sampling businesses) and a desired sample size, a stratified sequential Poisson sample can be drawn with the sps() function.

library(sps)

# Generate some data on sizes for 12 businesses in a single 
# stratum as a simple example
revenue <- c(1:10, 100, 150)

# Draw a sample of 6 businesses
(samp <- sps(revenue, 6))
#> [1]  3  6  7  8 11 12

# Design weights and sampling strata are stored with the sample
weights(samp)
#> [1] 4.583333 2.291667 1.964286 1.718750 1.000000 1.000000
levels(samp)
#> [1] "TS" "TS" "TS" "TS" "TA" "TA"

Allocations are often proportional to size when drawing such samples, and the prop_allocation() function provides a variety of methods for generating proportional-to-size allocations.

# Add some strata
stratum <- rep(c("a", "b"), c(9, 3))

# Make an allocation
(allocation <- prop_allocation(revenue, 6, stratum))
#> a b 
#> 3 3

# Draw a stratified sample
(samp <- sps(revenue, allocation, stratum))
#> [1]  5  8  9 10 11 12

weights(samp)
#> [1] 3.000000 1.875000 1.666667 1.000000 1.000000 1.000000
levels(samp)
#> [1] "TS" "TS" "TS" "TA" "TA" "TA"

The design weights for a sample can then be used to generate bootstrap replicate weights with the sps_repweights() function.

sps_repweights(weights(samp), 5)
#>          [,1]     [,2]      [,3]      [,4]     [,5]
#> [1,] 5.812219 3.000000 0.1877812 3.0000000 3.000000
#> [2,] 3.515461 3.515461 2.6952305 0.0001875 3.515461
#> [3,] 2.291604 2.916542 2.9165417 1.3541979 1.354198
#> [4,] 1.000000 1.000000 1.0000000 1.0000000 1.000000
#> [5,] 1.000000 1.000000 1.0000000 1.0000000 1.000000
#> [6,] 1.000000 1.000000 1.0000000 1.0000000 1.000000
#> attr(,"tau")
#> [1] 1.066773

The vignette gives more detail about how to use these functions to draw coordinated samples, top up a sample, and estimate variance.

Prior work

There are a number of packages on CRAN for drawing samples proportional to size, but these generally do not include the sequential Poisson method. The sampling package contains a function for drawing sequential Poisson samples, but it does not allow for stratification, take-all units, or the use of permanent random numbers. By contrast, the prnsamplr package allows for the use of stratification and permanent random numbers with Pareto order sampling, but does not feature other order-sampling methods (like sequential Poisson).

References

Beaumont, J.-F. and Patak, Z. (2012). On the Generalized Bootstrap for Sample Surveys with Special Attention to Poisson Sampling. International Statistical Review, 80(1): 127-148.

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

Rosén, B. (1997). On sampling with probability proportional to size. Journal of Statistical Planning and Inference, 62(2): 159-191.

About

An R package for sequential Poisson sampling

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Citation

Stars

Watchers

Forks

Languages