predict.bayesx: Prediction from fitted BayesX objects

View source: R/predict.bayesx.R

predict.bayesxR Documentation

Prediction from fitted BayesX objects

Description

Takes a fitted "bayesx" object returned from bayesx and produces predictions by refitting the initial model with weights set to zero for new observations.

Usage

## S3 method for class 'bayesx'
predict(object, newdata, model = NULL,
  type = c("response", "link", "terms", "model"),
  na.action = na.pass, digits = 5, ...)

Arguments

object

an object of class "bayesx" or "bayesx.hpc".

newdata

a data frame or list containing the values of the model covariates at which predictions are required. If missing newdata is the model.frame of the provided model.

model

for which model should predictions be calculated, either an integer or a character, e.g. model = "mcmc.model". Note that exactly one model must be selected within argument model to compute predicted values!

type

when type = "response", the default, predictions on the scale of the response are returned, "link" returns the linear predictor. When type = "terms", each component of the linear predictor is returned, but excludes any offset and intercept. If type = "model", the full model returned from updating the initial model with weights, that is used for computing predictions, is returned.

na.action

function determining what should be done with missing values in newdata.

digits

predictions should usually be based on the new values provided in argument newdata. However, since this prediction method uses refitting of the model with weights, predictions for model terms need to be matched with the new observations. BayesX returns values with a lower precision than R, therefore argument digits is used to round values when type = "terms", to find matching newdata pairs in the fitted objects returned from the refitted model and the new data. Note that this is a workaround and not 100% bulletproof. It is recommended to compute predictions for type = "response" or type = "link".

...

not used.

Value

Depending on the specifications of argument type.

Note

This prediction method is based on refitting the initial model with weights, i.e., if new observations lie outside the domain of the respective covariate, the knot locations when using e.g. P-splines are calculated using the old and the new data. Hence, if there are large gaps between the old data domain and new observations, this could affect the overall fit of the estimated spline, i.e., compared to the initial model fit there will be smaller or larger differences depending on the newdata provided.

Author(s)

Nikolaus Umlauf, Thomas Kneib, Stefan Lang, Achim Zeileis.

See Also

fitted.bayesx, bayesx.

Examples

## Not run: 
## generate some data
set.seed(121)
n <- 500

## regressors
dat <- data.frame(x = runif(n, -3, 3), z = runif(n, 0, 1),
  w = runif(n, 0, 3))

## generate response 
dat$y <- with(dat, 1.5 + sin(x) + z -3 * w + rnorm(n, sd = 0.6))

## estimate model
b <- bayesx(y ~ sx(x) + z + w, data = dat)

## create some data for which predictions are required
nd <- data.frame(x = seq(2, 5, length = 100), z = 1, w = 0)

## prediction model from refitting with weights
nd$fit <- predict(b, newdata = nd)
plot(fit ~ x, type = "l", data = nd)

## End(Not run)

R2BayesX documentation built on Oct. 20, 2023, 9:11 a.m.