smooth_samples | R Documentation |
Returns draws from the posterior distributions of smooth functions in a GAM. Useful, for example, for visualising the uncertainty in individual estimated functions.
smooth_samples(model, ...)
## S3 method for class 'gam'
smooth_samples(
model,
select = NULL,
term = deprecated(),
n = 1,
data = newdata,
method = c("gaussian", "mh", "inla", "user"),
seed = NULL,
freq = FALSE,
unconditional = FALSE,
n_cores = 1L,
n_vals = 200,
burnin = 1000,
thin = 1,
t_df = 40,
rw_scale = 0.25,
rng_per_smooth = FALSE,
draws = NULL,
partial_match = NULL,
mvn_method = c("mvnfast", "mgcv"),
...,
newdata = NULL,
ncores = NULL
)
model |
a fitted model of the supported types |
... |
arguments passed to other methods. For |
select |
character; select which smooth's posterior to draw from.
The default ( |
term |
|
n |
numeric; the number of posterior samples to return. |
data |
data frame; new observations at which the posterior draws
from the model should be evaluated. If not supplied, the data used to fit
the model will be used for |
method |
character; which method should be used to draw samples from
the posterior distribution. |
seed |
numeric; a random seed for the simulations. |
freq |
logical; |
unconditional |
logical; if |
n_cores |
number of cores for generating random variables from a
multivariate normal distribution. Passed to |
n_vals |
numeric; how many locations to evaluate the smooth at if
|
burnin |
numeric; number of samples to discard as the burnin draws.
Only used with |
thin |
numeric; the number of samples to skip when taking |
t_df |
numeric; degrees of freedom for t distribution proposals. Only
used with |
rw_scale |
numeric; Factor by which to scale posterior covariance
matrix when generating random walk proposals. Negative or non finite to
skip the random walk step. Only used with |
rng_per_smooth |
logical; if TRUE, the behaviour of gratia version 0.8.1 or earlier is used, whereby a separate call the the random number generator (RNG) is performed for each smooth. If FALSE, a single call to the RNG is performed for all model parameters |
draws |
matrix; user supplied posterior draws to be used when
|
partial_match |
logical; should smooths be selected by partial matches
with |
mvn_method |
character; one of |
newdata |
Deprecated: use |
ncores |
Deprecated; use |
A tibble with additional classes "smooth_samples"
and
'"posterior_samples".
For the "gam"
method, the columns currently returned (not in this order)
are:
.smooth
; character vector. Indicates the smooth function for that
particular draw,
.term
; character vector. Similar to smooth
, but will contain the
full label for the smooth, to differentiate factor-by smooths for
example.
.by
; character vector. If the smooth involves a by
term, the
by variable will be named here, NA_character_
otherwise.
.row
; integer. A vector of values seq_len(n_vals)
, repeated if
n > 1L
. Indexes the row in data
for that particular draw.
.draw
; integer. A vector of integer values indexing the particular
posterior draw that each row belongs to.
.value
; numeric. The value of smooth function for this posterior draw
and covariate combination.
xxx
; numeric. A series of one or more columns containing data required
for the smooth, named as per the variables involved in the respective
smooth.
Additional columns will be present in the case of factor by smooths,
which will contain the level for the factor named in by_variable
for
that particular posterior draw.
The set of variables returned and their order in the tibble is subject to change in future versions. Don't rely on position.
Gavin L. Simpson
load_mgcv()
dat <- data_sim("eg1", n = 400, seed = 2)
m1 <- gam(y ~ s(x0) + s(x1) + s(x2) + s(x3), data = dat, method = "REML")
sms <- smooth_samples(m1, select = "s(x0)", n = 5, seed = 42)
sms
## A factor by example (with a spurious covariate x0)
dat <- data_sim("eg4", n = 1000, seed = 2)
## fit model...
m2 <- gam(y ~ fac + s(x2, by = fac) + s(x0), data = dat)
sms <- smooth_samples(m2, n = 5, seed = 42)
draw(sms)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.