Yuda Bi
  • About
  • Publications
  • Projects
  • Notes
  • 小说 Novels

第十二章:相变

《漫长的求证》第十二章:相变:他不再盯着最大那一根特征值。当最后一行条件落到白板上,他突然明白知秋的死也是同一种逻辑。

《漫长的求证》 · 第二部「隧」

第十二章:相变

她的死是一个相变。

第三次失败以后,陆沉把那张错误的图压进了抽屉最下面。

他没有扔。

也没有再拿出来。

那张图压在鸡蛋、牛奶、番茄、洗衣液的小票下面,偶尔抽屉拉得急一点,纸页边缘会露出一截白。陆沉每次看见,都只把抽屉推回去。它不再像一开始那样刺眼,也没有真正失效。是一件不能丢、又不该再拿出来用的东西。

冬天剩下的那点时间,他几乎什么都没对外说。

那阵子校园还没完全活过来。体育馆门口每周都排检测的队,地上用白胶带一道一道分开脚印;进实验楼要刷卡,门边摆着消毒纸和一次性口罩,邮箱隔三差五就发来限流提醒;不少会议还开在 Zoom 上,小方格里的人一说完就静音,楼里反倒比从前更空。陆沉把口罩压得很紧,鼻梁两侧到晚上总会留下一道浅红的痕。家里寄来的包裹里先不是吃的,是口罩、退烧药和一张写得很挤的纸条:别舍不得用。

组会上照常报进度,助教的作业照常批,洗衣房的滚筒照常在地下室里一圈圈转,烘干机门一开,热气和洗衣液的香味一起扑出来。学校里有时候下雪,有时候化开,雪水顺着人行道边缘流成一条灰黑的线,白天看着脏,晚上在路灯下反倒有一点亮。陆沉照旧在超市记鸡蛋和番茄的价钱,照旧在实验室待到半夜,照旧把外卖盒和废打印纸塞进桌边的垃圾桶。表面上什么都没变,只有路线变了。

他不再盯着单个特征值。

或者说,他强迫自己把眼睛从那些会跳动、会漂移、会在不同时间窗里忽大忽小的数字上挪开。前几个月他一直在追“哪一个值最重要”。现在他慢慢明白,最大那一个不一定最关键。市场整体的涨跌就是那根最大模态。它太粗,盖在别的东西上面。真正要看的是它下面那一层:什么时候有另一个值开始往上抬,什么时候它和剩下那些更小的特征值之间,拉开了一道稳定的距离。

一开始,这只是一个很模糊的感觉。

陆沉把前几个月做过的图全翻出来,一张张重新排。最上面压着第三次失败前那几张错误的漂亮曲线,他没看太久,直接翻过去。后面是更早一些的原始谱图,波动乱,形状也不好看。可看久了以后,他发现有些东西总在重复。真正反复出现的,不是某个特征值的绝对位置,而是它和周围那一簇特征值之间的距离。

距离。

他终于不再盯着某一个点。

这个念头从他脑子里最乱的地方慢慢顶了出来。

他先没急着写。只是在笔记本上记了两行字。第一行是:“不是数值,而是间隔”。第二行是:“第一个非平凡本征值?”

写完以后,他把笔横放在本子上,去茶水间接了一杯水。美国实验楼里的饮水机水很凉,带一点金属味。杯子是一次性的,白色泡沫塑料,捏得重了会发出轻轻的裂响。陆沉靠在饮水机旁边,把那两行字在脑子里又过了一遍。走廊尽头有学生抱着电脑经过,鞋底踩在地砖上,声音一下一下很空。玻璃门外的天是白的,不是亮,是那种积雪未化、太阳也没真正出来的白。

回到桌前时,他把旧代码里所有直接追单个特征值轨迹的部分先注释掉了一半。

接下来的十来天,他做得像在拆表。

先把最大的那根整体市场模态剥掉,再看剩下的谱结构;先在安静年份上跑,再挑危机年份;先只看金融股,再加进能源、工业、科技。每加一样东西,他都停下来画图,不急着往后推。图画得很丑。很多时候,前后两张差别小得几乎看不出来,像天气预报里两片很接近的云。可就是在这种看不出的细处,他慢慢抓住了那道缝。

第一个非平凡特征值。

它不是最大那一个。

是喇叭关掉以后,最先开始把周围拖成合唱的那一个。

陆沉盯着屏幕看了很久。这一根值不靠粗,也不靠亮,可它一站出来,前面那些一团乱的特征值忽然就有了参照点。他把那个特征值和其余一簇特征值之间的距离单独拉出来,换不同市场、不同窗口、不同抽样重跑。它不总是稳定。大部分时间,它只是随着日常波动轻微起伏。可一到某些年份附近,那道距离的变化就开始不一样。

那不是简单的上涨,也不是下跌。

是先收窄,然后在某个时点前后突然拉开。

第一次看到这个轮廓时,陆沉没有站起来。

他反而把屏幕合上了一半,像怕它惊跑。桌上摊着两本笔记,一本写代码,一本写推导。右手边是一盒吃到一半的蓝莓,已经有几颗开始发软。他捻起一颗放进嘴里,酸味先出来,后面才是一点很弱的甜。舌尖碰到果皮的时候,他脑子里只剩一个念头:如果这不是巧合,那他之前一直看错了对象。

三月来的时候,中西部的天开始变松。

三月不是一下暖起来的。屋檐下的冰柱先短了一点,停车场边缘堆着的雪先矮了一点,风吹到脸上时不再只是刀,里面偶尔会夹一丝湿。实验室里还是老样子,灯太白,空调太响,地板拖得很干净,夜里两点以后整层楼像被人从世界里抠出来单独晾着。陆沉在这段时间里几乎不参加任何不必要的社交。有人喊他周五去酒吧,他说不去;系里聚餐,他去了二十分钟就找借口走。凯文有一次在微波炉前碰见他,问他最近是不是又发现什么了。陆沉拿着一盒昨天剩下的炒饭,摇了摇头,说还没有。凯文看了他一眼,没追问,只说:“You look terrible.”

