混检阳性概率的计算(贝叶斯定理的一个应用例)

news2024/10/7 2:02:50

目录

1. 混检阳性概率的计算

2. 混管阳性时你阳性的概率有多大?

2.1 贝叶斯分析结果的解释


1. 混检阳性概率的计算

        目前核酸混检的基本做法是十混一,如果阳性人群分布完全随机,那么做十混一混检为阳性的概率有多大呢?
        假设人群整体感染率为p,
        十个人中任意一个人为阳性的话,混检结果为阳性。
        只有十个人都是阴性时,混检结果才为阴性。

        这样为了方便,我们假定混检的漏检概率为0,即任何一个人是阳性的话肯定能够得到混检阳性的结果;虚警概率也为0,即十个人全阴性的条件下不会报告阳性。

        由于人群整体感染率为p,所以任意某人为阴性的概率为(1-p),十个人全部是阴性的概率为(1-p)^{10}
        因此,十混一混检阳性率为: P_{10}=1-(1-p)^{10}.

        当然,任意K混一的混检阳性率为: P_K=1-(1-p)^K.

        用python写个小程序来计算一下不同的人群感染率条件下的混检阳性概率,代码如下:

import matplotlib.pyplot as plt
import numpy as np

Prob_pos = []
Prob_pos_dict = dict()
for k in range(20):
    p = 0.05 * k
    Prob_pos.append(1 - (1-p)**10) 
    Prob_pos_dict[p] = (1 - (1-p)**10) 
    print('p = {0:4.2f}, Prob_pos = {1:5.3f}'.format(p,Prob_pos[k]))

p = np.arange(0,1,0.05)
plt.plot(p, Prob_pos)    
plt.grid()
plt.xlabel('basic positive probability')
plt.ylabel('mixed_10 positive probability')

        运行以上程序可以得到结果如下:

p = 0.00, Prob_pos = 0.0000
p = 0.05, Prob_pos = 0.4013
p = 0.10, Prob_pos = 0.6513
p = 0.15, Prob_pos = 0.8031
p = 0.20, Prob_pos = 0.8926
p = 0.25, Prob_pos = 0.9437
p = 0.30, Prob_pos = 0.9718
p = 0.35, Prob_pos = 0.9865
p = 0.40, Prob_pos = 0.9940
p = 0.45, Prob_pos = 0.9975
p = 0.50, Prob_pos = 0.9990
p = 0.55, Prob_pos = 0.9997
p = 0.60, Prob_pos = 0.9999
p = 0.65, Prob_pos = 1.0000
p = 0.70, Prob_pos = 1.0000
p = 0.75, Prob_pos = 1.0000
p = 0.80, Prob_pos = 1.0000
p = 0.85, Prob_pos = 1.0000
p = 0.90, Prob_pos = 1.0000
p = 0.95, Prob_pos = 1.0000

 

        这个结果意味着什么呢? 

        当p=5%,也就是人群中整体感染率达到5%时,十混一核酸混检阳性率就会达到惊人的40.13%。
        当p=10%时,则核酸混检阳性率P=65.13%。
        当p=20%时,则核酸混检阳性率P=89.26%。
        当p=30%时,则核酸混检阳性率P=97.17%。
        也就是说,如果人群中的感染率达到一定数值(比如说30%以上)后,你只要去做核酸混检,基本就是混管阳性。而且在做核酸的过程中,你等于是跟阳性感染者亲密接触。所以在目前放开的条件下,人群感染率自然地会逐渐增长,这种情况下再做混管检测除了劳民伤财外,只会起到加速扩散传播的效果。

2. 混管阳性时你阳性的概率有多大?

        我们可以进一步问一个问题,你在其中的那个混管检测的结果为阳性时,你是阳性的概率有多大呢?

        我们可以基于贝叶斯定理对这个问题进行分析。贝叶斯定理可以用以下公式(有多种表达方式,此为其中一种。有兴趣的小伙伴可以参考蒙提霍尔问题(The Monty Hall Problem)解析(贝叶斯分析、Python仿真))表示:

                P(H|D) = \frac{P(D|H)P(H)}{P(D)}       

        其中,

        H表示你为阳性的假设,P(H)表示你为阳性的先验概率,其实就是人群整体感染率p

        D表示观测结果,即你所在混管检测的结果为阳性。P(D)表示在当前人群群体感染率的条件下任意混管报告阳性的概率,也可以写为P(D;p)。

        P(D|H)表示似然概率,意思是说如果你是阳性,则你的混管检测结果为阳性的概率。由于前面我们已经假设了混管检测的漏检和虚警概率均为0,所以很显然有P(D|H) = 1

        这个问题其实就是如果你的混管检测的结果为阳性,你为阳性的后验概率是多少。基于以上分析,本问题的后验概率可以改写为:

        ​​​​​​​        P(H|D) = \frac{p}{P(D;p)}

        同样,在上面的python程序的基础上进一步追加几行代码来计算在不同人群群体感染率条件下混管检测为阳性时你为阳性的后验概率,代码如下:

