打开网易新闻 查看更多图片

作者 丨 魏昕宇

从2020年年底开始,饱受新冠疫情折磨的世界各国人民终于看到了一线曙光——新冠疫苗三期临床试验的结果陆续公布,且多款疫苗被证实具有较高的保护效力。这无疑是振奋人心的大好消息。

值得一提的是,我国自主研发的新冠疫苗也跻身率先“报喜”的疫苗行列。例如中国国药集团此前发布公告,表示其新冠疫苗的保护效力达到79.34%,虽然这一有效率低于最早公布结果的辉瑞疫苗和莫德纳疫苗(有效率95% 左右),但也远超世界卫生组织确定的50%有效率的“及格线”。考虑到我国生物制药领域总体上落后于欧美发达国家,此次国产新冠疫苗研发能够在短时间内取得不俗的成绩,应该说相当令人满意了。

不过呢,并不是所有的人都这么认为。例如科普作家方舟子就在推特上质疑国药疫苗试验数据的可信度,他的理由是国药疫苗三期临床试验中期只有两位数的人感染,报告的有效率是79.34%,有四位有效数字,显然数据是编造的。

方舟子推特截图。感谢网友xiongyongqiang供图

方舟子指责国药集团的人“没有有效数字概念”,殊不知,缺乏有效数字概念的正是他自己。例如有网友就在方舟子另一条推文下反驳称,莫德纳疫苗的临床试验,其试验组只有5人感染,最终报告的有效率却是94.5%,难道说莫德纳疫苗的数据也是编的?

打开网易新闻 查看更多图片

方舟子推特截图。感谢网友xiongyongqiang供图

那么问题到底出在哪儿呢?这就需要我们好好探究一下有效数字的概念了。

有效数字体现的是测量的精确度。举个例子,用直尺测量一根木棍,标准的做法应该是让直尺紧贴木棍,让木棍的一端与直尺刻度上的零点对齐,然后观察木棍另一端落在直尺的哪个刻度上。现在,假设我们所用的直尺的最小刻度为1厘米,我们发现木棍另一端落在3厘米和4厘米之间,显然,假如仅仅按照直尺上的刻度,说“木棍长3厘米”或是“木棍长4厘米”,都是不够准确的,木棍的长度应该是3厘米到4厘面中间的一个值。但这其中已经没有更小的刻度供我们参考,因此我们只能估计一下实际的位置。这就是初中物理一上来就学到的估读概念。

比如,如果我们发现木棍的另一端靠近这两个刻度的中点,那么应该报告测量结果是3.5厘米。这个测量结果有两位有效数字,最后一位,也就是小数点后第一位是不准确的,它的含义是:木棍的长度是接近于3.5厘米的某个值,对于这个例子而言,假如我们认为估读的误差是0.1厘米,就可以认为木棍长度真实值在3.4厘米到3.6厘米之间。总之,我们将木棍长度写作L = 3.5 cm,实际指的是木棍的长度为 L = 3.5±0.1 cm,其中的0.1 cm就是测量误差。如果木棍的另一端恰好与某一根刻度线(比如3厘米)重合,我们能不能报告测量结果是3厘米呢?不能。首先,按照记录规则,L = 3 cm,实际表示的是L = 3±1cm,即木棍的长度是2厘米到4厘米之间的某个不定值,2.6 cm, 2.9 cm, 3.0 cm, 3.4 cm, …, 都有可能,并不表示“木棍的另一端恰好与3厘米刻度线重合”;其次,任何测量都会有误差,即使在我们看来木棍另一端与3厘米刻度线重合得再完美,也不能断言木棍的长度正正好好就是3厘米,只能给出一个长度范围。因此,我们应将测量结果写作L = 3.0 cm,表示木棍长度在2.9厘米到3.1厘米之间。

现在,我们改用一把最小刻度为0.1厘米的直尺去测量,结果发现立方体的另一个顶点落在3.4厘米和3.5厘米之间,我们还是需要对下一位数字进行估读,比如报告结果为3.48厘米。此时测量结果有三位有效数字,不准确性仍然存在数字的最后一位,即小数点后第二位。L = 3.48 cm,实际意味的是木棍长度在3.47厘米到3.49厘米之间。

上述例子中得到的测量结果,3.5厘米也好,3.48厘米也好,实际上都是指木棍长度在某一个范围之内,而非指木棍恰好长3.5厘米或3.48厘米。它们都是近似数。

为了使测量结果更精确,我们常用的方法是多次测量取平均值。我们对木棍的长度重复测量七次,结果有三次是测量结果是3.48厘米,两次是3.49厘米,还有一次3.46厘米,一次3.47厘米。取其平均值,最终结果是(3.46厘米 + 3.47厘米 + 3.48 厘米 ×3 + 3.49 厘米 × 2)/7 = 3.47857 厘米。这个结果对吗?这个报告结果看起来很精确,保留了很多小数,实际上是不妥当的。这一结果传达的信息是木棍的长度在3.47856厘米到3. 47858厘米之间, 但实际上这根尺子只精确到0.1厘米,我们可以确定木棍的长度是3.4几(而非3.3几或3.5几),通过估读知道小数点后第2位大约是多少,但已经无法太确定,再后面的小数位就更没有意义了。因此最终的运算结果只能保留三位有效数字(和测量结果的有效数字相同),经过四舍五入,应该报告平均长度是3.48厘米。