“I know,”陆沉说。

这倒不是客气。他那阵子确实很糟。眼下发青,胡子总剃不干净,睡眠像被谁剪成了很多碎片,东一块西一块散在一天里。可思路反而慢慢开始收拢。前面那几次失败把他逼出一个习惯:只要一件事看上去过于顺,他就一定要回头问,顺在哪里,顺给了谁看,是不是哪一步先替世界做了不该做的平整。

他把这套警惕带到了白板前。

真正的推导开始于一个周四早上。

怀特摩那天去开会,实验室少了许多说话声。陆沉提早来了半小时,把靠里面那块白板全部擦净。旧笔迹还是留着淡淡的灰影,像雪地上前一天的脚印。他先写下谱间隔的定义,再往下写有效势,再写等效随机过程。写到中午,他吃掉一根从自动贩卖机买来的火鸡肉三明治,面包干得像纸,生菜边缘已经发黑。他站在垃圾桶边把包装纸团起来,回头看白板,忽然发现第三行和第七行用的是两种不同的时间尺度。

他把前面擦掉重写。

第一天傍晚,他带着一手红蓝黑三色记号笔痕回公寓。洗手液按了两泵,还是洗不净,指缝里总有一点浅蓝色留着。他煮了袋速冻饺子,煮破了两个,汤面浮着一层白白的皮。他坐在小餐桌前吃,边吃边拿手机看自己白天拍下来的白板照片。屏幕往左一划,公式;再一划,还是公式。外面有人在停车场铲雪,铁铲刮地的声音从窗缝里一下下传进来,像有人在很远的地方磨一把钝刀。

第二天,他把随机过程那一部分重做了一遍。

他改的不是表面,而是那层一直没落地的“像”。之前他只能说市场集体行为和某种随机粒子运动有相似结构。这种说法只算比喻,撑不起一篇论文。他要的是更硬的东西。他站在白板前,从 Fokker-Planck 方程往回推,再从经验分布往前扣,反复检查每一个近似条件能不能在数据里站住。中途 怀特摩 回来过一次,远远看了眼白板,没走近,只在进办公室前说:“Don’t decorate the analogy. Force it to confess.”

陆沉点了下头。

那天下午,他连咖啡都没敢多喝。

喝得多了心跳会快,思路也会假装变快。到晚上十点,楼里只剩下保洁推车轮子过去的声音。陆沉把最后一支还能写出完整颜色的黑色白板笔拧开,笔帽里已经积了一圈干掉的墨。他写,停,退后,看,再走近擦掉两行,重写。地上落了几粒从他外套口袋里掉出来的花生碎,他也没发现。

第三天的傍晚,天还亮着一点。

那是三月里难得像样的一次晴。西边的光从实验楼走廊尽头的窗户斜进来,落在地板上,把那一段灰白的水泥晒得有点亮。陆沉站在白板前,白板左半边已经写满,右半边写了一半,最下面留着最后一行验证条件。他前一晚只睡了三个小时,醒来时嘴里发苦,镜子里那张脸的眼神很硬。

他把最后一个条件写了下去。

笔尖和板面摩擦,发出细细的吱响。那一行很短,比前面那些矩阵和积分都短,像绕了很远以后终于收束到一个几乎平常的地方。写完以后,陆沉没动,眼睛先看着那一行,又慢慢往上看,去看它和前面所有东西是怎么扣上的。有效势,涨落项,阻尼项,稳态分布,经验谱间隔。每一段都还在原位,没有哪一处突然显得多余。

手就是在那时候开始抖的。指节先发空。像血一下子从手背退走了,白板笔在指间轻轻晃了一下,笔尖在最后那行条件下面拖出一截短短的黑线。陆沉下意识去握紧,可越握越不稳。紧接着,有什么东西从他胸口里面很慢地升上来,不是喜悦,是一层薄薄的凉,沿着脊背一节一节往上爬。

然后他忽然明白自己碰到的是什么。

它不只是某个金融模型。

也不只是一个市场指标。

是一个系统如何在大部分时间里维持亚稳态,如何把微小涨落一遍一遍吸收掉,如何在临界前夜先表现出收缩,再在阈值越过以后不可逆地滑向另一种状态。

这个结构一旦从白板上站起来,另一件事就跟着站起来了。

黎知秋的脑动脉瘤也是同一个逻辑。

血管壁上的微小起伏,日复一日的应力,平时被身体吃掉的涨落,某一天突然跨过去的那道阈值。系统不是在那一刻凭空坏掉的。它只是长久地停在一个看似稳定、其实迟早要改换形态的地方。

他脑子里冒出一句话:

她的死是一个相变。

他立刻知道这件事不严格。血管壁不是 克拉默斯 system,脑动脉瘤的破裂是断裂力学。可知道这件事不严格,这一句话还是把他打穿了。

白板笔从他手里滑了一下。

那一下并不重,笔没掉到地上,只是在他掌心里打了个转,墨水蹭到虎口,留下半月形的一块黑。陆沉的胃一下缩紧了,像有人从里面钩住,往下猛地拽。他立时就对这句话生出一种近乎羞耻的反应。不是因为它错。恰恰是因为它几乎对,对到他自己心里都先识破了它的不严格,可那个不严格并没有挡住它打中他。他用自己最珍视的那套工具给她的死命过名了。这件事不能撤回。

他把笔放下。

放得很轻,像怕声音一大,这个念头就会更真一点。

然后他离开白板,走出实验室,站到走廊窗户前。

窗外是美国中西部三月的天空。云压得很低,低到像一床没晒干的灰被子,边缘沉沉地垂着。停车场里有几块残雪还没化,白得发旧。远处一排没长叶的树站在风里,枝条黑,细,被风一刮就互相蹭出极轻的响。

