杜宝坤

V1

2022/07/12阅读:16主题:全栈蓝

核酸检测为何十人混检

一 背景

2020年初,一场突如其来的新冠疫情在中国武汉爆发。其实按照很多权威机构的说法,在国外早有先例,这里不讨论病毒的起源问题。感谢党和政府,坚持清零政策,最大限度的保障了人民的权益。

面对疫情,全国一盘棋,拧成一股绳。一声呼唤:成百上千医护人员除夕奔赴疫情中心武汉。一个号召:全民春节不出门。一个动员:10天10夜,火神山医院拔地而起;8天时间,雷神山医院全面完工……这让世界见证了中国自信、中国力量、中国速度、中国效率。

八十四岁高龄的钟南山院士,直奔疫区,身先士卒;七十三岁的李兰娟院士,投身试验室,呕心沥血;张定宇院长身患疾病,冲锋在前,坚守岗位……他们都是英雄,生死置外、忘我投入、可歌可泣。他们勇于担当,冲在一线,勇于奉献,坚定跟党走的信心和决心。

疫情面前,没有人是一座孤岛,也没有人能独善其身。面对突发而至的疫情,远在武汉,近在驻马店,没有人选择退缩,而是患难与共,逆行而上。从抢着报名冲向一线的医护人员,到主动减租的房东,再到坚守岗位的社区工作者、一呼百应的“红马甲”,大家身份不同、职业不同,却一样献出自身力量,用自觉、互助、友爱的微光,汇聚成照亮这座城市的明媚春光,彰显民族坚强、中国自信的品格。

记得当时刷短视频的时候,刷到了很多医务工作者义无反顾的去援助武汉,不考虑个人的安危,为了国家为了人民而奋不顾身,当时感动的留下了泪水,深深感悟:今生不悔入华夏,来世还做华夏人!

今年五月以来,北京地区陆续出现了疫情。受此影响,从五一之后,很多公司一直在居家办公。并且进行频繁的核酸监测,最近一段时间基本是每天一检。不过在检测过程中,我发现一个现象,核酸试管不是每个人独有的,而是混合的,那么为什么要这么设计呢?这里面有什么理论呢?今天就和大家讨论一下。

二 问题提出

社区大型核酸检测的时候,并不是直接一个一个人做测量的。社区工作者会把受检人分成10个人1组,把10个人的唾液样本混合之后再用核酸试剂进行测试。

混合检测是将10人采集的10个唾液样本采集到一根采集管中进行核酸检测。如果检测结果为阴性,则表示10个样本全部为阴性,即均为正常;如果混合试验筛查结果为阳性,将立即通知相关部门暂时隔离混合管的10名受试者,并重新收集单管唾液进行复查,以确定10名受试者中哪一人为阳性。采用样本混合检测模式可以大大提高检测效率,发挥多重筛查、早期诊断的作用,减少传播,节约社会成本。该检测模式适用于大规模和群体筛查。

但是这样做真的达到了最高的效率吗?如果患病的比例较高,是不是会降低效率呢?或者说患病率在多少的时候这样做是提升效率;又在多少的时候是降低效率呢?

另外为什么一定要是10个人呢?20个人行不行,5个人行不行呢?

三 问题解答

现在我们从数学的角度进行分析,首先我们先定义几个变量:

  • N:总共需要进行核酸检测的人数;
  • P:病毒的携带率或者叫做患病率;
  • K:采样k个人的唾液进行混合检测(K>=1);

总体原则:为了减少工作量,提升效率与节省资源,尽快的产生出核酸检测结果,所以一次性的将K个人的唾液样本进行混合,然后再进行检测。

  1. 如果K个人的唾液样本检测是阴性的,则说明这K个人都没有患病,则每个人的检测的次数是
  2. 如果K个人的唾液样本检测是阳性的,则说明这K个人中至少有一个人是患病的,那么需要对这K个人再进行单独的检测,则每个人的检测的次数是 ;

由于每个人的检测次数只有 两种,则符合概率分布中的伯努利分布,

  1. K个人都没有感染的概率:

  2. K个人中至少有一个感染的概率:

则可以求得X的数学期望E(X),我们要求的是最小值。

特别的当 ,即 的时候,混检比单独检测更加有效率,否则的话,混检的效率低于单独检测。

那么为啥K选10的问题,我估计可能是结合武汉疫情总结出来的。所以我查了下2020年初的时候武汉疫情情况,数据如下:当时武汉的人口大概1000w,约8万人感染新冠病毒,感染率P=0.008,那么

根据数学期望的公式是 ,那么求解它的最小值,就是求单变量的极值的问题。这个函数有两个变量不太好解,我们可以根据P的不同取值进行计算(例如武汉的感染率P=0.008)。使用matlab进行求解,如下图,感染率取0.001,0.01,0.05时,K最佳取值是32,11,15。

不过可能很多同学没有Matlab,用Python简单写下

  1 import numpy as np
  2
  3 min=100000
  4 P=0.01
  5 k=1
  6 K=0
  7 for i in range(1000):
  8   EX=1-np.power(1-P,k) + 1/k
  9   if EX < min:
 10     min = EX
 11     K=k
 12   k+=1
 13
 14 print(min)
 15 print(K)
  
输出如下:
0.19557083665037453
11

这里计算出来的结果是11,不是10,原因呢,可能是我找到的武汉疫情的数据的感染率有差异,所以就当做10吧。

到这里大家应该理解了,为啥北京目前的核酸检测都是10人一组了吧。里面有一部分是概率计算的原因,毕竟现在的P值还不大,混检比单独检测还是效率高,同时选择10是复用了武汉的成功经验。

四 思考

那么我们目前使用10是否是最有效率的呢?从上面可以看出感染率在0.01也就是百分之一的时候,取10是最佳的,不过从目前公布的情况看,北京疫情应该控制的还好,应该是远低于百分之一,感觉是否可以适当增大点混合采样的人数呢?

五 番外篇

个人介绍:杜宝坤,隐私计算行业从业者,从0到1带领团队构建了京东的联邦学习解决方案9N-FL,同时主导了联邦学习框架与联邦开门红业务。 框架层面:实现了电商营销领域支持超大规模的工业化联邦学习解决方案,支持超大规模样本PSI隐私对齐、安全的树模型与神经网络模型等众多模型支持。 业务层面:实现了业务侧的开门红业务落地,开创了新的业务增长点,产生了显著的业务经济效益。 个人比较喜欢学习新东西,乐于钻研技术。基于从全链路思考与决策技术规划的考量,研究的领域比较多,从工程架构、大数据到机器学习算法与算法框架均有涉及。欢迎喜欢技术的同学和我交流,邮箱:baokun06@163.com

六 公众号导读

自己撰写博客已经很长一段时间了,由于个人涉猎的技术领域比较多,所以对高并发与高性能、分布式、传统机器学习算法与框架、深度学习算法与框架、密码安全、隐私计算、联邦学习、大数据等都有涉及。主导过多个大项目包括零售的联邦学习,社区做过多次分享,另外自己坚持写原创博客,多篇文章有过万的阅读。公众号秃顶的码农大家可以按照话题进行连续阅读,里面的章节我都做过按照学习路线的排序,话题就是公众号里面下面的标红的这个,大家点击去就可以看本话题下的多篇文章了,比如下图(话题分为:一、隐私计算 二、联邦学习 三、机器学习框架 四、机器学习算法 五、高性能计算 六、广告算法 七、程序人生),知乎号同理关注专利即可。

一切有为法,如梦幻泡影,如露亦如电,应作如是观。

分类:

后端

标签:

后端

作者介绍

杜宝坤
V1