上面这个例子是最简单的涉及近似数的四则运算。在生产实践中,类似的情况可谓家常便饭,而且往往更复杂,经常涉及到来自不同仪器不同精度的测量值,因此必须仔细判断最终结果的有效数字,稍不注意就可能导致结果毫无意义甚至贻笑大方。例如有个笑话说某博物馆讲解员向游客介绍说,某件馆藏化石的年龄是距今一千万零四年。游客听了大惊:这么古老的化石,年龄测定能准确到十万年这个数量级就不错了,你们是怎么精确到某一年的?讲解员解释说,我刚来博物馆的时候被告知化石年龄是距今一千万年,现在我已经工作四年了,它的年龄当然是一千万零四年喽。这位讲解员之所以会闹笑话,就在于把两个测量精度天差地别的近似数直接相加。实际上别说过上四年,就是再经过四百年,那件化石的年龄仍然是距今一千万年。

关于如何处理近似数运算结果的有效数字,许多相关教材都有详细论述。简单来说,加减法运算取决于近似数的绝对误差,最终结果以参与运算的各近似数中小数点后位数最少的为准。例如3.48厘米+0.001厘米,其结果应该记为3.48厘米而不是3.481厘米。乘除法运算则取决于近似数的相对误差,最终结果以参与运算的各近似数中有效数字位数最少的为准。例如测得某个区域面积为2.2平方米,施加在该区域的压力为4862牛,求该区域的压强,那么简单报告为4862牛/2.2平方米 = 2210 帕斯卡是不妥的。由于面积的测量值只有两位有效数字,由此计算出的压强也只能保留两位有效数字,应该按照科学计数法记为2.2×103帕斯卡,或者改换单位,记为2.2千帕。

接下来我们回过头来看一下疫苗的有效率这个问题。疫苗有效率的计算公式为:

有效率= (1 – 疫苗组感染率/对照组感染率)× 100%

其中疫苗组和对照组的感染率分别等于该组的感染人数除以该组总人数,因此如果两个组的总人数相同,上述公式可以简化为:

有效率= (1 – 疫苗组感染人数/对照组感染人数)× 100%

= (两组感染人数之差/对照组感染人数)× 100%

看到简化后的公式,有些朋友可能会说:方舟子说的没错啊,这是近似数的乘除,既然感染人数只有两位数,那计算出的有效率也只能有两位数。问题在于,感染人数并不一定是近似数。这是什么意思呢?如果我们数了一下,某个组里感染新冠病毒的人数是20,那真实情况就是正正好好有20个人感染,不是说感染人数为20±1人。而且,人数是整数,不存在有20.3个人感染、但我们数不出那0.3个人这种可能。总之,20这个数字是完全准确、没有误差的。像这种与真实值完全符合的数值,我们称之为准确数。

涉及到准确数的四则运算,除非有特别的约定,否则前面提到的有效数字的规则并不适用。例如问1/8等于多少,正确的答案当然是0.125,谁要是说1和8都只有一位有效数字[1],所以相除结果也只应保留一位有效数字,应该回答0.1,那么我想阅卷老师一定会毫不客气地打上一个大红叉。又如前面提到的长度测量的平均值,回答3.47857厘米当然不对,但如果认为7这个数字只有一位有效数字,因此平均值应该报告为3厘米,同样也是错误的,因为表示测量次数的7是个准确数。或者,我们也可以将准确数的有效数字位数理解为无穷大,上述问题中,测量次数为7.0000…次,在计算平均长度时,应以有效数字较少的数据为准,因此我们参照长度的精确度,保留3位有效数字。

明白了有效数字、近似数和准确数的概念,我们就不难理解,疫苗临床试验中虽然感染人数只有两位数,最终有效率完全可以有四位数字。比如两组总的人数相同,疫苗组有20人感染,对照组有98人感染,二者感染人数相差78那么有效率就等于78/98,约为79.59%,和国药集团公布的数据比较接近。实际上,78/98对应的是一个无限循环小数,我们再多保留几位小数也不是不可以。

当然,这里面还会牵涉到其他方面的考量。生物医学试验本身就具有不确定性,这次试验疫苗组有20人感染,下次试验可能是19人感染,因此一味保留太多小数也无太大意义。国药集团根据三期临床试验结果,适当地保留了二位小数,以较好地说明此次试验的结果,这样做并没有问题;或者考虑到生物试验的不确定性,少保留一位小数、甚至只保留整数,也完全可以。不同的做法出于不同的考量,并无对错之分。无论如何,这里不涉及测量误差,方舟子博士质疑为什么感染人数只有两位数,有效率却有四位数字,可见他对有效数字概念的理解一塌糊涂,完全是在拿自己的错误认识质疑科学家的工作。

莫德纳疫苗的有效率同样可以用这一公式验证。根据莫德纳公司公布的数据,疫苗组有5人感染,而对照组有90人感染,那么有效率就是85/90× 100%,其结果仍然是一个无限循环小数,如果近似到小数点后一位,那就是94.4%,和莫德纳公司给出的94.5%略有差别,有可能因为我们的简化公司假定两组的总人数相同,但实际上并不相等。具体细节有待验证,但在有效数字问题上,中外科学家们都不会有任何困惑。

综上所述,所谓“给国药疫苗编数据的人中学数学没学好”,完全是方舟子对概念的错误理解基础上得出的污蔑之词。这位被粉丝吹捧为中国最好的科普作家居然在这么基本的概念上闹笑话,真是令人大跌眼镜。当然了,这只是他在新冠疫情期间众多的丑行之一。自从新冠疫情爆发以来,方舟子一方面无视我国抗疫的巨大成就,对正当的防疫政策百般攻击污蔑,甚至不惜编造谣言,另一方面又不停地为欧美一些国家政府面对疫情软弱无力、漠视人民健康的行为辩解开脱,已然沦为中文网络上的一个笑柄。笔者不知道他还要在这条错误的道路上走多远?

注[1] 实际上首位数字为8或者9时,有效数字可以根据需要多记一位

-完-