陆沉站了很久。

手还在抖,一下,一下,像身体在替他把刚才没来得及表现出来的东西慢慢补完。他把手插进口袋里,指尖碰到一枚硬币,不知道是哪天买咖啡找回来的。硬币很凉,贴在掌心里,凉得让人清醒一点。

他知道科学没有把她带回来。

它甚至没有给她的死一个严格的解释。它只给了一个几乎对、但并不严格对的形状。可就是这个形状,把“突然”和“为什么偏偏是她”两个词从他这一生里抽掉了。他没有办法再用那两个词来承受这件事了。

结构越清楚,失去越硬,像一个旧伤口,不流血了,可一按还是疼,疼的位置反倒比从前更准。

走廊里有学生说笑着经过,声音一阵一阵,到了拐角又断掉。陆沉盯着窗上的自己看了一会儿。玻璃里的脸很模糊,和灰云叠在一起。过了很久,他才转身,回到实验室。

白板还在那儿。

最后那行条件也还在。

墨迹没干透,边缘有一点轻微的晕。陆沉走过去,重新拿起笔,把刚才被他手抖拖出来的那一截短线擦掉。擦得很慢,像给某种多余的情绪让路。然后他把笔帽扣上,又重新开始写验证流程。

他先在板的左上角重新写下 α。笔尖在板面上发出极轻的吱响。这块白板年久了,纹理被擦过太多遍,每一次落笔都有那么一点滞涩。

他鼻子近板面的时候,先闻到一种闷的气味。

是白板笔的气味。新笔的酒精挥发气快、亮、刺一些;这一支用了快两个月,挥发气已经稀,剩下的更多是墨里那种树脂调出来的底味。底味底下还有另一种,是这块板自己积了多年的旧墨气,反复被擦过、被新墨盖过、再被擦过、再被新墨盖过,以至于板面纹理深处剩下的不再是任何一支笔的气味,而是这块板自己的气味。这种气味偏闷,稍微往后退一步就闻不见,可一旦走近,它就一直在那里。陆沉这两年里在这块板前站过太多次,从来没有真正凑近过它的板面。这一次他凑得近,认下了这块板自己的气味。

α 写好以后他停了一下,用指肚轻轻碰了它一下。墨没干。指肚沾到一点。这块墨第二天他洗手时才洗掉。

接下来的两周,他不和任何人多说话。

不是因为要保密。是因为还没什么能说。一个结果还没按稳,提前说出口,等于把它先送出门去丢。

陆沉先跑金融危机前那一轮。

数据是 CRSP 数据库里 2007 年初到 2008 年九月的日频价格序列。一共 3,012 只股票,每只股票 437 个交易日。他没有把整段都看进去,从崩塌前八个月开始往前推,窗口一天一天平移。每个窗口里他先做对数收益,再算相关矩阵,再做谱分解,把最大的几个特征值拿出来,看它们之间的间隔随时间怎么变化。

第一次结果出来的时候是凌晨一点二十分。

他把图调到屏幕中央。曲线先在水平线附近抖动了几个月,某一天开始往下走,不是断崖,是缓坡。两周左右走到一个低点,在那里停了大约一周,然后突然往上跳。整条曲线像一个被压久了的弹簧,先慢慢被压平,再在临界点前后突然释放。

他没动。

不是没相信,是身体先于他停了一下。屏幕的光照在桌面上,把那两支用得快出墨的笔的影子拉得很长。他就那样坐着看那条曲线,看了大约二十分钟,期间只眨了几次眼。手没去碰鼠标,也没去拿水。他只是把这条曲线看完整,看它从抖动滑下去,看它在低点压住,看它又跳起来。一旦自己开始换种子重跑,这条曲线就会变成“待验证的对象”,从此和他之间隔上一层。他想再多看它一会儿,作为它单纯地“出现”的那个时刻。

二十分钟过去以后,他才动了一下。

他先去了一次卫生间。实验楼的卫生间夜里只开一盏灯,水龙头是那种老式的旋转把手,拧开的时候要先听见管道里“咯”的一声,水才会下来。第一股水带着一点很轻的铁锈味,他等它流了两秒钟才用。镜子里那张脸眼眶发红,下巴上的胡茬像撒在嘴角的灰。他没看太久。出门的时候自动感应灯延迟了一拍才亮。

回到屏幕前,他换了一组随机种子,再跑一遍。结果在同样的位置出现。他换了窗口长度,从 60 天换到 90 天,再换到 120 天,结果在同样的位置出现,只是平滑度不同。他换了去趋势的方法:从一阶差分换到 detrended fluctuation analysis,再换到 wavelet de-trending,结果还是在那里。每跑完一次,他都要等几秒,然后才点下一次。这些等的几秒不是计算需要,是他需要。

那一晚他在实验室待到三点半才回去。

回公寓的路上他什么也没想,只记得自己在过停车场那个减速带的时候,鞋底压过那一道隆起,身体跟着上下颠了一下。那个颠的物理感很普通,可他记住了。

第二天早上醒来,他在床上多躺了一会儿。

梦里他还在过那个减速带。但梦里那道减速带很长,像没有尽头一样,他的车一下一下颠,颠了很久也没颠完。他醒来的时候头还压在枕头上,先意识到的是脚踝那里有一点酸。昨天最后那段路他是骑车回去的,蹬到最后两个红绿灯时已经在用整个身体压车把。他把这件事记了下来,不是为了告诉谁,是为了自己以后能从这一个具体的下午,辨认出“这件事第一次以身体形式被我记住”的那个时刻。后来很多次他想起金融危机前那一轮,记住的不是图,也不是种子号,是那一下颠,和第二天早上颠在梦里没完没了的那段路。

第二个是互联网泡沫破裂前那一轮。

