How to Apply Bayes’ Theorem in R?

Bayes’ Theorem in R can be applied using the package ‘bayesFactor’. This package allows you to both calculate and visualize the Bayes’ Factor for different hypotheses and data sets. It also provides tools to compute Bayes’ Factor for specific models, such as linear models, logistic regressions, and probit models. This makes it easier to analyze data and make inferences based on the evidence provided.


Bayes’ Theorem states the following for any two events A and B:

P(A|B) = P(A)*P(B|A) / P(B)

where:

  • P(A|B): The probability of event A, given event B has occurred.
  • P(B|A): The probability of event B, given event A has occurred.
  • P(A): The probability of event A.
  • P(B): The probability of event B.

For example, suppose the probability of the weather being cloudy is 40%.  Also suppose the probability of rain on a given day is 20% and that the probability of clouds on a rainy day is 85%. 

If it’s cloudy outside on a given day, what is the probability that it will rain that day?

Solution:

  • P(cloudy) = 0.40
  • P(rain) = 0.20
  • P(cloudy | rain) = 0.85

Thus, we can calculate:

  • P(rain | cloudy) = P(rain) * P(cloudy | rain) / P(cloudy)
  • P(rain | cloudy) = 0.20 * 0.85 / 0.40
  • P(rain | cloudy) = 0.425

If it’s cloudy outside on a given day, the probability that it will rain that day is 42.5%.

We can create the following simple function to apply Bayes’ Theorem in R:

bayesTheorem <- function(pA, pB, pBA) {
  pAB <- pA * pBA / pB
  return(pAB)
}

The following example shows how to use this function in practice.

Example : Bayes’ Theorem in R

Suppose we know the following probabilities:

  • P(rain) = 0.20
  • P(cloudy) = 0.40
  • P(cloudy | rain) = 0.85
#define function for Bayes' Theorem
bayesTheorem <- function(pA, pB, pBA) {
  pAB <- pA * pBA / pB
  return(pAB)
}

#define probabilities
pRain <- 0.2
pCloudy <- 0.4
pCloudyRain <- .85

#use function to calculate conditional probability
bayesTheorem(pRain, pCloudy, pCloudyRain)

[1] 0.425

This tells us that if it’s cloudy outside on a given day, the probability that it will rain that day is 0.425 or 42.5%.

This matches the value that we calculated earlier by hand.

The following tutorials explain how to calculate other probabilities in R:

x