p_to_bf {bayestestR}R Documentation

Convert p-values to (pseudo) Bayes Factors


Convert p-values to (pseudo) Bayes Factors. This transformation has been suggested by Wagenmakers (2022), but is based on a vast amount of assumptions. It might therefore be not reliable. Use at your own risks. For more accurate approximate Bayes factors, use bic_to_bf() instead.


p_to_bf(x, log = FALSE, ...)

## S3 method for class 'numeric'
p_to_bf(x, log = FALSE, n_obs = NULL, ...)

## Default S3 method:
p_to_bf(x, log = FALSE, ...)



A (frequentist) model object, or a (numeric) vector of p-values.


Wether to return log Bayes Factors. Note: The print() method always shows BF - the "log_BF" column is only accessible from the returned data frame.


Other arguments to be passed (not used for now).


Number of observations. Either length 1, or same length as p.


A data frame with the p-values and pseudo-Bayes factors (against the null).


See Also

bic_to_bf() for more accurate approximate Bayes factors.


if (requireNamespace("parameters", quietly = TRUE)) {
  model <- lm(Petal.Length ~ Sepal.Length + Species, data = iris)

  # Examples that demonstrate comparison between
  # BIC-approximated and pseudo BF
  # --------------------------------------------
  m0 <- lm(mpg ~ 1, mtcars)
  m1 <- lm(mpg ~ am, mtcars)
  m2 <- lm(mpg ~ factor(cyl), mtcars)

  # In this first example, BIC-approximated BF and
  # pseudo-BF based on p-values are close...

  # BIC-approximated BF, m1 against null model
  bic_to_bf(BIC(m1), denominator = BIC(m0))

  # pseudo-BF based on p-values - dropping intercept
  p_to_bf(m1)[-1, ]

  # The second example shows that results from pseudo-BF are less accurate
  # and should be handled wit caution!
  bic_to_bf(BIC(m2), denominator = BIC(m0))
  p_to_bf(anova(m2), n_obs = nrow(mtcars))

[Package bayestestR version 0.13.0 Index]