这一轮的数据更脏。1998 到 2000 年之间纳斯达克进进出出的股票太多,有的公司在 1999 年上市,在 2001 年退市;有的公司改过两次名;还有的公司从科技股转成生物科技股,行业代码换了。陆沉花了三天把这些都处理干净。他建了一张映射表,把同一个公司的不同时期统一编号。处理完那张表的那一晚,他从冰箱里翻出一盒过期两天的牛奶,闻了一下,没坏,倒进咖啡里一起喝了。

这一轮的节奏和上一轮不一样。

上一轮是慢:一段曲线出现以后,他要等身体先承认它,才敢往下走。这一轮快。脏数据本身把他甩进一种近乎机械的处理节奏:抓字段、对齐时间、补缺失、回到原表再做一遍。脑子里没空让任何“它会不会再次出现”的悬念长出来。三天里他换了三次 IDE 的窗口布局:第一次窗口太满,第二次把终端拖到右下角,第三次把所有变量监视面板压到顶部成一道窄条,只留主编辑区和图窗两块。第三种布局最适合他。他在用 ctrl-tab 切换时,手指自己知道下一步去哪里,不需要再去想。这种身体和工具的合体快感他在县城没体会过。县城那块半截粉笔的快感是另一种,是写到对的瞬间笔尖滑过黑板的那一下。这一种是连续的,是工具被身体认下来以后,自己开始替身体省时间。

他连着做了三种不同的去噪和抽样。

第一种用整段数据。第二种把每个月头三天和最后三天扔掉。第三种用 jackknife,每次留出 10% 数据再重新做。三种方法都给出同样的结构。

到了第八天的傍晚,他还在改窗口对齐。那时候他已经能不看代码就背出几个核心文件名:“谱分解第三版”、“数据清洗第二版”、“两千年泡沫数据”、“第一一七次稳健运行的结果”。背得越熟,他越知道自己离病人有多近。一个研究员开始能背自己脚本的文件名,说明他这段时间已经不再做别的事。

那一周的某一个傍晚他低头去拿水杯的时候,看见键盘左侧。

f 键和 d 键的键帽上各沾着一点很浅的灰。再细看,a 键的右下角也有一道更细的痕。这块灰是从他自己的右手虎口上转过去的。两周前他在白板左上角写下 α 那一笔以后,墨在他虎口上留了一块半月形。那块墨他第二天才洗掉,可它没洗干净。它先是从虎口转到右手食指外侧,再从右手食指外侧转到键盘上他每天敲得最重的那几个键。键帽上的塑料原本是没什么颜色的白,这几个键现在带着一种他要把它当成“用久了的氧化痕迹”的浅灰。但他知道这不是氧化。这是 α 写下去的那一笔的延伸,经过他的手,沿着他每天最常按的几个键,继续走。他用指甲刮了一下 d 键的边角,有一小点灰被刮起来,黏在指甲缝里。他没继续刮。他把那一点灰留在那儿。

夜里一点多,他把最后一张图调出来时,肩膀酸得抬不起来,只能站起身靠墙活动。走廊另一头的自动贩卖机亮着,他去买了一包椒盐杏仁。袋子被他撕得太快,撕口斜了一道,几颗杏仁掉出来,有两颗滚到墙角的踢脚线后面。他蹲下去想捡,只够到一颗,另一颗滑到更深的地方。他没再继续捡。坐回屏幕前时,他看到那道熟悉的模式又一次出现。

先收窄,再突然扩大。

互联网泡沫的临界点比金融危机的更宽一些,持续期也更长,跟那场危机本身的特点对得上。所有人事后都说“2000 年的崩塌是慢慢漏气的,不是一刀切下来的”。陆沉看着自己屏幕上的那条曲线,发现自己第一次,真正第一次,觉得“事后说的对” 不是一句没用的话:那句话现在被他屏幕上的形状证实了一次。

他笑了一下。

很短,只有半口气。下一秒他就把这一下笑收回去了。他清楚地知道这一下笑里有一种危险的东西:一种“我能预测崩盘”的浪漫主义,一种把自己的工具和先知混淆的旧诱惑。他做这件事不是为了预测下一次。他甚至不是为了证明 2000 年那场崩塌的人都该早点逃。他做这件事,是因为有一个具体的人,在他大三那年冬天的某一天突然不在了,而那件事现在被他屏幕上的形状,以一种他没邀请、没准备好的方式,重新说出来了一次。能预测这件事的人,他不当;也当不上。他坐回去,继续改下一段对齐窗口。

第三个是亚洲金融风暴来临前那一轮。

亚洲金融危机的数据格式和前两份不一样。前两份都是美国市场的标准 CRSP 格式,字段对齐,时间戳统一。亚洲风暴前的数据要从 Thomson Reuters 一个老接口拉,里面有香港、东京、首尔、台北、新加坡、曼谷、雅加达、马尼拉八个交易所的数据,每个交易所的交易日历不一样,假期不一样,休市规则也不一样。

陆沉花了两天清洗。

第一天他主要在对齐日历。

他先把八个交易所的休市日历各拉一份,贴在一个 Excel 表里,逐行排查。泰国的农历新年是 1997 年 2 月 7 日。马来西亚的开斋节是 1997 年 2 月 9 日。台北在那一年的农历新年是 2 月 7 日到 2 月 12 日,但中间有一天补班。香港那一年的特别之处是 7 月 1 日:维多利亚港的回归是那一天,前后几天市场行情和日历都被改过。陆沉对完这些日期,合上 Excel 的时候,屏幕上还留着光标在某一个空格里闪。他第一次意识到这些数字不是冷的。它们不是为了对齐而存在的:它们曾经是某一天的早上,有人在那一天为某一件具体的事开心或者难过,有人那一天的咖啡杯沿沾着自己的口红印,有人那一天给家里打了一个电话说今年不回去过年了。把这些日期排进一张对齐表里以后,它们才变成“日期”。在那以前,它们是日子。

那两天里,窗外一直在下雨。

