stan_glmer
Bayesian generalized linear models with groupspecific terms via Stan
Bayesian inference for GLMs with groupspecific coefficients that have unknown covariance matrices with flexible priors.
Usage
stan_glmer(formula, data = NULL, family = gaussian, subset, weights, na.action = getOption("na.action", "na.omit"), offset, contrasts = NULL, ..., prior = normal(), prior_intercept = normal(), prior_aux = cauchy(0, 5), prior_covariance = decov(), prior_PD = FALSE, algorithm = c("sampling", "meanfield", "fullrank"), adapt_delta = NULL, QR = FALSE, sparse = FALSE)
stan_lmer(formula, data = NULL, subset, weights, na.action = getOption("na.action", "na.omit"), offset, contrasts = NULL, ..., prior = normal(), prior_intercept = normal(), prior_aux = cauchy(0, 5), prior_covariance = decov(), prior_PD = FALSE, algorithm = c("sampling", "meanfield", "fullrank"), adapt_delta = NULL, QR = FALSE)
stan_glmer.nb(formula, data = NULL, subset, weights, na.action = getOption("na.action", "na.omit"), offset, contrasts = NULL, link = "log", ..., prior = normal(), prior_intercept = normal(), prior_aux = cauchy(0, 5), prior_covariance = decov(), prior_PD = FALSE, algorithm = c("sampling", "meanfield", "fullrank"), adapt_delta = NULL, QR = FALSE)
Arguments
 formula, data, family
 Same as for
glmer
.  subset, weights, offset
 Same as
glm
.  na.action, contrasts
 Same as
glm
, but rarely specified.  ...
 For
stan_glmer
, further arguments passed tosampling
(e.g.iter
,chains
,cores
, etc.) or tovb
(ifalgorithm
is"meanfield"
or"fullrank"
). Forstan_lmer
andstan_glmer.nb
,...
should also contain all relevant arguments to pass tostan_glmer
(exceptfamily
).  prior
 The prior distribution for the regression coefficients.
prior
should be a call to one of the various functions provided by rstanarm for specifying priors. The subset of these functions that can be used for the prior on the coefficients can be grouped into several "families":Family Functions Student t family normal
,student_t
,cauchy
Hierarchical shrinkage family hs
,hs_plus
Laplace family laplace
,lasso
Product normal family product_normal
See the priors help page for details on the families and how to specify the arguments for all of the functions in the table above. To omit a prior i.e., to use a flat (improper) uniform prior
prior
can be set toNULL
, although this is rarely a good idea.Note: Unless
QR=TRUE
, ifprior
is from the Student t family or Laplace family, and if theautoscale
argument to the function used to specify the prior (e.g.normal
) is left at its default and recommended value ofTRUE
, then the default or userspecified prior scale(s) may be adjusted internally based on the scales of the predictors. See the priors help page for details on the rescaling and theprior_summary
function for a summary of the priors used for a particular model.  prior_intercept
 The prior distribution for the intercept.
prior_intercept
can be a call tonormal
,student_t
orcauchy
. See the priors help page for details on these functions. To omit a prior on the intercept i.e., to use a flat (improper) uniform priorprior_intercept
can be set toNULL
.Note: If using a dense representation of the design matrix i.e., if the
sparse
argument is left at its default value ofFALSE
 then the prior distribution for the intercept is set so it applies to the value when all predictors are centered.  prior_aux
 The prior distribution for the "auxiliary" parameter (if
applicable). The "auxiliary" parameter refers to a different parameter
depending on the
family
. For Gaussian modelsprior_aux
controls"sigma"
, the error standard deviation. For negative binomial modelsprior_aux
controls"reciprocal_dispersion"
, which is similar to the"size"
parameter ofrnbinom
: smaller values of"reciprocal_dispersion"
correspond to greater dispersion. For gamma modelsprior_aux
sets the prior on to the"shape"
parameter (see e.g.,rgamma
), and for inverseGaussian models it is the socalled"lambda"
parameter (which is essentially the reciprocal of a scale parameter). Binomial and Poisson models do not have auxiliary parameters.prior_aux
can be a call toexponential
to use an exponential distribution, ornormal
,student_t
orcauchy
, which results in a halfnormal, halft, or halfCauchy prior. Seepriors
for details on these functions. To omit a prior i.e., to use a flat (improper) uniform prior setprior_aux
toNULL
.  prior_covariance
 Cannot be
NULL
; seedecov
for more information about the default arguments.  prior_PD
 A logical scalar (defaulting to
FALSE
) indicating whether to draw from the prior predictive distribution instead of conditioning on the outcome.  algorithm
 A string (possibly abbreviated) indicating the
estimation approach to use. Can be
"sampling"
for MCMC (the default),"optimizing"
for optimization,"meanfield"
for variational inference with independent normal distributions, or"fullrank"
for variational inference with a multivariate normal distribution. Seerstanarmpackage
for more details on the estimation algorithms. NOTE: not all fitting functions support all four algorithms.  adapt_delta
 Only relevant if
algorithm="sampling"
. Seeadapt_delta
for details.  QR
 A logical scalar (defaulting to
FALSE
) but ifTRUE
applies a scaledqr
decomposition to the design matrix, $X = Q* R*$, where $Q* = Q (n1)^0.5$ and $R* = (n1)^(0.5) R$. The coefficients relative to $Q*$ are obtained and then premultiplied by the inverse of $R*$ to obtain coefficients relative to the original predictors, $X$. These transformations do not change the likelihood of the data but are recommended for computational reasons when there are multiple predictors. However, because whenQR
isTRUE
theprior
argument applies to the coefficients relative to $Q*$ (and those are not very interpretable) it is hard to specify an informative prior. SettingQR=TRUE
is therefore only recommended if you do not have an informative prior for the regression coefficients.  sparse
 A logical scalar (defaulting to
FALSE
) indicating whether to use a sparse representation of the design (X) matrix. Setting this toTRUE
will likely be twice as slow, even if the design matrix has a considerable number of zeros, but it may allow the model to be estimated when the computer has too little RAM to utilize a dense design matrix. IfTRUE
, the the design matrix is not centered (since that would destroy the sparsity) and it is not possible to specify bothQR = TRUE
andsparse = TRUE
.  link
 For
stan_glmer.nb
only, the link function to use. Seeneg_binomial_2
.
Details
The stan_glmer
function is similar in syntax to
glmer
but rather than performing (restricted) maximum
likelihood estimation of generalized linear models, Bayesian estimation is
performed via MCMC. The Bayesian model adds priors on the
regression coefficients (in the same way as stan_glm
) and
priors on the terms of a decomposition of the covariance matrices of the
groupspecific parameters. See priors
for more information
about the priors.
The stan_lmer
function is equivalent to stan_glmer
with
family = gaussian(link = "identity")
.
The stan_glmer.nb
function, which takes the extra argument
link
, is a wrapper for stan_glmer
with family =
neg_binomial_2(link)
.
Value

A stanreg object is returned
for
stan_glmer, stan_lmer, stan_glmer.nb
.
References
Gelman, A. and Hill, J. (2007). Data Analysis Using Regression and Multilevel/Hierarchical Models. Cambridge University Press, Cambridge, UK. (Ch. 1115)
See Also
stanregmethods
and
glmer
.
The vignette for stan_glmer
and the Hierarchical
Partial Pooling vignette.
Examples
# see help(example_model) for details on the model below
if (!exists("example_model")) example(example_model)
print(example_model, digits = 1)