Mathematica 可以在不手动进行计算的情况下进行贝叶斯规则条件概率计算吗?如果有怎么办?
我一直在搜索 Mathemtaica doco 和网络以寻找提示,但找不到任何东西。我不知道如何通过 Mathematica 手动执行贝叶斯规则,我想知道是否有一种方法可以定义条件概率并自动计算其他概率。
因此,使用假设伯努利分布的玩具示例
P(Cancer+) = 0.01
P(Cancer-) = 0.99
P(Test+|Cancer+) = 0.9
P(Test-|Cancer+) = 0.1
P(Test+|Cancer-) = 0.2
P(Test-|Cancer-) = 0.8
是否可以锻炼
P(Cancer+|Test+) = 0.0434
所以使用下面的。
Print["P(C+) = ", PCancerT=BernoulliDistribution[0.01]];
Print["P(C-) = ", PCancerF=BernoulliDistribution[0.99]];
Print[]
Print["P(T+|C+) = ", PTestTGivenCancerT=BernoulliDistribution[0.9]];
Print["P(T-|C+) = ", PTestFGivenCancerT=BernoulliDistribution[0.1]];
Print["P(T+|C-) = ", PTestTGivenCancerF=BernoulliDistribution[0.2]];
Print["P(T-|C-) = ", PTestFGivenCancerF=BernoulliDistribution[0.8]];
Print[]
Print["P(T+,C+) = ", PTestTAndCancerT = Probability[vCT&&vTTCT,{vCT\[Distributed]PCancerT,vTTCT\[Distributed]PTestTGivenCancerT}]];
Print["P(T-,C+) = ", PTestFAndCancerT = Probability[vCT&&vTFCF,{vCT\[Distributed]PCancerT,vTFCF\[Distributed]PTestFGivenCancerT}]];
Print["P(T+,C-) = ", PTestTAndCancerF = Probability[vCF&&vTTCF,{vCF\[Distributed]PCancerF,vTTCF\[Distributed]PTestTGivenCancerF}]];
Print["P(T-,C-) = ", PTestFAndCancerF = Probability[vCF&&vTTCF,{vCF\[Distributed]PCancerF,vTTCF\[Distributed]PTestFGivenCancerF}]];
Print[]
Print["P(C+|T+) = ?"];
Print["P(C+|T-) = ?"];
Print["P(C-|T+) = ?"];
Print["P(C-|T-) = ?"];
我可以通过手动定义所有概率表来计算联合概率,但是有没有办法让 Mathematica 完成繁重的工作?有没有办法定义和计算这些条件概率?
非常感谢您的帮助,即使它是“你不能……停止尝试”:)
PS:这是尝试按照这些思路做事吗? Mathematica 中的符号条件期望