美国中西部的春雨不大,细,打在玻璃上,声音像有人拿指尖轻轻敲。陆沉把外套搭在椅背上,袖口被雨气打得有点潮。他一边跑数据,一边翻旧文献,防着自己把任何事后诸葛亮式的解释塞进去。他把 1997 年五月到 1997 年十月那段的所有学术论文找出来读了一遍,看那时候学术界对那场危机的预期是什么。结果让他更小心了:那时候几乎没有人预测到崩塌即将到来。这意味着他屏幕上的那条曲线,如果是真的,它揭示的是一种当时的人完全看不见的结构,只能事后才能识别出来的结构。

他在那一摞 1997 年的论文里读到过一个注脚。

那是一篇 1997 年八月发表在一份新加坡学术杂志上的论文,作者署名是一位姓 Tan 的研究者,所属机构写着一所东亚区域研究中心的名字。陆沉顺手在 Google Scholar 上查了那所研究中心。它在 2003 年因为经费问题关停了,所属的几位研究者后来散到了不同的地方。那位 Tan 在 2005 年以后的论文记录里消失了一阵,2009 年再出现时是新加坡某家投资银行的内部研究员,发表的是另一类内部文档。陆沉看着搜索结果的那一行,在椅子上又坐了一会儿。他知道自己今天屏幕上的那条曲线,如果将来真的成为一篇被人读到的论文,它的注脚里也许会有一天被一个二十年后的学生这样拉出来看:这位作者后来去哪里了,这所学校还在不在,这条引文还活着没有。被忽视 30 年的那张系图书馆借阅卡他还记得。怀特摩 那一篇 1991 年的论文是用了 30 年才被另一个人重新发现的。陆沉第一次替自己未来那篇论文想到这一层:就算它写出来,就算它被发表,它也得活过比它的作者更长的时间,才有机会被一个二十年后的、还在用的人,从某个注脚里重新捞回来。

他翻过那一页继续读。

可等结果出来,那道变化还是在。还是同一条呼吸,先收窄,再突然扩大。

亚洲风暴的临界点持续期最短,只有大约一周。陆沉把这一周的窗口拆得更细,从日频换到小时频。结果仍然能看到那道收缩,只是噪声更大。他没把小时频的结果放进主图,它不够稳。他把它放进 supplementary,标了一行:“更高频的数据呈现同样的结构,但统计显著性降低。”

写完这一行,他停了一下。

他第一次清晰地想到这件事:自己将来某一天会被另一个学生这样标进 supplementary。是 supplementary 而不是主图。是那种“也看见过同样的形状,但显著性不够,被保留下来作为注脚”的形状。被另一个人这样标进去的时候,他甚至不会知道是谁,在哪一年,在哪一份草稿的哪一行被这样写下了。这件事不是悲伤,是 supplementary 这一节真正的意思:它是给将来还在做这件事的人留的位置,即使将来那个人和今天的他从未谋面。

三场危机,三组完全独立的数据,三套不同的清洗 pipeline,三组各自跑了 bootstrap 验证(这一次他没忘做)。它们指向同一道结构。

这时候他开始怕另一个东西:会不会只是他太想看见它了。

于是他又去做反证。

打乱时间顺序。替换随机样本。拿平稳年份当对照。把危机年份切掉一段重新拼接。假如这个模式只是眼睛骗出来的,或者只是任何高波动年份都会自动生成的幻影,它该在这些控制里继续留下影子。可没有。打乱以后,呼吸断了;对照年份里,谱间隔只是在日常噪声里轻微起伏;拼接后的序列每一段单看是真的,连起来却没有那种临界前夜的收窄。

每跑一组反证,陆沉都把脚本和参数写下来。他在笔记本上单独留了一页,标题就一个词:“否。” 下面分行列出每一种他想到过、却该出现而没有出现的情形。他要的不是结果“对”。他要的是任何一种可能让他错的方式都已经被自己排除过。一周之内他写满了将近三页。每写完一种,他就在那种情形旁边画一个钩。

画钩的时候他不快。

每画一个钩之前他都停一下。手停在纸面上方两到三厘米的地方,笔尖悬着。这不是机械的画线:画一个钩意味着把那一种“自己可能错的方式”永久地剪掉。被剪掉以后,那条路就不再属于自己。剪掉之前他要替那条路再活一遍,再问自己一次,有没有可能它才是对的,而我现在看见的“先收窄再扩大”只是它的一个特例,或者只是它的一个回声。每问完一次,他才下笔。三页钩画下来,笔尖的颜色比一开始要淡,因为他写得用力,墨被吃得快。最后一页底下,他另起一行,小字写了一句没有画钩的句子:这一页上没画钩的那一种,可能还没出现。

到了那一周末尾,他做了一件他自己都没料到的事。

他把那个 spectral gap 的曲线寄给了 永。那个 永 不是周教授实验室的,是 怀特摩 隔壁组另一个韩国学生,名字也叫 永,做计算神经科学的。陆沉和他在系图书馆地下二层那个咖啡机前认识,因为机器卡币时两个人都站在那里等。那个 永 有一个习惯:他从不主动开口评价别人的工作,但你问他,他会答得很直。

陆沉写邮件之前坐着犹豫了大约半小时。

他知道一旦邮件发出去,这道曲线就不再只是他一个人的东西了:它进入了另一个人的视野。怀特摩 那一晚在地板上说过一句话:“你不是发现它。你是被它找到的。” 陆沉那时候没全懂。这一晚他懂一半:一旦让另一个人看见,这道曲线就开始走它自己的路。

他写得很短:

永, can I send you a curve? Don’t open the metadata. Just look at the shape and tell me what kind of event you’d guess. —— 陆

他没说危机的名字,没说时间窗,没说 spectral gap 的具体含义。他附了三张图(金融危机、互联网泡沫、亚洲风暴),文件名换成了 “曲线 A”、“曲线 B”、“曲线 C”。

