glm.leap | R Documentation |
Sample from the posterior distribution of a GLM using the latent exchangeability prior (LEAP) by Alt et al. (2023).
glm.leap(
formula,
family,
data.list,
K = 2,
prob.conc = NULL,
offset.list = NULL,
beta.mean = NULL,
beta.sd = NULL,
disp.mean = NULL,
disp.sd = NULL,
iter_warmup = 1000,
iter_sampling = 1000,
chains = 4,
...
)
formula |
a two-sided formula giving the relationship between the response variable and covariates. |
family |
an object of class |
data.list |
a list of |
K |
the desired number of classes to identify. Defaults to 2. |
prob.conc |
a scalar or a vector of length |
offset.list |
a list of matrices giving the offset for current data followed by historical data. For each
matrix, the number of rows corresponds to observations and columns correspond to classes.
Defaults to a list of matrices of 0s. Note that the first element of |
beta.mean |
a scalar or a |
beta.sd |
a scalar or a |
disp.mean |
a scalar or a vector whose dimension is equal to the number of classes ( |
disp.sd |
a scalar or a vector whose dimension is equal to the number of classes ( |
iter_warmup |
number of warmup iterations to run per chain. Defaults to 1000. See the argument |
iter_sampling |
number of post-warmup iterations to run per chain. Defaults to 1000. See the argument |
chains |
number of Markov chains to run. Defaults to 4. See the argument |
... |
arguments passed to |
The latent exchangeability prior (LEAP) discounts the historical data by identifying the most relevant individuals from the historical data. It is equivalent to a prior induced by the posterior of a finite mixture model for the historical data set.
The function returns an object of class draws_df
giving posterior samples, with an attribute called 'data' which includes
the list of variables specified in the data block of the Stan program.
Alt, E. M., Chang, X., Jiang, X., Liu, Q., Mo, M., Xia, H. M., and Ibrahim, J. G. (2023). LEAP: The latent exchangeability prior for borrowing information from historical data. arXiv preprint.
data(actg019)
data(actg036)
# take subset for speed purposes
actg019 = actg019[1:100, ]
actg036 = actg036[1:50, ]
if (instantiate::stan_cmdstan_exists()) {
glm.leap(
formula = outcome ~ scale(age) + race + treatment + scale(cd4),
family = binomial('logit'),
data.list = list(actg019, actg036),
K = 2,
chains = 1, iter_warmup = 500, iter_sampling = 1000
)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.