Quantify the strength of the evidence provided by the data to a model/hypothesis according to Bayes factor interpretation scales suggested by Jeffreys (1961) and Kass and Raftery (1995) .

bfactor_interpret(bf, scale = "jeffreys")

Arguments

bf

A numeric vector of non-negative values.

scale

A string of characters specifying either "jeffreys" or "kass-raftery". Not case sensitive.

Value

Returns a character vector with the same length as bf.

Details

Bayes factors are a summary of the evidence provided by the data to a model/hypothesis. Jeffreys (1961) suggested the interpretation of Bayes factors in half-units on the base 10 logarithmic scale, as indicated in the following table:

log10(Bayes factor)Bayes factorEvidence
[-Inf, 0[[0, 1[Negative
[0, 0.5[[1, 3.2[Weak
[0.5, 1[[3.2, 10[Substantial
[1, 1.5[[10, 32[Strong
[1.5, 2[[32, 100[Very Strong
[2, +Inf[[100, +Inf[Decisive

By default, bfactor_interpret takes Bayes factors as input and returns the strength of the evidence in favor of the model/hypothesis in the numerator of the Bayes factors (usually the null hypothesis) according to the aforementioned table.

Alternatively, and because it can be useful to consider twice the natural logarithm of the Bayes factor (which is in the same scale as the familiar deviance and likelihood ratio test statistics), Kass and Raftery (1995) suggested the following scale:

2*log(Bayes factor)Bayes factorEvidence
[-Inf, 0[[0, 1[Negative
[0, 2[[1, 3[Weak
[2, 6[[3, 20[Positive
[6, 10[[20, 150[Strong
[10, +Inf[[150, +Inf[Very Strong

To interpret Bayes factors according to the latter table use scale = "kass-raftery".

When comparing Bayes factors with results from standard likelihood ratio tests it is convenient to put the null hypothesis in the denominator of the Bayes factor so that bfactor_interpret returns the strength of the evidence against the null hypothesis. If bf was obtained with the null hypothesis on the numerator, one can use bfactor_interpret(1/bf) or bfactor_interpret(1/bf, scale = "kass-raftery") to obtain the strength of the evidence against the null hypothesis.

References

Jeffreys H (1961). Theory of probability, Oxford Classic Texts In The Physical Sciences, 3 edition. Oxford University Press.

Kass RE, Raftery AE (1995). “Bayes factors.” Journal of the American Statistical Association, 90(430), 773--795.

See also

  • bfactor_log_interpret for the interpretation of the logarithms of Bayes factors.

  • bfactor_to_prob to turn Bayes factors into posterior probabilities.

  • bcal for a p-value calibration that returns lower bounds on Bayes factors in favor of point null hypotheses.

Examples

# Interpretation of one Bayes factor bfactor_interpret(4)
#> Warning: bfactor_interpret' is deprecated. Please use #> 'polya::bfactor_interpret(bf)' #> instead.
#> [1] "Substantial"
bfactor_interpret(4, scale = "jeffreys")
#> Warning: bfactor_interpret' is deprecated. Please use #> 'polya::bfactor_interpret(bf)' #> instead.
#> [1] "Substantial"
bfactor_interpret(4, scale = "kass-raftery")
#> Warning: bfactor_interpret' is deprecated. Please use #> 'polya::bfactor_interpret(bf)' #> instead.
#> [1] "Positive"
# Interpretation of more than one Bayes factors bfactor_interpret(c(0.1, 1.2, 3.5, 13.9, 150))
#> Warning: bfactor_interpret' is deprecated. Please use #> 'polya::bfactor_interpret(bf)' #> instead.
#> [1] "Negative" "Weak" "Substantial" "Strong" "Decisive"
bfactor_interpret(c(0.1, 1.2, 3.5, 13.9, 150), scale = "jeffreys")
#> Warning: bfactor_interpret' is deprecated. Please use #> 'polya::bfactor_interpret(bf)' #> instead.
#> [1] "Negative" "Weak" "Substantial" "Strong" "Decisive"
bfactor_interpret(c(0.1, 1.2, 3.5, 13.9, 150), scale = "kass-raftery")
#> Warning: bfactor_interpret' is deprecated. Please use #> 'polya::bfactor_interpret(bf)' #> instead.
#> [1] "Negative" "Weak" "Positive" "Positive" "Very Strong"
# Application: chi-squared goodness-of-fit test. # Strength of the evidence provided by the lower # bound of the Bayes factor in favor of the null hypothesis: data <- matrix(c(18, 12, 10, 12, 10, 23), ncol = 2) bfactor_interpret(bcal(chisq.test(data)[["p.value"]]))
#> Warning: bfactor_interpret' is deprecated. Please use #> 'polya::bfactor_interpret(bf)' #> instead.
#> [1] "Negative"