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
To calculate P(rain | cloudy), we can use the following syntax:
#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.
Additional Resources
The following tutorials explain how to calculate other probabilities in R:
How to Calculate Conditional Probability in R
How to Calculate Conditional Mean in R