Identify the optimal number of shifts using Bayes factors

Share:

Description

stepBF is a function to determine the overall best fitting number of shifts using Bayes factor evidence.

Usage

1
2
stepBF(BFmat, step.size = 20, expectedNumberOfShifts = 1,
  inputType = "matrix")

Arguments

BFmat

square Bayes factor matrix or a named vector of posterior probabilities

step.size

how much Bayes factor support is required to accept a more complex model, see Details

expectedNumberOfShifts

expected number of shifts under the prior (only needed for inputType = 'postProb')

inputType

describes the input: 'matrix' or 'postProb'

Details

stepBF takes either a square Bayes factor matrix (such as output by computeBayesFactors) or a named vector of posterior probabilities. If posterior probabilities are supplied, the model prior (expectedNumberOfShifts) must also be provided. If the input is a Bayes factor matrix, specify inputType = 'matrix', otherwise if the input is a named vector of posterior probabilities, specify inputType = 'postProb'.

The step.size argument is how much Bayes factor support is needed to accept a more complex model. By default, this value is 1, so any more complex model that has a better Bayes factor than the previous model will be accepted. Increasing the step size greatly reduces the Type I error at the cost of inflating Type II error. So, with increasing step.size, you will infer fewer shifts.

Value

a list of 3 items: the number of shifts for the best model, the number of shifts for the second best model, and the Bayes factor support for the best model over the second best.

Author(s)

Jonathan Mitchell

References

http://bamm-project.org

See Also

computeBayesFactors

Examples

1
2
3
4
5
6
7
8
9
data(mcmc.whales)
# remove 10% burnin
mcmc.whales <- mcmc.whales[floor(0.1 * nrow(mcmc.whales)):nrow(mcmc.whales), ]
# from a square matrix of Bayes factor values (inputType = 'matrix')
bfmat <- computeBayesFactors(mcmc.whales, expectedNumberOfShifts = 1, burnin = 0)
stepBF(bfmat, step.size = 1, inputType = 'matrix')
# or from a vector of posterior probabilities (inputType = 'postProb')
postProb <- table(mcmc.whales$N_shifts) / nrow(mcmc.whales)
stepBF(postProb, step.size = 1, inputType = 'postProb')

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.