如何在 r 中应用贝叶斯定理
贝叶斯定理对于两个事件A和B作出以下陈述:
P(A|B) = P(A)*P(B|A) / P(B)
金子:
- P(A|B):给定事件 B,事件 A 发生的概率。
- P(B|A):在事件 A 发生的情况下,事件 B 发生的概率。
- P(A):事件A的概率。
- P(B):事件B的概率。
例如,假设天气为多云的概率为 40%。我们还假设某一天下雨的概率是 20%,下雨天有云的概率是 85%。
如果某一天外面多云,那一天下雨的可能性有多大?
解决方案:
- P(阴天)= 0.40
- P(雨)= 0.20
- P(阴天 | 雨) = 0.85
因此,我们可以计算:
- P(雨 | 阴天) = P(雨) * P(阴天 | 雨) / P(阴天)
- P(雨 | 阴天) = 0.20 * 0.85 / 0.40
- P(雨 | 阴天) = 0.425
如果某一天外面多云,那么那天下雨的几率是42.5% 。
我们可以创建以下简单函数来在 R 中应用贝叶斯定理:
bayesTheorem <- function (pA, pB, pBA) { pAB <- pA * pBA / pB return (pAB) }
下面的例子展示了如何在实际中使用这个功能。
示例:R 中的贝叶斯定理
假设我们知道以下概率:
- P(雨)= 0.20
- P(阴天)= 0.40
- P(阴天 | 雨) = 0.85
为了计算 P(rain | cloudy),我们可以使用以下语法:
#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
这告诉我们,如果某一天外面是多云,那么那天下雨的几率是0.425或42.5% 。
这与我们之前手动计算的值相符。
其他资源
以下教程解释了如何在 R 中计算其他概率:
如何计算R中的条件概率
如何计算R中的条件均值