如何添加多个独立的概率来确定单个输出的总体概率



对于任何令人困惑的解释,我提前道歉,但我会尽可能清楚。

如果有多个指标以已知的准确性预测结果,并且它们都试图预测相同的结果,你如何正确地添加概率?

例如,如果约翰和大卫正在参加一项测试,从历史上看,约翰答对了80%的问题,大卫答对了75%的问题,而约翰和大卫在一个问题上都选择了相同的答案,那么他们正确的概率是多少?让我们假设约翰和大卫是完全独立的,所有的问题都同样困难。

我认为它们正确的概率高于80%,所以我认为平均值没有意义。

感谢Robert对这个问题的评论,我发现我正在寻找的是一个由贝叶斯定理解决的著名问题,该定理用于在给定新信息的情况下重新评估现有概率。我不会再深入了解它背后的直觉,但3Blue1Brown有一个关于这个主题的非常好的视频。

贝叶斯定理指出:P(A|B(=(P(A(*P(B((/

其中:P(A(是概率1,P(!A(是1-P(A(,P(B(是概率2,并且P(!B(是1-P(B(

在问题的场景中使用这个等式,如果John有80%的机会是对的,David有75%的机会是正确的,并且双方都同意,那么他们都正确的机会是92.3%

为了证明这一点,我编写了一个简单的python脚本,模拟了n次这个确切的场景并打印出结果。在该代码中;专家";具有一组正确或错误的概率,并且它们的准确性被单独或一起跟踪。

import random
TRIALS = 1000000
exp1_correct = 0
exp2_correct = 0
combined_correct = 0
consensus_count = 0
for i in range(TRIALS):
expert1 = random.random() <= 0.8
expert2 = random.random() <= 0.75
if expert1 and expert2:
combined_correct += 1
if expert1:
exp1_correct += 1
if expert2:
exp2_correct += 1
if expert1 == expert2:
consensus_count += 1
print(f'Expert 1 had an accuracy of {exp1_correct / TRIALS}')
print(f'Expert 2 had an accuracy of {exp2_correct / TRIALS}')
print(f'Consensus had an accuracy of {combined_correct / consensus_count}')

运行此操作可以验证上面的等式是否正确。希望这对和我有同样问题的人有帮助!

最新更新