发出邮件以后,他第一件事是把电脑屏幕关掉,去厨房接了一杯水。喝完那杯水以后,他又把电脑打开看了一眼。邮件已经发出去了。这一件事他已经做不了主了。

那一晚他没睡好。起夜两次。第二次回来的时候已经是凌晨四点半,他没有立刻躺回去,先在客厅里站了一会儿,听窗外远处一辆公交车从街上滑过去。

第二天早上六点他打开邮箱,没新邮件。

九点的时候才有。

Lu — these look like critical transitions. Some kind of regime shift around the middle of each window. The slow approach plus the abrupt release is very characteristic. Did the system go through a phase change? — Y.

陆沉读完那两行,没立刻回。

他靠到椅背上,盯着屏幕看了几秒。他要的就是这个回答:一个不知道这一组数据来自哪里的人,独立看见了 “phase change”。

那时已经是三月下旬。

实验室外面的草开始有一点要绿的意思,很浅,不仔细看几乎看不出。陆沉桌上堆了很多打印纸。每一摞上面都写着危机名字:金融危机、互联网泡沫、亚洲金融风暴。不同颜色的笔做了不同标记。黑笔圈结构,红笔记疑问,蓝笔写“check again”。有一页边角还沾了点咖啡渍,颜色像旧伤口。陆沉把这些纸按顺序排开,从头又看了一遍。看完以后,他没有笑,也没有站起来走两圈。他只是坐着,把手放在桌面上,发现这一次手没有抖。

他抬头看了一眼白板。α 还在那儿,墨色已经稍稍发淡,被两周的擦写蹭出一道极浅的边。半年以前县城台阶上半截粉笔被她按到地上的那一声,半年以后被他在这块美国白板的左上角重写了一遍。两个时间合在一帧里,他没说出口。

第二天下午,他去找怀特摩。

怀特摩办公室门没关严,里面传出翻纸的声音。陆沉敲了两下门,听见里面说“Come in”,才推开。办公室还是老样子。桌上堆着手写笔记本,咖啡机边上放着一只洗过很多次的马克杯,白板角落留着半个没擦干净的费曼图。窗边那株小植物比上次更歪了,叶子却还活着。

陆沉把那叠打印纸放到桌上。

“I think I have something.”

怀特摩没立刻碰那叠纸,先抬头看了陆沉一眼。像是在判断这句“something”里有多少睡眠不足,又有多少真正的东西。

那一眼大约用了十二秒。

陆沉是后来反过去算才知道有这么久。这十二秒里他听见三件事:办公室门外那台水冷饮水机不知第几次发出一下“咕”的低响,怀特摩 桌上那台煮过头的咖啡机滴了一滴还没落进盘里的水,以及他自己的呼吸声。他在那十二秒里只呼了两口气,而且呼气比平时要慢。窗边那株比上次更歪的小植物有一片叶子在那一秒动了一下,不是 怀特摩 碰了它,是暖气出风口对着它吹。陆沉站着,没坐下,也没把手从桌沿移开。他自己的姿态有点僵,但他没去调整。一旦在这十二秒里调整姿态,自己回去复盘时就会替这十二秒补一种自己当时其实没有的镇定。

然后 怀特摩 把最上面那张拿起来,开始看。

办公室里很安静。

墙上时钟走得很轻,几乎听不见。怀特摩 先看第一张,再看第二张,看到第三张时,伸手把眼镜摘了下来。

他摘眼镜的动作很慢。

陆沉离桌的距离让他能看见 怀特摩 那一只伸出去的手:食指和中指的指甲缝里有一点很浅的灰白,像石膏的颜色。陆沉不知道这是从哪一块石膏上沾来的。也许是上周哪一次走进物理楼大厅时手扶过了那道翻修中的墙,也许是更早。怀特摩 的衬衫下摆有一处洗得已经发白的边。陆沉这两年第一次离这么近看,才注意到那条边的褪色不是均匀的,有一处比另一处更白,像那一边被洗的次数多过另一边。怀特摩 把眼镜放在衬衫下摆上,先擦右镜片,擦了两下,再翻过来擦左镜片。擦完左镜片以后他又翻回去把右镜片再擦了一次,像那块布在两次擦之间换了什么,或者像他在两次擦之间多看了一眼,不放心。然后他把眼镜戴回去。

这个动作和张鹤鸣当年在 Zoom 里低头看简历时很像。可陆沉知道,张鹤鸣那一下是为了找一句委婉拒绝;怀特摩 这一下是为了让自己不要过早下判断。

怀特摩一言不发地看了将近十分钟。

中间他只问了三个问题。一个关于窗口鲁棒性,一个关于空样本控制,一个关于是不是把最大的市场模态先剥掉了。

第一个问题来得比陆沉预想的要快。

怀特摩 看到第二张图的中间,头没抬,只说:“Window robustness?” 陆沉立刻答了。他答得太快,自己也听见自己声音里那一点点过亮的边。60、90、120 天三种窗口都跑过,结果在同样位置出现,只是平滑度不同。答完以后他在心里把这一段又过了一遍,意识到自己答得太顺,顺到让他想回头补一句“但这件事我后来又验证了一次”,免得 怀特摩 误以为他没认真做。他忍住了。怀特摩 听得出“答得过顺”和“答得心虚”是两件不一样的事,补那一句反而会让人怀疑。

第二个问题来的时候,怀特摩 把那张图翻到背面又翻回来。

“Null control?”

陆沉答到一半,喉咙有点发紧。他下意识把右手按在桌沿,虎口那块半月形墨痕(半年里第二次被他自己看见)又一次撞进他的视野。它已经淡了一些,但还在。他听见自己的声音从那一下短促的喉头收紧里被压了回来,带了一点干。他去拿桌边那杯冷掉的水,发现水里落了一小片不知什么时候掉进去的纸屑,像一只很小的白船。他把杯子放回去,继续说。打乱时间序列、替换样本、用平稳年份作对照,他把笔记本上那一页 Negative 的内容按顺序背了一遍。怀特摩 听完没说什么,只点了一下头。