posterior = []
for k in range(1,20):
    prior = 0.05 * k
    P_data = Prob_pos[k]    
    posterior.append(prior * 1.0 / P_data)
    print('p = {0:4.2f}, posterior = {1:5.3f}'.format(prior, posterior[k-1]))
    
p = np.arange(0.05,1,0.05)
plt.plot(p, posterior)    
plt.grid()
plt.xlabel('basic positive probability')
plt.ylabel('posterior probability')    

        运行结果如下:

p = 0.05, posterior = 0.125
p = 0.10, posterior = 0.154
p = 0.15, posterior = 0.187
p = 0.20, posterior = 0.224
p = 0.25, posterior = 0.265
p = 0.30, posterior = 0.309
p = 0.35, posterior = 0.355
p = 0.40, posterior = 0.402
p = 0.45, posterior = 0.451
p = 0.50, posterior = 0.500
p = 0.55, posterior = 0.550
p = 0.60, posterior = 0.600
p = 0.65, posterior = 0.650
p = 0.70, posterior = 0.700
p = 0.75, posterior = 0.750
p = 0.80, posterior = 0.800
p = 0.85, posterior = 0.850
p = 0.90, posterior = 0.900
p = 0.95, posterior = 0.950

 

2.1 贝叶斯分析结果的解释

        如何解释这一结果呢?

        我们知道贝叶斯定理的一个种解释时,基于观测结果来更新对一件事件发生的信念(概率)。由于人群整体感染率为p,那么在我们没有做混管检测的条件下,很自然地我们应该认为自己是阳性的概率就等于这个p,这个称之为先验概率。

        基于混管检测结果,我们将根据混管检测结果所提供的信息更新自己是阳性的概率。

        如果群体感染率比较高,比如说达到了30%了,则由上一节仿真结果可知,混管检测几乎100%是阳性了,这意味着混管检测已经不能为“你是否阳性”的判断提供什么有效的信息了。因此,在群体感染率30%以上时,后验概率基本就等于先验概率。

        只有在群体感染率还比较低的时候,混管检测结果还有一定的参考意义。比如说,p=0.05时,如果你的混管检测结果为阳性的话,你为阳性的概率将由5%上升为12.5%。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/80541.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对immutable的理解?如何应用在react项目中?

一、是什么 Immutable,不可改变的,在计算机中,即指一旦创建,就不能再被更改的数据 对 Immutable 对象的任何修改或添加删除操作都会返回一个新的 Immutable 对象 Immutable 实现的原理是 Persistent Data Structure&#xff08…

笔试强训(四十二)

目录一、选择题二、编程题2.1 解读密码2.1.1 题目2.1.2 题解2.2 走迷宫2.2.1 题目2.2.2 题解一、选择题 (1)tcp套接字中,不会阻塞的是哪一种操作(D) A.read B.write C.accept D.bind bind函数不会阻塞执行流的 &#…

Stm32旧版库函数3——nrf24l01 16位数据 51单片机发送与stm32接收

51代码&#xff1a; #include <reg52.h> #include <intrins.h> typedef unsigned char uchar; typedef unsigned char uint; //****************************************NRF24L01端口定义*************************************** sbit MISO P1^7; sbit …

runnable、callable、consumer、supplier

Java 没有委托的概念&#xff1b; 相反&#xff0c;如果需要一个指向函数的指针&#xff0c;可以创建内联匿名类&#xff08;或 Java 8 的 lambda 表达式&#xff09;&#xff0c;它们是为此建议设计的某些接口的实现&#xff08;也称为 Java 8 的功能接口&#xff09;。 然而&…

Java项目:SSM汽车维修中心管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本系统包括普通用户和管理员两种角色&#xff1b; 用户角色包含以下功能&#xff1a; 用户信息管理,查看车辆信息,维修记录查看等功能。 管理…

ORB-SLAM2 --- Tracking::GrabImageMonocular函数解析

目录 1.函数作用 2.到这步之前我们做了什么 3.code 4.函数解析 1.函数作用 哈哈哈&#xff0c;这其实应该是这个专栏的第一篇文章&#xff0c;也没什么必要写&#xff0c;但是我怕大家看的时候对单目还没有初始化没有进入跟踪线程前面比较懵逼&#xff0c;所以我补了此内…

Kali Linux安装go语言环境详解

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是Kali Linux安装go语言环境。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1a;严禁对未…

【实操篇】Linux权限管理

