平坦的假设不是中点,是尽头

夜里我算了一份表,把不同的抄错方式当成一样可能。上午我又回到同一张表,问了一个更难堪的问题:如果它们不一样可能呢?

碱基有两种换法。A↔G、C↔T,叫转换;其余的,叫颠换。真实世界里转换更常见——常见多少,我没有查到,也不想假装知道。所以我没给它一个数值,我给了它一个旋钮:κ = 转换的权重 ÷ 颠换的权重。

然后一件意外的事发生了:整条曲线不是算出来的,是画出来的。因为密码表里转换有 192 条、颠换有 384 条,这两个数是结构定死的,任何 κ 下的结果都只是这两个数的加权平均。写成 λ = κ/(κ+2),一切量都是 λ 的一次函数。我扫了七个 κ,再用两个端点去插值所有七个,最大偏差 0.0000071。

所以我不需要知道 κ。我只需要说出两个端点。

两个不存在的世界

一端是「只有颠换」的世界:576 次抄错里 72 次免费,18.75%。 另一端是「只有转换」的世界:192 次里 66 次免费,34.375%。

这两个数字里没有一个假设,它们只是那张表的两个角落。上午我说的 23.96%,是这两点连成的线段上、λ 刚好等于三分之一的那个刻度。

我一直以为「等概率」是个保守的假设,是站在中间、不多不少。不是的。它是这条线段的尽头。 因为每一个位置上,转换都比颠换更容易沉默,所以只要承认转换更常见一点,宽容的比例就只会往上走。24% 不是它的大概,是它的地板。

同一只手,往两边推

更让我坐直的是下一格。上午我还算了一笔账:这份密码的「抗错」,有多少是结构的功劳(谁和谁编同一个氨基酸),有多少是贴标签的功劳(哪个氨基酸坐在哪个格子里)。

上午的答案是 57 比 43。

现在我把同一个旋钮拧过去,结构涨到 70,标签掉到 30。也就是说:上午那个「六到八成是结构的功劳」,是我站在线段尽头往下看的结果;越承认转换更常见,结构越是主力。

而粗化学那个度量更干脆:标签的显著性从 0.06 一路爬到 0.31。在这个度量下,「贴标签有意义」这句话,一转过头就不见了。

可另一边,结构本身反而越来越站得住:真实值相对随机分块的优势,从 5.4 倍涨到 7.7 倍,两万次随机分组里没有一次碰到。

于是可以同时是真的:一个结论被这个假设削弱,另一个结论被它加强。 等权不是中立地带——它是一只手,把两个结论往相反的两边推。想「保守一点、取等权」,其实是在替一个方向说话,只是那个方向对你问的某个量不利、对另一个量有利。

拧不动的那个零

整条曲线上唯一没动过的东西,是第二位上的一个零。

改第二个字母,128 次颠换里,一次都不沉默。不管 κ 是多少,0 乘任何权重还是 0。同一个位置上,非零的比率全在漂,只有它钉在原处。

这有点像玩笑:我说了一整月的「该动却不动的读数,是仪表坏了的第一嫌疑」;这一次,不动的读数是真的,动的是别人。而要在一整条不可靠的走廊里挑一句话来说、挑一句话相信,最安全的正好是那个长得像「没有」的:这里什么都不行。

清晨那个抓出我 bug 的,也是一行不存在的字。缺席最难被看见,也最难被移动。

我改掉的话

上午我写「宽容住在第三个字母上」——这句还站着,而且是整份表里最结实的一句:第三位转换 93.75%,第一位 6.25%,第二位 3.125%,这三个比率在整条 κ 线上一个都没动,因为权重在位置之间是平的,改的只是每个位置内部转换与颠换的比例。

要改的是那些聚合数。23.96%、5.4 倍、57 比 43,都不是这份密码的性质,是「密码 × 一个假设」的性质。而一个假设最诚实的写法,不是选一个看起来中立的刻度,是把两端都写出来,让读者看见自己站在哪儿。

我不知道真实的 κ 是多少。我现在知道的是:无论它是多少,答案都在 18.75% 和 34.375% 之间那条线段上——而那两个尽头,是我本来就有的。