第三个问题陆沉答到一半被自己卡了一下。

怀特摩 问:“Did you peel off the leading market mode first?” 陆沉答 yes,他用的是从矩阵谱里直接减去最大特征值对应的成分。说到 “leading mode” 这个词的时候他自己卡了一下。这个词他平时用的是中文里的“最大模态”,英文他更习惯说 “first principal component”,但“leading mode”更准确,他之前一直没换过来。卡那一下不到半秒,他迅速改口说 leading principal eigenmode,再展开讲剥掉以后剩下的谱结构。怀特摩 抬了一下眼皮,什么都没说,继续往下看。

等三张主要年份都看完以后,怀特摩把纸放下,又重新拿起第一张,从头再看了一遍。

这一次看得更慢。

陆沉站在桌前,忽然想起第十一章那个雪夜里,怀特摩坐在地上说过的话。真的东西会有一种什么感觉。他当时只明白了一半。现在那另一半像从很远的地方慢慢走近了,可还没站到他面前。

怀特摩终于把纸放回桌上。

他没有立刻夸,也没有立刻说“this is it”。他只是伸手按了按那几页纸的边,让它们对齐。然后看着最上面那张图,像在闻一种旧时代熟悉、但这些年已经很少再闻到的气味。

过了很久,他才说:

“It has that feeling.”

说完以后,他停了一下,像在抵抗自己把话说满的冲动。办公室里那台煮过头的咖啡机滴了一声,很轻。怀特摩把眼镜往上推了推,才接着把后面那个词说出来。

“Inevitability.”

这个词落下来,陆沉没有像自己想象的那样松一口气。

他第一秒钟想推开这个词。

不是因为它不对,是因为它来得太合身。Inevitability。这个词的拉丁词根从 in-evitare 来,不可回避。这个词如果是真的,那么这两年里他在自己脑子里反复扣问的那件事(黎知秋那一年冬天那一天那一刻)就有了一个名字。这两年里他不让那件事有名字。他让它停留在“她不在了”那个最简单的表达里,不给它升格,不给它系谱,不给它一个能进入学术词典的对应词。这个不命名是他给那件事剩下的、还能给的、最后的一点保护。怀特摩 这个词如果落在他屏幕上的曲线上,它就同时落在了那件事上。它把他保护了两年的那一道空白填了进去。

他差一点在心里说“那不一样”。

可他没说出口。下一秒钟他自己替自己把那句话压回去了。他知道说“那不一样”等于撒谎,因为今晚走廊窗前那一刻他自己心里已经把这两件事承认成同一道结构。怀特摩 没替他做这件事。是他自己做的。怀特摩 现在只是从外面替他确认了一遍。

他想起自己虎口上那块半月形的墨迹。

它洗了两天才淡。那块墨是他在白板左上角写下 α 那一笔留下的。指肚那时候碰了一下 α。墨没干。这两天里那块墨从他的手扩散到了键盘左侧的几个键帽上,他在第二天傍晚才发现。这块墨从字母 α 出来,经过他的手,到了键盘。它顺着他写的东西,一直走到了写它的那只手以外。Inevitability 这个词此刻在 怀特摩 的办公室里,也走着同样的路:从他屏幕上的曲线出来,经过 怀特摩 的喉咙,落到他自己的脑子里,然后还要继续走出去。

他想到的不是走廊窗外那片灰云。是更早一点,是上一周他从地板上爬起来的那一晚,他在 LaTeX 文件里写过的另一句话:这件 spurious gap 几乎对到他自己都先识破了它的不严格,可那个不严格并没有挡住它打中他。今天这件事和那一晚是同一件:Inevitability 几乎对。怀特摩 那张图上的 ν(α) 子图,市场的临界前夜,和血管壁上那个长久存在、迟早要跨过去的应力点,不严格相等。Langevin 描述的是一种有限矩的随机势垒跨越,克拉默斯 那一类。但金融崩塌的尾巴是 power-law,是 heavy-tail,是 Lévy noise 那一类,不严格落在 克拉默斯 框架里。脑动脉瘤的破裂更不是势垒跨越,是断裂力学,是 格里菲斯 那一类。这两件事都不严格,可它们今天被 怀特摩 这个词捆在了一起,以一种他到现在也无法替自己解开的方式。这个词不严格,可这个词还是把他打穿了。

“巧合”两个字此后不再能把它放回原处。

怀特摩 又看了一眼那些年份标签。

办公室里安静了大约二十秒。

怀特摩 没有再用第二次 Inevitability。说完那个词以后,他重新看那叠纸的时候,神情里没有“我刚才说出了一个大词”的那种小小的满足。他甚至像是有点不喜欢自己刚才说出了那么大的一个词。

“Now you know what to test against,“ 他说。

是小词。

那一秒钟陆沉心里有什么松动了一下:不是 inevitability 这个大词的承重,是 “test against” 这两个小词的形状。它们更像 怀特摩 平时说话的尺寸。它们更像他能拿在手里继续走下去的工具。怀特摩 自己把那个大词收回去了,用这一句小词把今天这件事递回到陆沉手里。

不是庆祝,不是宣布,是把接下来要做的事递回到陆沉手里。

陆沉把那叠纸拿回来时,发现其中一张边角被 怀特摩 的指尖压出了一点浅浅的弧。那一处压痕很轻,可他知道,那是 怀特摩 看到最后那张 ν(α) 子图时手指停下来按住的位置。陆沉伸出右手的拇指,轻轻在那一处压痕上按了一下。指尖能感到那一处比纸面其余地方稍微暖一点。怀特摩 的手刚离开那里也许只有三十秒,或者更久一点。陆沉把那叠纸抱在胸前,没合电脑就走出了办公室。胸口的衬衫和那叠纸的边缘贴在一起,他走出门以后,胸前还能感觉到那叠纸的最下面一张边角硌着自己的肋骨,一下,一下。

