stan_gamm4(formula, random = NULL, family = gaussian(), data = list(), weights = NULL, subset = NULL, na.action, knots = NULL, drop.unused.levels = TRUE, ..., prior = normal(), prior_intercept = normal(), prior_ops = prior_options(), prior_covariance = decov(), prior_PD = FALSE, algorithm = c("sampling", "meanfield", "fullrank"), adapt_delta = NULL, QR = FALSE, sparse = FALSE)
plot_nonlinear(x, smooths, prob = 0.9, facet_args = list(), ..., alpha = 1, size = 0.75)
gamm4
.glm
,
but rarely specified.prior
can be a call to normal
, student_t
,
cauchy
, hs
or hs_plus
. See priors
for
details. To omit a prior ---i.e., to use a flat (improper) uniform prior---
prior
can be set to NULL
, although this is rarely a good
idea. (Note: unless QR=TRUE
, if the scaled
argument
to prior_options
is left at its default and recommended value
of TRUE
, then the scale(s) of prior
may be modified
internally based on the scales of the predictors, as in the arm
package. See priors
for details on the rescaling and
prior_summary
for a summary of the priors used for a
particular model.)prior_intercept
can be a call to normal
, student_t
or
cauchy
. See priors
for details. To to omit a prior
---i.e., to use a flat (improper) uniform prior--- set
prior_intercept
to NULL
. (Note: if a dense
representation of the design matrix is utilized ---i.e., if the
sparse
argument is left at its default value of FALSE
--- then
the prior distribution for the intercept is set so it applies to the value
when all predictors are centered.)NULL
to omit a prior on the dispersion and see
prior_options
otherwise.NULL
; see decov
for
more information about the default arguments.FALSE
) indicating
whether to draw from the prior predictive distribution instead of
conditioning on the outcome."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. See rstanarm-package
for more details on the
estimation algorithms. NOTE: not all fitting functions support all four
algorithms.algorithm="sampling"
. See
adapt_delta
for details.FALSE
) but if TRUE
applies a scaled qr
decomposition to the design matrix,
$X = Q* R*$, where
$Q* = Q (n-1)^0.5$ and
$R* = (n-1)^(-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 the coefficients relative
to $Q*$ are not very interpretable it is hard to specify an
informative prior. Setting QR=TRUE
is therefore only recommended
if you do not have an informative prior for the regression coefficients.FALSE
) indicating
whether to use a sparse representation of the design (X) matrix.
Setting this to TRUE
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. If TRUE
, the the design matrix
is not centered (since that would destroy the sparsity) and it is
not possible to specify both QR = TRUE
and sparse = TRUE
.stan_gamm4
.stan_gamm4
. The default is
include all smooth terms.facet_wrap
(other than the facets
argument).geom_ribbon
.stan_gamm4
.plot_nonlinear
returns a ggplot object.
stan_gamm4
function is similar in syntax to
gamm4
in the gamm4 package, which accepts a syntax
that is similar to (but not quite as extensive as) that for
gamm
in the mgcv package and converts
it internally into the syntax accepted by glmer
in the
lme4 package. But rather than performing (restricted) maximum likelihood
estimation, the stan_gamm4
function utilizes MCMC to perform Bayesian
estimation. The Bayesian model adds independent priors on the common regression
coefficients (in the same way as stan_glm
) and priors on the
terms of a decomposition of the covariance matrices of the group-specific
parameters, including the smooths. Estimating these models via MCMC avoids
the optimization issues that often crop up with GAMMs and provides better
estimates for the uncertainty in the parameter estimates.
See gamm4
for more information about the model
specicification and priors
for more information about the
priors.
The plot_nonlinear
function creates a ggplot object with one facet for
each smooth function specified in the call to stan_gamm4
. A subset of the
smooth functions can be specified using the smooths
argument. The
plot is conceptually similar to plot.gam
except the
outer lines here demark the edges of posterior uncertainty intervals
(credible intervals) rather than confidence intervals and the inner line
is the posterior median of the function rather than the function implied
by a point estimate. To change the colors used in the plot see
color_scheme_set
.
stanreg-methods
and
gamm4
.
# from example(gamm4, package = "gamm4"), prefixing gamm4() call with stan_
dat <- mgcv::gamSim(1, n = 400, scale = 2) ## simulate 4 term additive truth
## Now add 20 level random effect `fac'...
dat$fac <- fac <- as.factor(sample(1:20, 400, replace = TRUE))
dat$y <- dat$y + model.matrix(~ fac - 1) %*% rnorm(20) * .5
br <- stan_gamm4(y ~ s(x0) + x1 + s(x2), data = dat, random = ~ (1 | fac),
QR = TRUE, chains = 1)
print(br)
plot_nonlinear(br)
plot_nonlinear(br, smooths = "s(x0)", alpha = 2/3)
Run the code above in your browser using DataLab