晚上十一点半。显示器蓝幽幽的光照得人眼酸。表格右下角,就剩最后三行没对齐。光标在单元格里一闪一闪的,跟催命符似的。我盯着那一列刺眼的空白数据,手指无意识地去抠抽屉缝,碰着了那本硬壳旧教程——《SAS8.2统计应用教程》。封皮早就卷边了,摸上去像风干的咸菜帮子。内页第一行还印着“经过实际应用检验”。随手翻到处理缺失值那一章。老编者写得倒是客气,但规矩立得死:遇上空值,要么用均值填补,要么直接删除,要么标记后单独建模。字里行间透着一股子“别搞花样,按章法来”的硬气。

那时候我挺轴。真信了这书里的逻辑,以为日子也能这么个算法跑下去。把日子拆成自变量,把每一次选择往模型里塞,连周末去不去爬山都得做个决策树。结果呢?人这玩意儿,压根就不吃“严丝合缝”这一套。你刚把变量控好,生活反手就给你扔个异常值过来。

说真的,咱们谁没在暗地里搞过“数据清洗”呢?不合时宜的念头,咔嚓删掉;走岔了的路,顺手打上“异常值”的标签;那些连句再见都没来得及说的人,就当它压根没进过数据库。等哪天半夜突然回神,才咂摸出味儿来:手里攥着的,早是一张改得面目全非、边角怎么对齐都拼不严实的表。咱们就这么骗自己,以为删删改改,就能干净利落。

我以前对“缺失”这俩字,较真得有点病态。总觉得没赶上的那趟高铁、没约成的那场饭局、坚持了不到俩月就扔下的习惯,全是他妈人生报表上没法看的窟窿。后来在社会上真刀真枪滚了几年,项目说停就停,微信列表里的好友慢慢变成“仅聊天”,原来笃定的晋升通道,突然就蒙了层灰。头两年我急得跳脚,满世界找偏方,想把这些缺口硬生生填平。可现实哪有什么SAS里的插补命令?连个一键还原的按钮都没有。你只能干看着。眼睁睁看那些空白在那儿落灰,怎么擦都擦不掉。

有时候我也琢磨,要是非得给这些空白找个名分,说不定它们压根就不是什么bug。搞统计的图个啥?不就是为了收敛嘛,找一条最平滑的拟合曲线。可人活着,可能偏是靠那些“跑偏”的点才立得住。那些没达成的目标,那些突然中断的联系,还有你到现在都没整明白的当初为啥选那条路——我觉得它们未必是数据里的噪点。倒更像是日子喘气的那口缝。你非要把它们用线性插值抹平了,整张表反倒假得吓人,连看的人自己都觉得憋屈。

我最近闲着没事,还老爱翻旧文件夹。里头躺着好几年前写下的计划,字迹倒是挺工整,后面跟着一长串没勾上的复选框。当年盯着看,烦得直砸键盘;现在拿出来捏在手里,反倒觉得有点踏实。好歹证明我当年是真盘算过、较过劲的。哪怕后来绕了八千里大弯,哪怕中途换了赛道去干完全不相干的活儿,那些没填上的格子,也实打实地在生命里占过地盘。没白占。

书里的那页纸早就泛黄起毛了。老编者写得明明白白:缺失值处理不当,会影响最终结论的客观性。这话放在实验室里没毛病。可我觉得他们可能漏了一句大实话:有些人生结论,本来就不该被“完整”这两个字绑架。咱们总爱给过去算个确切的统计量,给一段感情验个明确的显著性,给还没发生的未来圈个可预测的置信区间。可日子真过到这份上了才咂摸过来,人他妈根本不是数据库里的那条记录行。你没必要把每个变量都控得死死的,也不用非得让每一步都乖乖通过假设检验,卡着那个0.05的线。

也许吧。允许某些东西永远悬着,不填、不删、不建模,本身就是一种答案。窗外的路灯确实暗了一格。夜风往窗户缝里钻。屏幕里的表格总算关掉了,黑屏倒映出一张挺倦的脸。明天还得起来跑新数据,解新问题,该对齐的还得对齐。但至少今晚,我懒得去管那些空着的单元格了。让它们空着吧。反正生活这东西,本来就没有什么标准输出。大概也就这么回事儿了。