
This is a convenience function for computing posterior_predict
internally, whereas the method for
objects with class "ppd"
accepts the matrix returned by
posterior_predict
as input and can be used to avoid multiple calls to
posterior_predict
.
# S3 method for stanreg
predictive_error(
object,
newdata = NULL,
draws = NULL,
re.form = NULL,
seed = NULL,
offset = NULL,
...
)# S3 method for ppd
predictive_error(object, y, ...)
Either a fitted model object returned by one of the
rstanarm modeling functions (a stanreg
object) or, for the "ppd"
method, a matrix of draws from the
posterior predictive distribution returned by
posterior_predict
.
Optional arguments passed to
posterior_predict
. For binomial models, please see the
Note section below if newdata
will be specified.
Currently ignored.
For the "ppd"
method only, a vector of object
.
The method for stanreg objects takes y
directly from the fitted
model object.
A draws
by nrow(newdata)
matrix. If newdata
is
not specified then it will be draws
by nobs(object)
.
posterior_predict
to draw
from the posterior predictive distribution without computing predictive
errors.
# NOT RUN {
if (!exists("example_model")) example(example_model)
err1 <- predictive_error(example_model, draws = 50)
hist(err1)
# Using newdata with a binomial model
formula(example_model)
nd <- data.frame(
size = c(10, 20),
incidence = c(5, 10),
period = factor(c(1,2)),
herd = c(1, 15)
)
err2 <- predictive_error(example_model, newdata = nd, draws = 10, seed = 1234)
# stanreg vs ppd methods
fit <- stan_glm(mpg ~ wt, data = mtcars, iter = 300)
preds <- posterior_predict(fit, seed = 123)
all.equal(
predictive_error(fit, seed = 123),
predictive_error(preds, y = fit$y)
)
# }
Run the code above in your browser using DataLab