用Octave计算贝叶斯公式
广告
{{v.name}}
贝叶斯公式是概率论中用于由果溯因的核心公式,它基于先验概率和条件概率,计算在已知结果发生的情况下,某个原因导致该结果的概率。
设样本空间
\(Ω\)
被划分为两两互斥且完备的事件
\(B_1, B_2, ..., B_n\)
(满足
\(P(B_i) > 0\)
),\(A\) 为任意一个概率不为 0 的事件,则对任意
\(B_i\)
有:
\( P(B_i|A) = \frac{P(A|B_i) \cdot P(B_i)}{\sum_{j=1}^n P(A|B_j) \cdot P(B_j)}\)
其中,
\(P(B_i)\):先验概率,指在没有任何结果信息时,原因 \(B_i\) 发生的概率
\(P(A|B_i)\):条件概率,指在原因 \(B_i\) 发生的条件下,结果 \(A\) 发生的概率
\(P(B_i|A)\):后验概率,指在结果 \(A\) 发生的条件下,原因 \(B_i\) 发生的概率
\(P(A)\):结果 \(A\) 发生的总概率
例如:仓库有3箱零件:\(B_1\)(50个,次品率5%)、\(B_2\)(30个,次品率10%)、\(B_3\)(20个,次品率15%)。随机抽一箱再抽一个零件,已知抽到的是次品(事件A),求这个次品来自第1箱(\(B_1\))的概率。
先验概率:\(P(B_1)=0.5\),\(P(B_2)=0.3\),\(P(B_3)=0.2\)
似然概率:\(P(A|B_1)=0.05\),\(P(A|B_2)=0.1\),\(P(A|B_3)=0.15\)
全概率(之前算过):\(P(A)=0.085\)
计算:
\(
P(B_1|A) = \frac{P(A|B_1)\cdot P(B_1)}{P(A)} = \frac{0.05\times0.5}{0.085} = \frac{0.025}{0.085} \approx 0.294
\)
同理可计算次品来自 \(B_2\)、\(B_3\) 的概率,这就是由果溯因——已知“抽到次品”这个结果,反推它来自某一箱的概率。
程序代码如下
function ret = get_bayesian_prior(joint_probability, prob_b, conditional_probability)
ret = (joint_probability * prob_b) / conditional_probability;
endfunction
>> get_bayesian_prior(0.05, 0.5, 0.085)
ans = 0.2941