predict.mcpfit: Samples from the Posterior Predictive Distribution

View source: R/mcpfit_methods.R

predict.mcpfitR Documentation

Samples from the Posterior Predictive Distribution


Samples from the Posterior Predictive Distribution


## S3 method for class 'mcpfit'
  newdata = NULL,
  summary = TRUE,
  probs = TRUE,
  rate = TRUE,
  prior = FALSE,
  which_y = "ct",
  varying = TRUE,
  arma = TRUE,
  nsamples = NULL,
  samples_format = "tidy",



An mcpfit object.


A tibble or a data.frame containing predictors in the model. If NULL (default), the original data is used.


Summarise at each x-value


Vector of quantiles. Only in effect when summary == TRUE.


Boolean. For binomial models, plot on raw data (rate = FALSE) or response divided by number of trials (rate = TRUE). If FALSE, linear interpolation on trial number is used to infer trials at a particular x.


TRUE/FALSE. Plot using prior samples? Useful for mcp(..., sample = "both")


What to plot on the y-axis. One of

  • "ct": The central tendency which is often the mean after applying the link function.

  • "sigma": The variance

  • "ar1", "ar2", etc. depending on which order of the autoregressive effects you want to plot.


One of:

  • TRUE All varying effects (fit$pars$varying).

  • FALSE No varying effects (c()).

  • Character vector: Only include specified varying parameters - see fit$pars$varying.


Whether to include autoregressive effects.

  • TRUE Compute autoregressive residuals. Requires the response variable in newdata.

  • FALSE Disregard the autoregressive effects. For family = gaussian(), predict() just use sigma for residuals.


Integer or NULL. Number of samples to return/summarise. If there are varying effects, this is the number of samples from each varying group. NULL means "all". Ignored if both are FALSE. More samples trade speed for accuracy.


One of "tidy" or "matrix". Controls the output format when summary == FALSE. See more under "value"


Currently ignored.


  • If summary = TRUE: A tibble with the posterior mean for each row in newdata, If newdata is NULL, the data in fit$data is used.

  • If summary = FALSE and samples_format = "tidy": A tidybayes tibble with all the posterior samples (Ns) evaluated at each row in newdata (Nn), i.e., with ⁠Ns x Nn⁠ rows. If there are varying effects, the returned data is expanded with the relevant levels for each row.

    The return columns are:

    • Predictors from newdata.

    • Sample descriptors: ".chain", ".iter", ".draw" (see the tidybayes package for more), and "data_row" (newdata rownumber)

    • Sample values: one column for each parameter in the model.

    • The estimate. Either "predict" or "fitted", i.e., the name of the type argument.

  • If summary = FALSE and samples_format = "matrix": An N_draws X nrows(newdata) matrix with fitted/predicted values (depending on type). This format is used by brms and it's useful as yrep in ⁠bayesplot::ppc_*⁠ functions.


Jonas Kristoffer Lindeløv

See Also

pp_eval fitted.mcpfit residuals.mcpfit


predict(demo_fit)  # Evaluate at each demo_fit$data
predict(demo_fit, probs = c(0.1, 0.5, 0.9))  # With median and 80% credible interval.
predict(demo_fit, summary = FALSE)  # Samples instead of summary.
  newdata = data.frame(time = c(-5, 20, 300)),  # Evaluate
  probs = c(0.025, 0.5, 0.975)

mcp documentation built on April 1, 2023, 12:03 a.m.