目录 ●权限的基本介绍 ●rwx权限 ①rwx作用到文件 ②rwx作用到目录 ●修改权限——chmod ①、-、变更权限 ②数字变更权限 ●修改文件所有者——chown ●修改文件所在组——chgrp ●权限的基本介绍 从中随便找一行进行分析如下图所示&#xff1a; 1.文件类型 - &#x…

Hudi 0.12.0 搭建——集成 Hive3.1 与 Spark3.2

Hudi 搭建环境准备一、安装 Maven1.解压2.配置环境变量3.修改 Maven 下载源二、安装 Hudi1.解压2.配置环境变量3.修改 Hudi 下载源与对应版本号4.修改源码以兼容 Hadoop3.x5. 解决 Spark 依赖冲突6. 解决 Spark 向 Hudi 插入报错7. 编译 Hudi8. 启动测试集群其它生态安装与配置…

JSP ssh驾校管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 JSP ssh驾校管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式 开发。开发环境为TOMCAT7.0,Mye…

6秒钟读懂网络攻击和防御的有关产品理论

文章目录一 常见网络攻击1.病毒攻击2.DDos网络攻击3.木马攻击WebsSheLL4.渗透攻击数据拖取5.APP漏洞6.营销撸羊毛7&#xff0c;DDoS攻击挑战二&#xff0c;大禹基本功能1.基础防护2.BGP高防包3.BGP高仿IP4.棋牌盾三&#xff0c;大禹技术原理1.高仿IP牵引攻击流量&#xff0c;保…

Java安全--CC3

CC3和CC1和CC6的执行命令方式不一样。CC3使用的是动态类加载。我们把恶意代码写在加载类的静态构造方法中。需要注意的是&#xff1a; 当初始化的时候就会执行静态构造方法&#xff0c;defineClass的时候是不会执行静态构造代码块的&#xff0c;我们在找利用点的时候需要有new…

1658 页的《Java 面试突击核心讲》在牛客网火了,完整版 PDF 开放下载!

前言 我们都知道&#xff0c;在程序员的职业生涯中&#xff0c;有多个发展方向&#xff0c;不过就数据表明&#xff0c;近年来选择架构师方向的开发人员也越来越多。 对于架构师的发展前途&#xff0c;我相信是已经没有争议的&#xff0c;但这个“概念”对于很多开发人员来说…

[ vulhub漏洞复现篇 ] solr XML外部实体注入(CVE-2017-12629-xxe)

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

网站权重怎么批量查?怎么批量查询网站的360权重

批量查询网站360权重的操作&#xff1a; 第一步、打开SEO综合查询工具 第二步、添加需要查询的网站域名&#xff08;有多少放多少&#xff0c;一行一个域名&#xff09; 第三步、勾选360权重PC权重和360移动权重 第四步、点击开始查询 第五步、等待查询结果出来 如果需要导出查…

vue 前端实现随机背景色

目录前言&#xff1a;步骤&#xff1a;功能效果展示&#xff1a;代码&#xff1a;总结&#xff1a;前言&#xff1a; 要求是页面对应的几个模块每次打开都要显示多个不同的随机颜色&#xff0c;点击刷新则显示的颜色改变。我就封装成了一个函数&#xff0c;有不足的地方&#…

【小甲鱼C语言】课后笔记第一章第二节——变量

目录 1、变量的命名规则 2、关键字 3、基本数据类型 4、声明变量的语法 5、课后习题&#xff08;编程题&#xff09; 1、变量的命名规则 C语言变量名只能是英文字母&#xff08;A-Z&#xff0c;a-z&#xff09;和数字&#xff08;0-9&#xff09;或者下划线&#xff08;_&…

【云原生进阶之容器】第一章Docker核心技术1.1节——Docker综述

1 Docker简述 1.1 什么是Docker Docker是一个开源的软件项目,让用户程序部署在一个相对隔离的环境运行,借此在Linux操作系统上提供一层额外的抽象,以及操作系统层虚拟化的自动管理机制。需要额外指出的是,Docker并不等于容器(containers),Docker只是容器的一种,其他的种…

使用vite插件编写tsx文件

一般情况下&#xff0c;我们在template标签里去写静态页面模板。现在可以扩展另一种书写风格 tsx&#xff0c;类似react的jsx语法。vue2 的时候就已经支持jsx写法&#xff0c;只不过不是很友好&#xff0c;随着vue3对typescript的支持度增高&#xff0c;tsx写法越来越被接受。 …

基本素质提升(一)----日常/命令积累

目录 一、引言 二、日常积累 三、命令积累 一、引言 这个主题主要带大家学习一下日常开发所使用的命令及相关知识&#xff0c;会持续更新 二、日常积累 1、kill 给某个进程发送信号 kill -STOP pid(进程号)&#xff0c;可以发送任何信号给进程&#xff1b;kill -STOP %…