Provides pseudo-weighted estimates of means and
prevalences for finite population inference from nonprobability
samples using auxiliary information from one or multiple probability
reference surveys. The package supports estimation with multiple
reference surveys, allowing auxiliary information to be combined
when no single survey contains all variables relevant to
participation. Optional cumulative precalibration can be applied to
align weighted totals of shared variables across surveys. Methods
are based on the generalized estimating equations framework of
Landsman et al. (2026)
Inference for Nonprobability Samples Using Multiple Reference Surveys
nonprobsampling
implements pseudo-weighting methods for finite population inference from nonprobability samples, such as convenience samples, volunteer cohorts, and opt-in panels.
Because the participation mechanism in a
nonprobability sample is unknown, unadjusted estimates of population means and
prevalences may be biased. The package addresses this issue by leveraging auxiliary information from one or multiple probability reference surveys to estimate participation probabilities and using their inverses as pseudo-weights to obtain bias-corrected estimates of finite population means and prevalences.
The implemented methods are based on the generalized estimating equations framework of Landsman et al. (2026). This includes a multi-reference extension that enables the integration of auxiliary information across multiple reference surveys.
Install the released version from CRAN (once available):
install.packages("nonprobsampling")
Install the development version from GitHub:
# install.packages("remotes")
remotes::install_github("Jiakun0611/nonprobsampling")
With one reference survey:
With multiple reference surveys:
Variance estimation is based on Taylor linearization, with complex sampling designs in the reference surveys handled through integration with the
survey package; when bootstrap replicate weights are provided, bootstrap-based variance estimation is also supported.
Estimation proceeds in two steps: est_pw() estimates pseudo-weights, then
pwmean() estimates a pseudo-weighted mean or prevalence for an outcome.
library(nonprobsampling)
data(sc) # nonprobability sample (outcome: psa_level)
data(sp1) # probability reference survey
# Reference survey design
ref1_design <- survey::svydesign(
ids = ~psu_sp1,
strata = ~strata_sp1,
weights = ~wts_sp1,
data = sp1,
nest = TRUE
)
# Step 1: estimate pseudo-weights (one-reference calibration)
fit <- est_pw(
data = list(sc, ref1_design),
p_formula = ~ agecat + race + education + comorbidity + BMI + diabetes,
method = "calibration",
control = pw_solver_control(ftol = 1e-6)
)
print(fit)
summary(fit)
# Step 2: pseudo-weighted mean of the outcome, by BMI categories
out <- pwmean(fit, y = "psa_level", zcol = "BMI")
print(out)
summary(out)
With multiple reference surveys, users provide one survey design object for each reference survey and a corresponding list of participation model formulas, with one formula specified for each survey.
data(sp2) # second probability reference survey
ref2_design <- survey::svydesign(
ids = ~psu_sp2,
strata = ~strata_sp2,
weights = ~wts_sp2,
data = sp2,
nest = TRUE
)
fit2 <- est_pw(
data = list(sc, ref1_design, ref2_design),
p_formula = list(
~ agecat + race + education + psa_level + pros_enlarged + comorbidity,
~ agecat + race + BMI + diabetes + comorbidity
),
sp_order = "size",
precali = TRUE,
control = pw_solver_control(ftol = 1e-6)
)
print(fit2)
summary(fit2)
See vignette("nonprobsampling") for more details.
The package includes example datasets used throughout the documentation:
| Dataset | Description |
|---|---|
sc |
Nonprobability sample (synthetic, NHANES-based) |
sp1 |
First probability reference survey (NHANES 1999–2010) |
sp2 |
Second probability reference survey (NHIS 1997–2008) |
sp1_bootstrap |
sp1 with bootstrap replicate weights |
Run any of the following commands in R to open the corresponding help page (clickable links are available on the package website):
To cite the package in publications, run:
citation("nonprobsampling")
GPL-3 © Jiakun Lin, Victoria Landsman, Aya A. Mitani