文
曹天元Capo
摘要:
根据模型预测,上海每日报告的新增阳性人数将于5月11日跌破1千,5月22日跌破1百,6月2日跌破10。本轮疫情共将感染88万余人,其中真正被查出来的大约是63万左右。
3月初期从境外输入了约个隐匿阳性,对本轮疫情的加速发展起到了重要作用。
因为缺乏大规模核酸检测能力,上海在疫情初期严重低估情况的严重性。3月28日开始封城前,全市潜伏的阳性总数估计已经接近13万。
因为没有进行过全面排查,上海相比同期的深圳,其真实情况要严重得多。3月15日深圳封城时,上海本地已经存在大约1万4千名阳性。即便上海同日封城,也不可能像深圳那样七天搞定。模拟显示,早封城能将感染总人数控制到32万,比现实下降64%。但封城的实际持续时间却将比现实更长3天。
如果3月28日上海并没有封城,而是选择“共存”,放开不管,那么在此后的3个月内,估计全市将会总共感染1余万人。其中除了2万5千人“正常死亡”之外,还会额外多死至少2-3万人。
模拟显示,封城是“终极大招”,进入封城之后,最终把病毒压下去可谓是一个必然事件,无非是所花费的时间长短而已。因此,在具体的政策和措施上,其实存在一些通融的空间和余地。
对于急救病人来说,即使没有当场核酸报告就让他先入院治疗,所带来的额外风险也极小。每个病人造成的额外代价最多也就是0.个死亡。
如果不切断正常的快递和物流,即使造成传染风险额外上升20%,最后的结果大概也就是总感染人数上升50%,封城时间延长7天左右。不会对清零大方向造成根本性的影响。
同样,即使在感染高峰期允许50%的病人居家隔离,也就造成总感染人数上升38%,封城时间延长大约7天。
完全彻底的“清零”既不现实也没有意义。如果能接受社会上存在极小一部分阳性人群,我们就可以提前解封,而不必非要等到阳性人数接近0的时候。但是,为了达到这一目标,需要大幅提高核酸检测水平,将解封后的病毒整体感染率压制到1以下。
同样,未来解封之后,为了实现常态化的防控,我们也需要将病毒的传染率日常控制在1以下。要实现这一目标,除了采取各种社会防控手段,压制病毒的有效再生数Rt,更重要的是提升核酸检测的水平和强度。如果能够把每日核酸检出率提升到45-50%,以后就完全可以做到在不封城的前提下实现常态化的疫情防控。为此,政府应该在提升核酸检测能力,提高核酸检测灵敏度等方面多下一些功夫,相比大面积封控来说,前者要经济和有效率得多。
正文:
随着上海疫情接近尾声,目前,已经累积了足够多的数据。我们可以尝试通过这些数据来建立一个模型,模拟和还原一下这两个月来实际发生的情况,由此,也顺便对此次封城前后的教训和得失做一个复盘。
目前国际上比较常用的模拟流行病的模型如SEIR等,大多极度依赖于初始设定的参数,一旦这些参数稍有偏差,预测结果就会和实际情况相去甚远。比如兰州大学、南开大学、上海交大、西安交大等都曾经对本轮上海疫情做过建模,其预测最终社会面清零的日期从四月初到五月中不等,可惜从后来的发展形势来看,全都事与愿违。
好在如今,上海疫情的拐点已经明确出现,峰值和波形也已经基本确定。我们可以从“马后炮”的角度出发,根据实际的报告数字,反过来对各种初始参数进行逆向模拟和估计。另外,我们目前对于Omicron变种病毒的医学特性,还有一些具体的数据也已经掌握了不少,这让我们可以根据实际情况,对模型进行适当的修改和优化。
模型简介
现在我们知道:典型的Omicron病人一般经历10天左右的病程期。其中前三天为潜伏期,此时做核酸的话不会呈阳性。但实际上,在潜伏期的第3天,该感染者已经具备了感染别人的能力。除此之外,后7天为发病期,在发病期间,感染者当然也能够传播病毒。
为了方便起见,在我们的模型里,把所有的感染者分为10组,按照病程进展分别称为潜伏1,潜伏2,潜伏3,发病4,发病5……发病10。我们规定,1-3组的潜伏感染者无法通过测试被查出,而3-10组的感染者则每天按照一定的概率感染新的病人。这里的关键在于第3组,他们既处于潜伏期,无法被查出,又能够进行传染,这就大大增加了疫情控制的难度。
每过一天,未被发现的感染者就会自动跳到下一个组别。而10天之后,如果始终没有被查出来,那我们就假定第10组的感染者将全部转阴,不再继续传染。
Omicron的典型病程
传染的速度取决于病毒的有效再生数,即Rt。我们知道,Omicron在完全不受控的环境下,其基本再生指数R0接近于10,但在受控的环境下,实际的Rt肯定要小于R0,并随着“封控”的严厉程度而不断变化。Rt的意思是一个感染者在走完全部病程之前,可以把病毒传播给多少人。在我们的模型里,因为已经假定感染者只能在病程的后8天传播病毒,所以他每天能传染的人数即Rt/8。比方说,如果当前的Rt=4,那么每个感染者每天就会把病毒传染给另外的0.5个人。
幸运的是,关于上海疫情中的实际Rt,我们有一些资料可以参考。比如说孙春兰副总理在4月15日的采访中,曾经透露过当时的Rt已经从之前的2.27下降到1.23。另外在4月29日的新闻中,也报道过当日的实时Rt已经下降到0.76。这些数据为我们设定模型参数提供了很有价值的帮助。
还有一个关键的参数是每日核酸能筛查出来的感染者数量。在我们的模型中,设定参数Pn,代表“每日检出率”,意思是每个阳性感染者每天被筛查出来的概率。如果Pn为0.2,意思就是每个发病期间的阳性病人(4-10组),在当天有20%的概率被检查出来。在默认情况下,我们假定被查出来的病人都会被马上送入方舱,从此无法再传播病毒。而部分人不进入方舱的情景会在后面另外讨论。
这里需要指出的是,在现实当中,Pn对Rt也会产生影响。因为查出的感染者被隔离起来,实际上也就降低了病毒的整体传播效率。每天查出越多,Rt也就下降得越多。但为了方便起见,我们在模型里设定的Rt仅取决于城市封控的严厉程度,并不考虑Pn的影响。所以在模型当中,病毒真正的传染效率,实际上是Rt和Pn两者叠加起来的效果。
一般而言,每日检出率Pn大致会是多少?这当然取决于每日核酸检测的数量以及核酸的灵敏度效率。我们可以参考以下新闻:4月27日有报道,上海在5天之内合计进行了万人次的核酸检测,即每天大概检测1千万人次,占总人口的40%。而这已经是后期核酸能力上来之后的数据。也就是说,如果你是一个阳性感染者,那么,在4月22-26号的这几天当中,每天你有40%的可能轮到筛查。
不过,即便查到了你,也未必会报告阳性。因为目前的核酸检验有着很高的假阴性率。据报道,目前核酸的灵敏度大约在50%-70%之间,我们不妨假定为60%。也就是说,就算查到了你,也只有60%的可能性会报告阳性。因此总的来看,当天你被查出来的可能性其实是0.4*0.6=0.24。这个就是当天的检出率Pn。换句话说,如果当天社会上共有10万个阳性感染者(不计潜伏期),我们只能查出来其中的2万4千个并送到方舱。这乍听上去似乎很让人惊讶,但想一想就会明白:事情必然如此。如果没有这种“隐蔽性”的话,这一个月来每天全城排查核酸,早就应该把所有的阳性者全都找出来了。
另外,我们知道,上海的核酸能力并不是一开始就充足的。据报道,3月初的时候,上海每天只有万管的核酸能力,而目前已经上升到万管。也就是说,目前上海每天的核酸检测数量是3月初时候的约6倍。假设核酸灵敏度不变,可以得出结论:3月初的时候,上海的Pn应该不到目前的1/6,即应该低于0.04。
最后,除了本地的自发感染,上海本轮疫情最重要的起因就是来自香港的外来输入。因此,我们还必须在模型中设定每天大约从境外输入的“外来”感染者数量。为此,我统计了每天上海报告的外来确诊+无症状感染总数,作为入境总人口的大概估计。然后,再设定一个系数,即其中“逃逸”的数量。比方说,3月10日上海总共从境外输入了84名阳性,如果当天的“逃逸系数”为1,也就是我们假定:实际上还有另外84名境外阳性患者逃过了检查,混入了本地人口当中。
为了更准确地设定以上参数,我们还需要参考本轮上海疫情的实际时间线。我们的起始时间设定为2月26日,然后,到了3月6日-3月10日,我们知道在华庭宾馆发生了严重的交叉感染事件。虽然官方仅通报了十几个人,但实际数量未知。由此,我们需要把这几天的外来逃逸系数拉高一点,以反映大规模“外来输入”的事实。到了3月11日,上海官方意识到了情况严重,开始采取措施,3月12日开始全市停课,呼吁非必要不离沪,随后部分小区进入循环封控,因此,Rt必然从此时开始会有所下降。16日,上海开始排查重点区域,展开了两轮核酸,所以从这个时候开始,我们需要适当地拉高每日检出率Pn。
最后,到了3月底,上海开始全面封城:先是3月28日浦东,然后4月1日浦西,并随即展开第一次的全城范围的大规模核酸。接下来,从3日开始,又连续展开好几轮新的全民核酸。很明显,从此时开始,Rt必然将进一步下降,而Pn则会持续大幅上升。总之,把所有能参考的实际情况都考虑进去,可以帮助我们更加精确地设定模型里的参数。
模拟结果
全部设定完毕之后,我们就可以运行模型,并对照实际报告的数字来调节每日的各种参数。简单起见,我们暂时只考虑感染人数的消长,具体的治愈和死亡数先放在一边,因此,疫苗接种的情况暂时不必考虑(有报告说疫苗对于防止感染几乎没有什么作用)。经过一段时间的调整摸索,我们比较准确地模拟出了自2月26日以来上海疫情发展的情况。如下图:
图中,蓝色实线是每日实际报告的感染人数,灰色虚线是模拟报告值,两者可用来互相对比。红色虚线是实时Rt,绿色虚线则是每天“实际新增”的感染人数(因为部分感染者始终没被查出,最后都转阴自愈了,因此“实际新增”会多过报告的数字,而且考虑到“潜伏期”的存在,其波形在时间上也会提前几天)。
本模型最初发表于4月28日。而从接下来几天的发展情况来看,后续数字也和实际拟合得相当好,几乎不需要做进一步调整。应该说,其准确性是有一定保证的。
根据该模型的预测,如果目前的封控措施不放松的话,那么到了5月11日,也就是本轮疫情开始后的第75天,我们将看到报告新增感染数跌破1千,到5月22日将跌破1百,到6月2日则将跌到个位数。
以上是预测的“报告数字”,而因为“潜伏期”的存在,“实际新增”其实还要下降得更早一些。预计5月5日已经实际跌破1千,到5月15日将跌破1百,5月26日跌破10。到6月16日左右,基本上所有的数字都可以归零。本轮疫情总共将感染88万余人,而其中真正被查出来的大约是63万左右。遗憾的是,因为目前没有疫苗接种的详细数据,所以在这里暂时先不作死亡人数的预测了。
疫情缘起
值得一提的是,根据该模型,在疫情初期,必然存在着大量不为人知的境外输入感染者。我们知道,从2月26日到3月15日,上海总共实际报告了例确诊数字。然而,如果按照模型还原的当时Rt值和核酸检测数量,若没有大量外来的输入,没有这些人作为“火种补充”的话,单从本地“原生”的感染数来模拟,这些数字几乎是无法解释的。可以说,上海这次疫情爆发的直接因素,就是从香港和其他境外地区直接输入了大量的隐匿感染者。
顺便说一句,这个和香港本身的情况是类似的,根据我们的模型,香港之所以2月底大爆发,也是因为春节后返港的人群当中混杂了大量隐匿的阳性而未被检出。而且从复盘的情况来看,香港的情况比上海还要夸张得多,节后输入的那一波总数甚至可能超过三、四万,直接导致哪怕在香港低得可怜的核酸检测率之下,每日报告数字仍旧从2月7号起原地起飞,在短短大半个月内就直接蹦上7万。
上海输入的数字虽然不及香港那么多,但也起码有好几百。我的估计是:从2月26日到3月15日期间,实际从境外输入了左右的阳性。因为在3月初,上海每日的核酸检出率不会超过0.04,即便如此,实际报告的病例数字也已经从3月6日就开始起飞。这说明当时社会上存在的阳性人数肯定已经上千。
有人可能要问:那会不会早在2月份,上海本地就已经隐藏了很多阳性而未被查出呢?答案是不太可能,因为从复盘的情况来看,上海在2月底的Rt值大概在4点几,如果2月本地就已经存在上千名阳性感染者,那么疫情的到来应该比现在早得多,而且峰值也将会比现实情况高得多。所以3月份必然有一波持续的外来输入,这对后来疫情的发展起到了重要作用。
很多人一直说:上海和深圳的本轮疫情是差不多同时起步的,一开始两地的情况基本相同,然而事实并非如此。我们知道,深圳本轮疫情总共才查出多阳性,估计实际感染的总人数不会超过1千。哪怕在最高峰的时候,深圳实际存在的活跃阳性人数应该也不超过。而从我们的模型来看,当3月11日,上海意识到华庭宾馆发生了严重感染的时候,这时候社会上的阳性人数实际上已经高达6千多,早就跟深圳的情况不是一个概念了。
一个关键的问题是:上海缺乏和深圳一样的大规模核酸检测能力。早在一月底,深圳就开始进行大规模的核酸筛查,公共场合48小时核酸报告已经开始推行。而上海直至3月初,每日核酸检测能力只有万管,而且其中一大部分还需要用在入境人士的检测上(入境都是单人单管),这就导致上海对本地的疫情情况严重缺乏判断。
实际上,深圳报告例阳性,和上海报告例阳性,两者代表的严重程度有着天壤之别。上海在3月1号的时候,当时情况应该已经比深圳严重很多,估计社会上已经存在-左右阳性了,然而当天上海仅报告查出3例。随后数字开始陡然上升,3月6日上海报告48例,此时社会上应该已经存在阳性,而且每天还有新增外来输入将近人。如果考虑到自己可怜的检测能力,上海官方此时早该注意到问题了,然而什么都没做。于是到了3月10日,现存阳性增加到5千左右,3月12日全市停课时,数字来到了8千。3月16日上海开始重点地区排查,此时数字已经有1万8,20日达到3万8,3月28日浦东封闭之前,全上海的阳性总数估计已经接近13万,4月1日全市封闭之前更是接近20万。此时就算封城,自然也一时难以阻挡如此猛烈的上升惯性。
当然了,实事求是地说,即使没有境外的这一波输入,以Omicron如此之高的感染性,只要存在少数本地病例,以上海之前“自由”的环境(Rt在4点几),最后疫情总是会发展壮大,直至不可收拾。如果我们假设2月底的时候,本地已经存在着10个左右的隐藏阳性感染者,那么模拟显示:在其他条件不改变的情况下,就算没有3月份输入的个境外阳性,这也只能把上海的疫情推迟大约25-30天左右。最后,该爆发的终究还是会爆发。
几种其他可能性的模拟
通过上述模型,我们还可以尝试模拟一下疫情发展的几种其他可能性。首先,很多人问:如果上海能够学习深圳,从3月15号开始就直接封城,那是否也会跟深圳一样,一周之内就能完全搞定?
答案是不可能。就像上面说的,3月15日的时候,上海本地已经存在着大约1万4千名阳性感染者,跟深圳的情况压根就不是一个概念。我们可以假设上海在3月15日进入全面封城,并尽快展开大面积核酸筛查。但是,这两个过程都无法一蹴而就,尤其是核酸能力,明显需要一定时间来筹备。在现实当中,上海封城半个月之后,Rt才从当时的2.3下降到1.23,核酸检出率Pn也仅从0.06提升到0.2。按照这个速度,我们假定如果上海在3月15日封城,然后在半个月的时间里,Rt能够从之前的3.7下降到1.5,Pn从0.上升到0.15,这应该算是比较乐观的估计,之后的趋势则复制现实中的发展。
那么按照这些参数,模拟出来的结果是:在提前封城的场景下,上海疫情高峰将于4月6日左右到来,当日最多报告新增1万人左右。随后则一路下降,5月1日跌破1千,5月12日跌破1百,6月1日基本归零。总共将感染32万人,其中查出来的有23万7千,比现实情况下降大约64%。
但值得注意的是,由于上海控制Rt和提升核酸能力的速度是有极限的,所以即便提早半个月封城,Rt下降和Pn升高的速度却并不会因此“瞬间”大幅提升。所以,提早封城只能降低波形的高度,却不能压缩其宽度。也就是说,并不能显著缩短封城的时间。
根据模拟结果,即使上海在3月15日就进入封城,疫情拐点也需要再过22天到来,新增报告跌破1千则在5月1日,跌破1百在5月12日,跌至10以内则需要等到5月23日。对比现实,均仅提前了10天左右。换句话说,虽然封城开始日期提早了13天,但结束日期却仅能提前10天,实际持续时间甚至更长。这是因为在现实当中,Rt在3月15日的时候仍在3.7左右,即便当时就开始封城,我们也不能假设它瞬间就变成实际封城时候的2.3,需要花一段时间才能降到这个水平。核酸能力的上升速度也是同理。这段额外花费的时间就导致了实际封城时间的延长。
其次,还有很多人想问:如果3月28日那天没有决定封城,而是“共存”,直接撒手不管,会发生什么情况?
这个问题可以参考香港。我们的结论是:“共存”之后,随着感染和死亡人数的急剧飙升,在短时间之内,哪怕没有官方的硬性规定,民众出于畏惧情绪,仍然会自觉采取一定的保护措施,因此,Rt在一段时间内仍将继续下降。但是,当疫情高峰过去之后,随着大家对情况逐渐麻木,逐渐习以为常,Rt又将缓慢回升,直至回升至本来的水平。当然,随着感染人口的急剧增多,其占据总人口的比例也越来越高,因为感染过的人会暂时免疫,因此又会使得Rt自然下降(也就是“群体免疫”的道理)。最后产生的真实Rt是两种效应的叠加。
现在,我们不妨假定3月28日之后,上海放弃大规模核酸检测,将Pn逐渐降低到之前不到0.04的水平,同时放弃方舱(但保留0.5%-1%的比例,以医院的效果)。接下来,我们假定“共存”之后,Rt仍然将从当时的2.3左右逐渐下降到1.8,这段期间大约需要花费2个月,然后疫情高峰终于过去,于是Rt又逐渐上升,最终恢复到3月之前,大概4.2的水平。最后,我们假定全上海的“易感人口”为2万(因为现实告诉我们:全体人群中有部分是天然不易感的,所以理论R0值无法达到),则模拟结果如下:
其中绿色虚线是模拟共存场景下,每日“实际”的新增感染人数,浅蓝色虚线是每日预计“报告”的新增感染人数,而深蓝色实线则是目前现实的每日报告数字,用来对比。
模拟显示,如果3月28日开始“共存”,那么感染高峰大概会在5月初到来,巅峰时每天感染将近64万人。然后随着大部分人口都被感染,数字急剧下降,到5月底时每日新增只剩4万人不到,此时已经总计感染1万人,占总人口的72%,“易感人口”的79%。接下来,趋势将进一步放缓,到7月6号跌破每日1千,然后继续缓慢下降。到年底之前,全上海将共计感染万人。
当然了,以上是“实际”感染的数量。很明显,既然假设放弃了大规模核酸检查,那么“报告”的人数肯定将大大低于实际。模拟显示,在这个过程当中,民众真正“看到”的报告数每天最高也就是17万多人,最后累计报告的感染总数仅为万左右。是实际数字的28%。
所以简单来说,如果3月28日开始“共存”,那么大概3个多月之后,到7月初的时候,上海将进入跟香港目前一样的“平静”状态。因为上海的总人口是香港的3倍多,所以这个过程所花的时间要比香港长。至于总共死亡数量,没有疫苗的详细数据不好估计,从目前的数据来看,我个人猜测如果按3个月的周期统计,这段期间内会出现至少80%-%的超额死亡率,也就是在这3个月当中,总共感染1万人,除了“正常”死亡的2万5千人之外,还会额外“多死”至少2-3万人。具体计算依据可以参考我的另外一篇文章。以上推测仅基于目前可以获得的数字,未考虑将来可能出现的严重医疗挤兑情况,也无法简单放大到全年,在此提请各位注意。
政策得失探讨
通过模拟结果,我们可以来讨论此次“封城”中几个值得注意的问题。
首先,我们必须认识到,封城+全民禁足是一个“终极大招”,只要进入封城状态,即便是Omicron这样传播率逆天的病毒,最终也必然遭到压制。至于封城后的一段时间内,感染数字仍然保持继续上升势头,似乎给人造成一种“封城都无用”的错觉。那是因为第一,核酸检出率Pn也在同时快速上升,所以“被查出来”的人当然就会越来越多。其次,Rt降到1以下需要一段时间,在这个临界点到达之前,感染人数增长会保持一定的惯性。
我们可以把整个上海想象成一艘大船,本来,这艘船的船舱是全部贯通的,只要船体上任何地方破了一个洞,漏进来的水都会慢慢累积起来,最终灌满整个船舱。而全民禁足,按小区隔离之后,就相当于把原来的那个大船舱划分成了无数个互不相通的水密舱,这样一来,哪怕船体上后来又破了很多洞,最终影响的也就是一部分舱室,只要做好彼此之间的隔离,这部分舱室并不会影响整体的状态。随着时间过去,当这些舱室都灌满之后,继续漏进来的水自然会慢慢减少。
其实这跟群体免疫的道理是一样的,群体免疫本来就是说,当病毒在某个地方传染得越多,剩下“健康”的人就会越少,因此,病毒继续传播就越来越不容易,Rt也变得越来越小。当它把容易感染的人都感染之后,传播自然就停止了。只不过,原先病毒可以自由地传播到整个上海,乃至全国,封城之后,它的传播范围就仅限于某个小区了。一个小区通常也就是几千人,加上必要的防范措施,病毒传播了一段时间之后,自然就难以找到新的传播对象。所以,进入封城之后,哪怕完全不采取更多的严厉管控手段,只要坐等一段时间,我们也仍然会看到Rt继续稳定下降。从上海的实际情况来看,自从3月28日进入封城,到4月20日Rt降到1以下,在这之后,就算没有核酸检测,疫情也将处于自然消退的状态。
明白了这个大趋势之后,我们就可以调整一下思路,也就是在已经封城的前提下,或许不必时刻保持极限的高压思维,在有些问题上,或许可以适当地通融和取舍一下。只要不影响整体的大趋势,很多时候没有必要“去到尽”,为了追求极限清零效果而不择手段,反而造成了更多的问题。
比如最被人诟病的,医院非要强制先做核酸检测,为此竟然不惜拒绝濒危病人入院治疗。我们可以问:即使不做检测,造成的额外风险又有多少?要知道,哪怕在上海疫情的最高峰时期,全社会存在的活跃阳性人数不过就是24万出头,其中又有6万5千人还处在潜伏初期(1-2组),无法传播病毒。更何况,这些人既然还在潜伏期间,就算你给他们做了核酸,那也是查不出来的。
实际上,对于全上海0万人口来说,一个未知的病人恰好处于病毒传播期(3-10组)的可能性最多也就是0.7%,这其中还有大约20%仍在潜伏期(第3组),即便做了核酸也不管用。退一步来说,就算他不在潜伏期,因为我们假设核酸灵敏度只有60%,所以仍然还有40%的风险,就算做了核酸也是假阴性,当场查不出来。总而言之,即便一个阳性病人当场做了核酸,那也只有0.8*0.6=48%的可能性被查出来。
所以综合来看,接受一个未测核酸的病人入院,造成院感的风险最多也就是0.7%,而哪怕测了核酸,你也只有不到一半的可能性当场发现,所以造成院感的风险仍然有0.35%。这还只是就疫情最高峰的时候而言,在大部分时间里,社会上的阳性人数通常都不到这个数字的一半,风险当然也会减少一半还多。
总而言之,把一个需要急救的病人先收入院中,无非也就是多冒了0.35%不到的风险。就算入院后他传播病毒的效率Rt拉满到8,那么一天无非也就是传播给1个人。你大可以在他入院后给全体病人天天测核酸,甚至一天测两次核酸,这样就算有院内传播,也完全可以在3-4天之内及时发现。那时候,就算考虑到后续传播,病毒最多也就传给了10个人不到,再疏散隔离也是完全来得及的。这已经是最坏的情况,而前面说了,这种情况发生的可能性不到0.7%。也就是每接受一个没测核酸的病人,医院里造成0.07个人感染。
从上海目前累积的数据来看,Omicron的病死率还没有超过0.1%,就算这个数字只是临时的,将来会逐渐增加,医院里的病人身体更加虚弱,我们哪怕给它乘上倍,算到10%,那也无非就是造成了0.个死亡,而且这其中有一半,你哪怕查了核酸也会发生。所以综合来看,每个未测核酸的病人造成的额外代价最多也就是0.个死亡,实际上很可能不到这个数字的一半,甚至1/10。相比于危重病情被拒绝治疗,这个风险可谓不值一提。
再比如,这次上海隔离和别地不同,各种乱象丛生,造成民怨冲天,其中有很大的原因就在于完全切断了正常的快递和物流,却代之以混乱的“团购”和完全不靠谱的物资发放,以致全城物价飞涨,甚至很多人长时间陷入到饥饿和绝望的状态。那么,快递究竟能造成多大的传染风险?停物流真的是“必须”的吗?从深圳和广州的情况来看,这两地在封城时并没有完全停止快递外卖,但是并不影响把Rt值控制到1.5以下。更何况,各种团购造成的传染风险就真的比大公司的快递来得更低吗?
退一万步,就算快递真的会造成更多的感染,但前面说了,我们对此需要有一个整体的思路,只要不影响清零的大趋势,一点额外的风险并非完全不可接受,应该进行具体的评估和权衡。在这里,我们不妨假设,如果不停快递能造成20%的额外传播,也就是把Rt值拉高到原来的1.2倍,会产生什么样的后果呢?
为此,我们从3月28日封城起,把Rt值迅速拉高到原来的1.2倍。模拟显示,这会让总感染人数上升到万,比原来上升50%,不过,疫情整体走向并不会发生大的变化。在新的条件下,每日新增感染人数将于4月8日达峰,比原来仅推迟1天。然后一路下降,到4月29日跌破1万(推迟6天),5月11日跌破1千(推迟6天),5月24日跌破1百(推迟9天)。
在这里,我们看到,把Rt调高一点当然会增加传染风险,但它并不影响整体大局。无论如何,不存在物流“必须停止”,否则就无法达成防控目标的说法。我们真正需要思考的是,为了换取一个“正常安心的”,“有吃有喝”的封城,我们是否愿意付出多感染44万人,并且多封7-8天的代价?当然了,这里的1.2倍只是随便的假设,具体是多少需要详细深入的调查。我个人不太相信由大公司统一集中管理的快递员,其传染风险会比各自为政的小区团购风险更高,何况深圳对此已经给出了示范。不过这并不是关键,我在这里想说的是,不能简单地因为某个因素造成了一定的传染风险,就贸然把它停掉。这个风险具体是多少,相比付出的代价而言,值不值得去承担,这是需要经过评估和计算的。
同样,很多人对频繁的核酸检测也抱有怨言,认为它反而造成了更多的感染。但我们之前说了,相比其他手段,核酸筛查是最有效,也最经济的降低Rt的办法。每做一次全民核酸,就能查出60%的阳性患者(4-10组),也就相当于把Rt降低了60%。所以,哪怕它在过程当中确实造成了一些额外传染,那也是完全值得的。相比之下,它带来的收益要远远高于产生的风险。
另一个有争议的问题是所谓的“居家隔离”。是否应该不计一切代价,哪怕在条件并不具备的情况下,也要把所有查出来的阳性者全部都拉去方舱?很多人认为如果没有“应收尽收”,那么疫情就永远不可能结束,最终必然走向“共存”,这又是对新冠的传播力过于高估。诚然,方舱收治对于降低感染率,加快清零速度起到了很大的作用,但它并非决定性的因素。当年武汉疫情时,方舱前后总共收治了1.2万余人,但事后调查抗体阳性率,发现全市共有6.9%的人口,相当于50万人曾经感染过病毒。因此,绝大多数阳性当时其实根本没有被查出来,都是在家自愈的,相当于某种程度的“居家隔离”。而这些隐藏的阳性并没有阻挡武汉最后清零的结局。
Omicron的传染率虽然更高,但也并没有某些人说的那样神乎其神。据国外和香港等地的调查,哪怕在居家隔离中,阳性患者传染给同室的几率也不到一半。确实,气溶胶有时候还能通过下水道,通风管等渠道传播到楼上楼下,是有这样的例子,但总体来看,这仍然是小概率事件。从目前通报的情况来看,我还不知道有哪栋楼是因为居家隔离,其中超过一半的居民都变成了阳性。我们说了,额外风险肯定是存在的,但具体有多少,是否会影响大局,这才是关键所在。
在现实当中,其实已经存在不少“居家隔离”的人,但因为我们没有具体数据,所以模型中本来假设%的人都进入了方舱,而这些居家人口造成的额外感染则归并于整体Rt当中。不过,为了评估“居家”的具体风险,我们可以通过一些合理的假设来模拟如果有更多的人“居家隔离”,会是什么样的场景。
首先,在总人群中额外分出一个“居家”人群,也按照病程天数分组。这些人同样会把病毒传染给其他人,但毕竟,他们已经被明确查了出来,肯定要比未查出来的人有更多限制,所以我们假定,这些居家阳性人群的病毒传播效率是原来的60%,也就是Rt要乘以0.6。另外,被他们传播的人相当于已知的“密接”,所以被查出来的可能性应该也会更大,所以我们假设这些人的核酸检出率Pn将是其他人的2倍。
接下来,我们再假设,自从3月28日封城后,进入方舱的比例就开始一路下降,从%一直降到50%,也就是说,假设每日查出的人当中只有一半进入方舱,另一半则“居家隔离”。这种情况会持续两周左右,到月底,因为感染高峰过去,加上新的方舱不断建成,所以进入方舱的比例又开始上升,一直升到90%,从此不再变动。换句话说,我们允许后续有10%的阳性始终待在家里,不去方舱。
模拟显示,在这种情况下,总感染人数会达到万人,比原来上升38%。但同样,它也并不会改变疫情的整体走向。在“居家隔离”场景下,每日新增阳性人数将于4月11日达峰(推迟6天),此后开始下降,到4月30日跌破1万(推迟7天),5月11日跌破1千(推迟6天),5月23日跌破1百(推迟8天)。
总而言之,如果疫情高峰时再多一半人居家隔离,造成的效果其实跟之前的“不停物流”场景差不多,会多感染34万人,并使得封城过程延长7天左右。这当然是代价,但是相比现实的情况,很多方舱在尚未建设完毕的情况下就仓促投入使用,舱内卫生条件恶劣,影响睡眠,甚至下雨天还会漏水。到底有多少人本来得了新冠没有问题,反而因为方舱的环境影响而造成了健康恶化?这个数字难以估计。另外,强迫让一些没有自理能力的老人和儿童进入方舱,使其不得不和监护人分开,又因为缺乏医护,无法给他们合理的照顾。包括把人强送进方舱,留下的宠物无人看管,甚至被活活打死,所有这些案例都造成了极其恶劣的影响。更重要的是,有关情况在媒体上大量传播,在市民当中造成了相当的恐慌情绪,很多人为了不去方舱,千方百计地逃避核酸检测,对后续的疫情防控造成了很大的妨碍。所以相比之下,让一部分确实有需要的人留在家中隔离,为此多感染几十万人,这个代价究竟值不值得承担?
我们需要有这样的认识,就是没有什么选择是完美的,一切都有代价,都有所谓的tradeoff,我们需要在不同的风险之间做出评估和选择。如果多感染30万人不能接受,那我们可以妥协一下,把方舱率调高到0.7,也就是允许30%的人居家隔离。这样一来,最终就只多感染20万了。好,就算20万还不能接受,那10万呢?5万呢?肯定有一个合理的底线存在,而不可能说没有任何商量的余地,必须把所有人%地送去方舱。要知道就算是打仗,也讲究围三缺一,穷寇莫追,不能追求过于极限的目标,否则很有可能适得其反。同样,社会管理也需要讲究策略和方法,一味拼命地把所有人往死里逼也许并不是好主意。
总之,模型告诉我们:即使需要坚持动态清零的大方向不变,那么在已经封城的前提下,这个目标最终肯定是能够达到的,无非就是所需时间的长短而已。当然了,我们的模型很简陋,其中设定的参数也未必非常准确,但整体的结论肯定没错,而且上海至今为止的数据已经毫无疑问地证明了这一点。
因此,对于政府来说,应该认识到:既然已经决定封城,那么在各种细节上,我们其实有着很高的容错余地,就算承担一些额外风险,允许一些“漏洞”的存在,也绝对不会影响到最终的结局。所以说,对于各种具体的政策和措施,完全没有必要去简单地一刀切,甚至达到一种特别极端和不近人情的程度。政府手里掌握着更多的详细数据,它当然应该去进一步调查研究,建立更好、更准确的模型,由此更合理地评估各种政策的风险和收益。但很明显,目前的一些具体做法肯定需要改善,而且在必要的时候,也应该适当做出一些通融。这就需要政府去更灵活地思考问题,而不是简单粗暴地一根筋,只会无脑划红线,下死命令,动不动就是“不惜一切代价”,这种做法本身就是一种懒政。其实,只要不影响疫情控制的整体大局,有些风险和代价是完全值得去承担的。
何时解封
经历了一个多月的封控,截止今日(5月5日)为止,上海目前的Rt值已经降为0.5左右,每日核酸检出率Pn大约在0.左右。按照目前这个态势下去,到5月15日,社会面上的阳性数量可降至,到20日降为,28日降到以内。在此之后,数字会呈现一个比较缓慢的长尾下降过程,6月8日降到10以内,6月14日降到2左右。其实严格按照概率来说,哪怕这个数字下降到小数点之后,也仍然会继续持续下去,不可能“彻底归零”。当然了,在现实当中,阳性人数不可能是一个小于1的数字。实际上,当绝对数字降低到一定程度之后,疫情的传播就在很大的程度上取决于运气。万一哪天,所有的阳性者恰好都没有感染其他人,那传播也就彻底结束了。
不过,要期待这种运气发生,我们也许大概率要等到6月20日之后。也就是说,为了把阳性人数从5月20号的人压到0,全上海很可能要为此多封城一整个月。显然,这是极端不经济也不效率的。鉴于封城造成的巨大经济损失和对市民的心理影响,我们似乎有必要来探讨一下“提前解封”的可能性。
在这里,我们首先需要改变是思维模式,即严格的,彻底的“清零”是既不现实,也没有意义的。一方面,因为我们设定了“潜伏期”的存在,所以不管怎么大力检测,总归有一个很小的可能性,病毒始终在隐蔽传播,既没有被我们发现,也无法彻底消失。另一方面,我们还需要考虑外来继续输入的可能性。作为像上海这样的入境城市来说,只要不彻底关闭国门,就算这次真的清了零,将来也总会有“源源不断”的输入。更何况,目前的政策还把核酸检验的CT值从40降到了35,这就意味着只要人数够多,就必然会有漏网之鱼出现,从概率上说,这是一个几乎必然的事情。这也就是国家为什么提倡“动态清零”的原因,所谓“动态”,就是说未来病例始终会不断地冒出来,不可能永远消失。
既然没办法永久性“斩草除根”,那我们就必须承认,允许社会上始终存在极小一部分阳性人群是一种无奈、但却必要的妥协。不过也正因此,我们根本无需严格地等到阳性人数接近0的时候才开始解封。既然是“动态清零”,就需要持有“动态”的思维。简单来说,只要我们能把整体的病毒传播率压缩到1以下,那么,哪怕社会上存在一定数量的阳性人群,也不会造成疫情再次扩大。
比方说,如果我们希望在5月15日就开始提前解封,当时社会上估计仍然隐藏着多阳性者。这时候,就需要评估一下,究竟做到怎样的程度,才能不让疫情死灰复燃?模型告诉我们:上海在3月28日进入封控前,当时的Rt大约在2.3左右。而且当时上海的情况是:已经2+2+2地循环封控了许多小区,而且全市也已经采取了一系列的措施,如停课、关停部分公共场所等。
所以,即便我们很小心地解封,包括继续封控一部分高危小区,也继续维持当时的各种防护措施,全市的Rt仍有可能会回到2.3左右。当然,我们可以再额外采取一些之前没有的措施,比如规定搭乘公共交通,进入公共场所必须严格扫码之类,从深圳广州等地的情况来看,如果防控做得足够好,应该可以将日常的Rt控制在2以下的水平。此外,因为上海已经感染了88万人,这些人短时间内大概率不会重复感染,相当于Rt又天然降低了3.8%,也就是差不多0.1,所以,如果幸运的话,在解封后的一段时间里,我们应该可以努力将上海的Rt控制在2左右。
但我们知道,只要Rt大于1,就意味着病毒仍将不断扩大传播。所以很明显,在常规的防护手段之外,常态化的大规模核酸排查肯定也同样不可缺少。前面说了,为了方便起见,我们在模型中设置的Rt仅取决于防控措施的力度,而除此之外,每日核酸检出率Pn也同样是降低病毒传播的有效手段。如果Pn=0.2,也就意味着每天有20%的阳性患者(不包括潜伏期)被排查出来并送入方舱,也就意味着整体传播率额外降低了约20%。所以,如果把Rt和Pn叠加起来看,我们仍有机会将病毒的整体传播效率压缩到1以下。
乍看上去,如果假设Rt=2,似乎意味着Pn必须高于0.5,才能让总体扩散率小于1。不过这种简单的计算其实并不对,具体情况要比这个稍微复杂一点。根本原因在于,阳性患者在10天的病程当中,其分布不是平均的,而是越到后面就越少。这个道理其实很简单,比方说你是一个阳性患者,在头3天的潜伏期里是绝对不会被发现的,而到了第4天,假设Pn=0.2,就是说你有20%的可能被查出来,因此只有80%的概率能够坚持到第5天,同样,继续坚持到第6天的概率又只有80%……如此下去,想要坚持走完10天病程,就需要足够好的运气才行。
所以我们发现,越到后期,阳性患者所占的比例就会越少,而幸运的是,他们能够“播毒”的阶段恰恰就在后期。一般来说,能“播毒”的病人(3-10组)大概只占总体的2/3左右,而不是预想的80%,这就使得真正的Rt其实比表面数字要更低一些。不管怎么说,如果我们仔细研究Rt和核酸检出率Pn的关系,会算出当Rt=2的时候,其实Pn只要大于0.,就可以使阳性人群不断缩小。
不过,即便是0.的Pn,也需要更多的努力才能达到。因为我们前面假设了核酸的灵敏度是60%,这也就意味着如果执行严格地全民每日一检,Pn即为0.6,如果两日一检,Pn即为0.3,如果三日一检,Pn即为0.2……以此类推。
而检出率大于0.,就是说两日一检都还不够,必须要做到全民三日两检,才能超过这个数。目前上海的情况大约是两日一检,但并非人人都严格执行,另外再加上灵敏度更低的抗原自测,总体的Pn大概在0.左右。如果我们希望提前解封,就必须进一步加大核酸检测力度,把Pn从目前的0.迅速提高到0.以上。参考现实情况,无论是深圳还是广州,都曾在解封后一段时间内坚持24小时核酸检测,上海的情况恐怕也不能例外。
我们可以模拟这样的情形:假设从5月15日起逐渐解封,于是Rt从0.5迅速回升,到月底上升到2左右。尽管如此,只要我们同时大力提升核酸检测频率,在月底前争取把Pn提升到0.35,并维持一周。在这种情况下,疫情就不会重新恶化。模拟显示:在这些参数下,活跃阳性数量将继续减少,从解封时的逐渐下降到月底的。
当然,全民长期三日两检看起来似乎不太可持续。因此,我们不妨假设6月1日之后,核酸频率又会逐渐下降,大概到两至三天一检的程度,这和现在深圳的频率比较类似。目前深圳的情况是:部分特殊人群(如学生等)天天24小时检测,另一部分人群和某些场所的出入需要48小时核酸证明,更广大的人群则是72小时。这样综合来看,每日检出率大概会在0.2出头一点。
如果Pn维持在0.2,那么相对应的,就需要社会Rt降低到1.61以下,才能保证疫情不继续蔓延。不过在我们的模拟当中,此时社会上总的阳性数量应该已经下降到两三百人,而每日大概只会检出30人左右,那么这时候,就可以恢复对所有阳性者的大规模流调。对于小规模人群来说,有效的流调可以进一步压低Rt值。从目前的情况来看,深圳的做法似乎还算成功,离上波疫情过去已经有差不多两个月,至今尚未重新爆发。所以看起来,在阳性人数不多的情况下,通过流调和限制密接,把Rt压到1.61以下也许并非不可能。
以下,我们假定上海的Pn值维持在0.2,而社会Rt从6月1日起,随着大规模流调恢复展开,从2又逐渐下降至1.5。模拟显示:在此情况下,活跃阳性数虽然会出现短暂的反弹,但最终仍然会回到下降轨道上来。当然,这个下降的趋势比较缓慢,一直到年底,社会上大概还会剩下50个左右的阳性,但无论如何,疫情不会再次恶化,更不会演变到无法收拾的程度。
总而言之,模型在这里给我们提供的思路是:也许没有必要穷追猛打,不择手段地去清零。因为如果你非要确保阳性人数彻底归零,那就必须让上海多封城一个多月。但实际上,并不一定非得做到这种极端的程度,只须保证每天的检出阳性人数高于当日新增的传染数量,那么,病毒自然就会慢慢地“逐渐消亡”,这应该算是一种比较“自然而然,顺势而为”的做法。如果我们能接受这一思路,那么提前解封就是完全可行的。当然,这里的核心问题仍然在于大规模核酸检测的能力。上海是否能把Pn在短时间内大幅提高,看来将会是何时解封的关键。
未来展望
最后,根据疫情模型,我们来探讨一下未来解封之后的局面和出路。
如果在一段时期内,我们仍然坚持“动态清零”的政策不变,那么,鉴于Omicron的高传染性,这也就必然意味着大规模核酸排查将会常态化。在上面的模拟中,我们把Pn始终设定在0.2,这样才能保证Rt=1.5时,社会面上的阳性人数依然持续缓慢下降,而Pn=0.2,也就意味着全民长期需要每48-72小时进行一次核酸。但如果我们想偷个懒,放松到一周一检,那就相当于Pn顿时下降到只有0.,在这种情况下,除非能把Rt始终压在1.25之内,否则任何一个脱离流调的潜在阳性患者都会造成疫情重新扩大。所以,未来我们的任务和负担肯定还会相当艰巨。
不过,相比于降低Rt的各种措施,如停课、停堂食、停电影院等等,无论如何,似乎增加核酸频率都算是比较经济和更有效率的做法。虽然没有经过普遍调查,但我觉得大部分人应该情愿多做几次核酸,也不愿过这样的生活:动不动无法返工、上课,生意随时停顿,小区频繁地进入封闭状态,没有堂食外卖,各种娱乐取消,全市公共交通说停就停,去外地旅行需要隔离一周……两相权衡之下,肯定还是加强核酸检测来得比较划算。
另外,常规化检测还有一个好处,就是可以及时地给我们提供警示。假设在0.2的检出率下,每天检出一个无法溯源的阳性,那就等于提醒我们:社会上隐藏的阳性总数大约在10人左右,由此,我们可以及时采取更严厉的措施,以防止疫情进一步扩大。反之,如果不进行常规检测,只依赖于某些运气因素来发现社会面上的阳性患者,比方说指望他们病情严重,到医院去检测的时候才被发现,或者因为要去外地而主动去检测出来,从目前的情况来看,这个概率很可能不到百分之一。而对应于这个检出率,当你发现第一个阳性患者的时候,就意味着社会上的阳性总数很可能已经在左右了(可以对比一下蟑螂,有人说发现一只蟑螂就意味着还隐藏着几千只,但其实没有那么多,大概也就是几十只左右)。上海本轮的教训就是如此。比方说,2月27日上海仅上报一个案例,但当时实际存在的阳性总数其实已经有左右。
所以,比较无奈的事实是,对于上海这样面临持续外来输入和社会阳性无法清零的城市,只要政策不发生变化,常规化的大规模核酸测试似乎是一种必然。但是反过来,也有一个好消息,就是如果能够真正建立起足够的核酸测试能力,那么,上海以后也许就再也不用面临大规模“封城”的局面。因为哪怕疫情再度扩大,只要临时把核酸检测率提升到0.45左右(差不多就是比较不严格的全民每日检测),此时,根据模型,只要社会Rt值不高于2.5,就能保证阳性人数不断逐渐缩小,最后疫情就会“自动”平息。而2.5的Rt值,完全是可以在不封城,不全民禁足的情况下做到的。
以下我们用模型来模拟一个范例:如果一个城市在长时间松懈之后,Rt又回升到3,而Pn保持在0.2,那么,假设突然从外地输入了5个隐藏的阳性潜伏者,这些人就会迅速把病毒传播开来,使得阳性总人数在一个月之内上升到60多人。但是,因为Pn=0.2,代表着仍然大约每72小时就做一次核酸,在这种情况下,我们从第5天开始就会查出新的阳性病例。到第13天开始每天查出2个,到第20天的时候,每天能查出4个,最晚最晚,这时候政府无论如何也应该意识到问题了。
我们假设该城市从第20天开始行动,迅速把Pn拉升到4.5,也就是全民开始每天做核酸测试,同时开始“亡羊补牢”,采取各种措施,重新压制Rt,用两周的时间将其重新压回到2左右,如果做得好的话,这应该不用通过“全面封城”就能实现,参考如今深圳的例子就行。
那么,在这些参数的假设下,该城市本轮疫情将在第25天达到最高峰,当时总阳性数不过63人。随后就会缓慢逐渐回落,回到“正轨”上来。到第60天的时候,每日检出阳性数开始小于2人,此时可以进一步放松核酸检测,让Pn回到3多一点,这样的话,疫情仍将慢慢“自我缓解”,如下图所示。从某种程度上说,这应该算是在不封城的情况下“防范成功”了吧?
一个“不封城”常态化防控的例子
总而言之,要想“常态化”防控,无非两条路:要么压制Rt,要么提升Pn,最终使两者叠加的综合效果小于1即可。但相比之下,压Rt的难度更大,而且付出的社会代价、经济成本极高,所以,只要有可能,尽量优先提升核酸检出率,显然是更为明智的做法。
既然核酸测试变得如此重要,政府似乎就应该在这上面多下一些功夫。比方说,如今核酸的灵敏度只有60%,这究竟是因为什么造成的?是测试的原因,还是采样的原因?如果能找到办法,把灵敏度提高到比方说80%,那就将大大提高我们日常防范的宽裕度。举例来说,如果需要维持目前的Pn=0.2这个值,在80%的灵敏度下,我们的日常检测就可以放松到大致三、四日一次。而万一疫情重新严峻起来,全民立马展开48,甚至24小时核酸,此时Pn将高达0.5以上,只要让Rt不超过2.68,就可以轻松地把疫情压下去,而这很可能并不需要付出很大的社会代价。甚至,万一Pn能做到0.8呢?那样的话,即便Rt高达3.55,我们都用不着担心。而3.55的Rt,已经意味着差不多可以恢复到上海2月底前的“自由”状态,只需要再稍微严格一点点而已。
就算技术上无法提高测试灵敏度,我们也可以采用“笨办法”。如果假阴性是测试机构造成的原因,那么,就可以考虑把每管样本分开两份,送到两个不同的测试机构,分别独立培养并测试。一个机构测不出的概率是0.4,那两个机构同时测不出的概率就是0.16,所以,每次测两遍,理论上就可以把灵敏度提升到最高84%。如果假阴性是采样时候造成的问题,那也简单,无非就是每次“采两遍”。也就是说,让每个人去检测的时候都经过两个采样点,捅两次喉咙,然后对两个样本分别进行检测,这也花不了大家多少时间。当然了,以上需要政府去进行详细的调查研究,而且更需要现有的核酸检测能力翻倍,肯定无法一蹴而就,但如果我们真的要考虑长期化、常态化的防范,那么,提升核酸检测能力绝对应该是当务之急。
最后总结一下:即便将来封城结束之后,我们未来也必将要面临一个常态化的防范局面。在这个过程当中,既然绝对清零不现实也不可能,大家就需要保持一种“动态”的思想。也就是说,不需要把阳性人数完全降低到没有,只需要随时保持能力,可以让病毒的整体传播率小于1就行了。而要做到这一点,增加核酸测试率应该是最简单也最经济的办法。
不管怎么样,各地政府应该认真地去研究和思考:在防控病毒的战役当中,究竟哪些手段最有效果,哪些政策弊大于利,哪些风险其实可以适当承担,哪些措施即便造成了一些漏洞,也完全可以通过付出较小的代价弥补回来。有了上海此次封城的惨痛教训,这些经验显然都需要我们去进一步地好好总结。