inst/doc/ssp-logit.R

## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----setup--------------------------------------------------------------------
library(subsampling)

## -----------------------------------------------------------------------------
set.seed(1)
N <- 1e4
beta0 <- rep(-0.5, 7)
d <- length(beta0) - 1
corr <- 0.5
sigmax <- matrix(corr, d, d) + diag(1 - corr, d)
X <- MASS::mvrnorm(N, rep(0, d), sigmax)
colnames(X) <- paste0("V", 1:d)
P <- 1 - 1 / (1 + exp(beta0[1] + X %*% beta0[-1]))
Y <- rbinom(N, 1, P)
data <- data.frame(Y = Y, X)
formula <- Y ~ .
head(data)

## -----------------------------------------------------------------------------
set.seed(2)
n.plt <- 200
n.ssp <- 600

fit_optL <- ssp.glm(
  formula = formula,
  data = data,
  n.plt = n.plt,
  n.ssp = n.ssp,
  family = "quasibinomial",
  criterion = "optL",
  sampling.method = "poisson",
  likelihood = "weighted"
)

summary(fit_optL)

## -----------------------------------------------------------------------------
set.seed(18)

fit_logodds <- ssp.glm(
  formula = formula,
  data = data,
  n.plt = n.plt,
  n.ssp = n.ssp,
  family = "quasibinomial",
  criterion = "optA",
  sampling.method = "poisson",
  likelihood = "logOddsCorrection"
)

summary(fit_logodds)

## -----------------------------------------------------------------------------
set.seed(4)

fit_uniform <- ssp.glm(
  formula = formula,
  data = data,
  n.plt = n.plt,
  n.ssp = n.ssp,
  family = "quasibinomial",
  criterion = "uniform",
  sampling.method = "withReplacement",
  likelihood = "weighted"
)

fit_uniform$subsample.size.expect
length(fit_uniform$index)
summary(fit_uniform)

## -----------------------------------------------------------------------------
names(fit_optL)

Try the subsampling package in your browser

Any scripts or data that you put into this service are public.

subsampling documentation built on June 21, 2026, 5:10 p.m.