predict | R Documentation |
These functions extract posterior draws or credible intervals. The helper
functions are named to match those in the rstanarm package and call the
function predict()
with appropriate argument values.
## S3 method for class 'glmmfields'
predictive_interval(object, ...)
## S3 method for class 'glmmfields'
posterior_linpred(object, ...)
## S3 method for class 'glmmfields'
posterior_predict(object, ...)
## S3 method for class 'glmmfields'
predict(
object,
newdata = NULL,
estimate_method = c("median", "mean"),
conf_level = 0.95,
interval = c("confidence", "prediction"),
type = c("link", "response"),
return_mcmc = FALSE,
offset = NULL,
iter = "all",
...
)
object |
An object returned by |
... |
Ignored currently |
newdata |
Optionally, a data frame to predict on |
estimate_method |
Method for computing point estimate ("mean" or "median") |
conf_level |
Probability level for the credible intervals. |
interval |
Type of interval calculation. Same as for
|
type |
Whether the predictions are returned on "link" scale or
"response" scale (Same as for |
return_mcmc |
Logical. Should the full MCMC draws be returned for the predictions? |
offset |
Optional offset vector to be used in prediction. |
iter |
Number of MCMC iterations to draw. Defaults to all. |
library(ggplot2)
# simulate:
set.seed(1)
s <- sim_glmmfields(
n_draws = 12, n_knots = 12, gp_theta = 2.5,
gp_sigma = 0.2, sd_obs = 0.1
)
# fit:
# options(mc.cores = parallel::detectCores()) # for parallel processing
m <- glmmfields(y ~ 0,
data = s$dat, time = "time",
lat = "lat", lon = "lon",
nknots = 12, iter = 800, chains = 1
)
# Predictions:
# Link scale credible intervals:
p <- predict(m, type = "link", interval = "confidence")
head(p)
# Prediction intervals on new observations (include observation error):
p <- predictive_interval(m)
head(p)
# Posterior prediction draws:
p <- posterior_predict(m, iter = 100)
dim(p) # rows are iterations and columns are data elements
# Draws from the linear predictor (not in link space):
p <- posterior_linpred(m, iter = 100)
dim(p) # rows are iterations and columns are data elements
# Use the `tidy` method to extract parameter estimates as a data frame:
head(tidy(m, conf.int = TRUE, conf.method = "HPDinterval"))
# Make predictions on a fine-scale spatial grid:
pred_grid <- expand.grid(
lat = seq(min(s$dat$lat), max(s$dat$lat), length.out = 25),
lon = seq(min(s$dat$lon), max(s$dat$lon), length.out = 25),
time = unique(s$dat$time)
)
pred_grid$prediction <- predict(m,
newdata = pred_grid, type = "response", iter = 100,
estimate_method = "median", offset = rep(0, nrow(pred_grid))
)$estimate
ggplot(pred_grid, aes(lon, lat, fill = prediction)) +
facet_wrap(~time) +
geom_raster() +
scale_fill_gradient2()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.