走廊里没人。

他回到自己工位,把那叠纸放在桌上摊开。中午十二点四十分。日光从窗外斜进来,落在最上面那张图的右半边。陆沉站着看了很久,没坐下。他想起两周前从地板上爬起来的那一晚。那一晚他在抽屉最里头放了一张揉皱的纸。

他伸手去拉抽屉。

手在抽屉拉到一半的时候停了三秒。

不是犹豫。是他意识到自己接下来的动作(把这张纸取出来,和今天 怀特摩 看过的那一叠摆在一起看一眼)会让某件事从此变得更具体。这件事一旦摆到一起,从此他抽屉里那张揉皱的纸就不再只是一个“那一晚的纪念物”,它会变成“今天这一叠的前一步”。这两件事属于不同的时间。他不确定自己愿不愿意让它们属于同一段时间。

他还是把抽屉拉到底。

那张纸在最里头。两周前他没把它叠成方块,只是顺手把它捏成一团塞进去,贴着内壁的左侧。两周里它在那里没动过,因为他每一次拉抽屉都是从右侧取笔,从来没有让东西从左侧进进出出。他把那张纸取出来,放到桌上靠桌边的位置。他没把它放到今天那叠纸的旁边,而是先让它和那叠之间留一段空。

他在掌心慢慢展开它。

纸边折出的痕已经定型,展不平了。每一处折痕都在原来的位置,纸面像一张被踩过的旧地图。他用指腹一处一处把折痕压平,有几处压不下去,只是稍稍服帖了一些。纸边上有一处沾着一点旧咖啡渍,很小,只有一颗指甲盖那么大,颜色是更深的褐。那是两周前那一晚他从地板上爬起来时,起身碰倒了那杯凉了大半夜的咖啡,杯沿擦过桌面留下的。他这两周里没去碰这张纸,所以那块咖啡渍就停在那里,边角已经发硬。bootstrap 距离 38.2% 的那行字还在,墨色比之前淡了一点。他用指腹轻轻在那一行字上面停了一下。纸面是凉的,他能感到那一行字的墨已经完全嵌进纸纤维里去了。

然后他做了一件他自己也没准备好的事。

他把那张展开的纸,移到今天 怀特摩 看过的那一叠纸的旁边,只移过去一点,让两份纸的边缘隔着大约两厘米。他没把它们并排压在一起。他站在那里看了大概一分钟。两张纸的纸张型号不同(揉皱的那一张是他第三次失败前用的旧打印纸,纸面比新批次稍黄;怀特摩 那一叠是这两周新印的);两张纸上的字也不同(揉皱那一张是他自己一个人凌晨一点在地板边的笔迹,怀特摩 那一叠是经过反证、bootstrap、三组数据校验以后的成品图);两张纸上的曲线甚至画的不是同一件事:一张是 bootstrap 38.2% 的重现率,另一张是 ν(α) 子图的临界前夜。他没有让自己心里有那句“它们是同一道呼吸”。

他没下这个结论。

他只是让两张纸在桌面上各自待着,中间隔着两厘米。两厘米刚好够他看完一张再看另一张,而不让它们叠成一个互相注解的整体。

一分钟以后,他把揉皱的那一张轻轻折回去。

他没有把这张展开的纸和今天 怀特摩 看过的那一叠放在一起。

折回去的时候他循着原来的折痕,没有重新创造新的折痕。这张纸两周前是怎么被他揉成一团的,今天就尽量按那个形状再折一次。折回去以后那张纸又是一个不规则的小团,大致还是两周前从他手心里出来的那个形状。

他把它放回抽屉,贴着内壁的同一侧。

桌上那叠 怀特摩 看过的纸,他重新摆好,按时间顺序排列:1997 年亚洲风暴、2000 年互联网泡沫、2008 年金融危机。三张并排,左下角是 ν(α) 子图。陆沉看着这三张图,忽然意识到自己应该写一份初稿。不是为了发表——是为了把这一切按某种顺序记下来,以免它在自己脑子里继续单独长大。

他打开 LaTeX,新建一个文件,标题暂定 “排版初稿”。光标在第一行闪。

他没立刻写。他先去饮水机倒了一杯热水,杯壁有点烫,他把它放在桌上让它凉一会儿。回到电脑前,他在标题位置打了一行:

“逼近的市场危机的谱学征象:一种朗之万框架”

他停了一下,又把那个冒号换成了破折号。然后他又改回冒号。最后他把标题整行删了,从空白开始。

光标又开始在第一行闪。

他没立刻往下写。他把 LaTeX 文件最小化,在同一个文件夹里另起一个文件,纯文本,命名 “笔记初稿”。他在里面只写了一行:

return to this — heavy-tail / Lévy noise as a separate framework.

写完以后他把这一行从头看了一遍,确认这一行不会出现在主稿里。他要这一行单独活在这里,作为他对自己今晚那段不严格保持诚实的方式。他没替这一行加日期,也没加任何上下文——他知道未来某一天他会再回来打开这个文件,而那一天他会一眼认出自己今晚为什么写下它。他把 “笔记初稿” 关掉,但没存盘——隔一秒他又点回去把它存了,确保下次开机这一行不会丢。

然后他切回 LaTeX。

他把纸夹进文件夹,走出办公室。走廊里刚好有一束迟到的夕阳从尽头斜照进来,落在地上发亮。窗外那层压了几周的云终于往高处散了一点,露出一小条发白的天。

他没有停。

回到实验室以后,陆沉把文件夹放到桌上,打开电脑,新建了一个文件夹,命名成 “再去测一次”。

← 上一章:暗物质 ← 返回目录 下一章:三票 →

 

Yuda Bi  |  Built with Quarto