tidybayes-models: Models supported by tidybayes

tidybayes-modelsR Documentation

Models supported by tidybayes

Description

Tidybayes supports two classes of models and sample formats: Models/formats that provide prediction functions, and those that do not.

All Supported Models/Sample Formats

All supported models/formats support the base tidybayes sample extraction functions, such as tidy_draws(), spread_draws(), gather_draws(), spread_rvars(), and gather_rvars(). These models/formats include:

  • rstan models

  • cmdstanr models

  • brms::brm() models

  • rstanarm models

  • runjags::runjags() models

  • rjags::jags.model() models, if sampled using rjags::coda.samples()

  • jagsUI::jags() models

  • MCMCglmm::MCMCglmm() models

  • coda::mcmc() and coda::mcmc.list() objects, which are output by several model types.

  • posterior::draws objects

  • Any object with an implementation of posterior::as_draws_df() or posterior::as_draws(). For a list of those available in your environment, run methods(as_draws_df) or methods(as_draws)

  • Any object with an implementation of coda::as.mcmc.list(). For a list of those available in your environment, run methods(as.mcmc.list)

If you install the tidybayes.rethinking package, models from the rethinking package are also supported.

Models Supporting Prediction

In addition, the following models support fit and prediction extraction functions, such as add_epred_draws(), add_predicted_draws(), add_linpred_draws(), add_epred_rvars(), add_predicted_rvars(), and add_linpred_rvars():

  • brms::brm() models

  • rstanarm models

  • any package with implementations of rstantools::posterior_epred(), rstantools::posterior_predict(), or rstantools::posterior_linpred() that include an argument called newdata which takes a data frame of predictors.

If your model type is not in the above list, you may still be able to use the add_draws() function to turn matrices of predictive draws (or fit draws) into tidy data frames. Or, you can wrap output from a prediction function in posterior::rvar() and add it to a data frame so long as that output is a matrix with draws as rows.

If you install the tidybayes.rethinking package, models from the rethinking package are also supported.

Extending tidybayes

To include basic support for new models, one need only implement the tidy_draws() generic function for that model. Alternatively, objects that support posterior::as_draws() or coda::as.mcmc.list() will automatically be supported by tidy_draws().

To include support for estimation and prediction, one must either implement the epred_draws(), predicted_draws(), and linpred_draws() functions or their correspond functions from rstantools: rstantools::posterior_epred(), rstantools::posterior_predict(), and rstantools::posterior_linpred(). If you take the latter approach, you should include newdata and ndraws arguments that work as documented in predicted_draws().


mjskay/tidybayes documentation built on Sept. 10, 2023, 5:20 a.m.