predictive_interval.stanreg {rstanarm} | R Documentation |
Predictive intervals
Description
For models fit using MCMC (algorithm="sampling"
) or one of the
variational approximations ("meanfield"
or "fullrank"
), the
predictive_interval
function computes Bayesian predictive intervals.
The method for stanreg objects calls posterior_predict
internally, whereas the method for matrices accepts the matrix returned by
posterior_predict
as input and can be used to avoid multiple calls to
posterior_predict
.
Usage
## S3 method for class 'stanreg'
predictive_interval(
object,
prob = 0.9,
newdata = NULL,
draws = NULL,
re.form = NULL,
fun = NULL,
seed = NULL,
offset = NULL,
...
)
## S3 method for class 'matrix'
predictive_interval(object, prob = 0.9, ...)
## S3 method for class 'ppd'
predictive_interval(object, prob = 0.9, ...)
Arguments
object |
Either a fitted model object returned by one of the
rstanarm modeling functions (a stanreg
object) or, for the matrix method, a matrix of draws from the
posterior predictive distribution returned by
|
prob |
A number |
newdata , draws , fun , offset , re.form , seed |
Passed to
|
... |
Currently ignored. |
Value
A matrix with two columns and as many rows as are in newdata
.
If newdata
is not provided then the matrix will have as many rows as
the data used to fit the model. For a given value of prob
, p
,
the columns correspond to the lower and upper 100p
% central interval
limits and have the names 100\alpha/2
% and 100(1 -
\alpha/2)
%, where \alpha = 1-p
. For example, if prob=0.9
is
specified (a 90
% interval), then the column names will be
"5%"
and "95%"
, respectively.
See Also
predictive_error
, posterior_predict
,
posterior_interval
Examples
if (.Platform$OS.type != "windows" || .Platform$r_arch != "i386") {
fit <- stan_glm(mpg ~ wt, data = mtcars, iter = 300)
predictive_interval(fit)
predictive_interval(fit, newdata = data.frame(wt = range(mtcars$wt)),
prob = 0.5)
# stanreg vs matrix methods
preds <- posterior_predict(fit, seed = 123)
all.equal(
predictive_interval(fit, seed = 123),
predictive_interval(preds)
)
}