今天有一个小盆友对他们的课程里一道题存在疑问过来问我,说是要求必须应用贝叶斯公式,题目如下:

已知某病发病率5%,假阴率5%,假阳率5%,如果一个人检出了阳性结果,那么他患该病的可能性有多大?

首先需要说明,假阳就是把没病的检成有病的,假阴就是把有病的检成没病的。

然后搬出贝叶斯公式:
p(x∣y)=p(x)∗p(y∣x)p(y)=p(x)∗p(y∣x)∑i=1np(xi)∗p(y∣xi) \begin{aligned} p(x|y) &=
\frac {p(x)*p(y|x)} {p(y)} \\ &= \frac {p(x)*p(y|x)}
{\sum_{i=1}^np(x_i)*p(y|x_i)} \end{aligned}p(x∣y)​=p(y)p(x)∗p(y∣x)​=∑i=1n​p(xi​)
∗p(y∣xi​)p(x)∗p(y∣x)​​
令p(x)为发病率,p(y)为检出阳性的概率,那么p(x|y)就是检出阳性时患病的概率,p(y|x)就是已知患病了检出阳性的概率(也就是真阳率)。

所以我们的结果就是p(x|y)的值,接下来捋一捋其他三个值:

* p(x)发病率题目中已经给出为5%
* p(y|x)为真阳率,用1减去假阴率(真阳就是有病检出有病,假阴是有病检出没病),为95%
* p(y)为检出阳性的概率,分为两块,一个是有病检出有病,另一个是没病的检出有病(发病率x真阳率+未发病率x假阳率):5%*95%+(1-5%)*5%
p(y)用公式表示更能说明问题:

p(y)=p(x)∗p(y∣x)+p(xˉ)∗p(y∣xˉ)p(y)=p(x)*p(y|x)+p(\bar{x})*p(y|\bar{x})p(y)=p(x)
∗p(y∣x)+p(xˉ)∗p(y∣xˉ)

p(y∣xˉ)p(y|\bar{x})p(y∣xˉ)为没病检出有病,即假阳率。p(y)放到贝叶斯公式里,即为:

p(x∣y)=p(x)∗p(y∣x)p(x)∗p(y∣x)+p(xˉ)∗p(y∣xˉ)=5%∗95%5%∗95%+(1−5%)∗5%=50%
\begin{aligned} p(x|y) &= \frac {p(x)*p(y|x)}
{p(x)*p(y|x)+p(\bar{x})*p(y|\bar{x})} \\ &= \frac {5\%*95\%}
{5\%*95\%+(1-5\%)*5\%} \\ &= 50\% \end{aligned}p(x∣y)​=p(x)∗p(y∣x)+p(xˉ)∗p(y∣xˉ)
p(x)∗p(y∣x)​=5%∗95%+(1−5%)∗5%5%∗95%​=50%​

所以我们的答案就是50%,3个5%的值最后准确率只有50%,所以假阳率和假阴率看起来小实际上影响很大。

技术
©2020 ioDraw All rights reserved
(精华)2020年6月26日 C#类库 DataTable(扩展方法)解决CardLayout布局时按钮先执行方法,后切换页面 企业面对SEM竞价和SEO要如何取舍?还是两者都做?浙大数据结构期中考试试题程序(进程)在操作系统中是如何存储、分配空间的分享一场黑客帝国代码雨脚本,简单好玩!C++超级大神欢迎微软当爸爸:请缨重操旧业写游戏代码少儿编程孩子的学习路线django不关闭CSRF中间件,自定义通过CSRF检测的post请求centos7部署springboot jar包