R: Log Marginal Likelihood via Bridge Sampling

bridge_sampler.brmsfit {brms} | R Documentation

## Log Marginal Likelihood via Bridge Sampling

### Description

Computes log marginal likelihood via bridge sampling, which can be used in the computation of bayes factors and posterior model probabilities. The `brmsfit` method is just a thin wrapper around the corresponding method for `stanfit` objects.

### Usage

    ## S3 method for class 'brmsfit'
    bridge_sampler(samples, ...)

### Arguments

`samples` | A `brmsfit` object.
`...` | Additional arguments passed to `bridge_sampler.stanfit`.

### Details

Computing the marginal likelihood requires samples of all variables defined in Stan's `parameters` block to be saved. Otherwise `bridge_sampler` cannot be computed. Thus, please set `save_pars = save_pars(all = TRUE)` in the call to `brm`, if you are planning to apply `bridge_sampler` to your models.

The computation of marginal likelihoods based on bridge sampling requires a lot more posterior draws than usual. A good conservative rule of thump is perhaps 10-fold more draws (read: the default of 4000 draws may not be enough in many cases). If not enough posterior draws are provided, the bridge sampling algorithm tends to be unstable leading to considerably different results each time it is run. We thus recommend running `bridge_sampler` multiple times to check the stability of the results.

More details are provided under `bridgesampling::bridge_sampler`.

### See Also

`bayes_factor, post_prob`

### Examples

    ## Not run:
    # model with the treatment effect
    fit1 <- brm(
      count ~ zAge + zBase + Trt,
      data = epilepsy, family = negbinomial(),
      prior = prior(normal(0, 1), class = b),
      save_pars = save_pars(all = TRUE)
    )
    summary(fit1)
    bridge_sampler(fit1)

    # model without the treatment effect
    fit2 <- brm(
      count ~ zAge + zBase,
      data = epilepsy, family = negbinomial(),
      prior = prior(normal(0, 1), class = b),
      save_pars = save_pars(all = TRUE)
    )
    summary(fit2)
    bridge_sampler(fit2)

    ## End(Not run)

[Package brms version 2.16.1 Index]