Transforms a log-likelihood function to use only a random subsample of observations. Useful for stochastic gradient ascent on large datasets.
Examples
if (FALSE) { # \dontrun{
# Original likelihood uses all data
data <- rnorm(10000, mean = 5, sd = 2)
loglike <- function(theta, obs = data) {
sum(dnorm(obs, mean = theta[1], sd = theta[2], log = TRUE))
}
# Stochastic version uses random subsample
loglike_stoch <- with_subsampling(
loglike,
data = data,
subsample_size = 100
)
# Each call uses different random subsample
loglike_stoch(c(5, 2))
loglike_stoch(c(5, 2)) # Different value
} # }