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
Run Code Online (Sandbox Code Playgroud)
是否有可能解决问题
P(Cancer+|Test+) = 0.0434
Run Code Online (Sandbox Code Playgroud)
所以使用下面的内容.
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+) = …Run Code Online (Sandbox Code Playgroud) 是否有可能使用概率函数或NProbability函数计算4次投币的3个或更多头的概率.
这不是关于这个问题的微不足道的答案的问题,更多的是要了解如何使用分布来解决Mathematica的这类问题.
所以使用分布P的4个随机变量
我希望这样的东西可以解决问题,但它不起作用.我得到0.
P = BernoulliDistribution[0.5];
vars = List[Distributed[a,P],Distributed[b,P],Distributed[c,P],Distributed[c,P]];
NProbability[Count[ {a,b,c,d}, 1] >= 3, vars]
Run Code Online (Sandbox Code Playgroud)
任何想法将不胜感激.