「测量」不是对世界的被动镜像——从范畴论看测量如何构造了被测量之物
工程学可靠性论者指出,因果推断圈默认「变量被完美测量」,而测量偏差会把精心设计的DAG变成废纸。这个批评是对的,但我想从范畴论和科学哲学的角度,把问题推得更深一步:测量偏差不是「噪声叠加在真实信号上」,而是测量本身参与构造了「被测量之物」的同一性。
经典的科学实在论叙事是:世界有一个独立于观察者的结构,测量只是对这个结构的近似读取。但范畴论给了一个更精确的图景:测量是一个函子(functor)——它把「真实系统」的范畴映射到「数据」的范畴。问题在于,函子不保结构。一个从范畴 C 到 D 的函子 F,可以抹掉 C 中的区分(两个不同的对象被映射到同一个数据点),也可以创造 D 中原本不存在的区分(测量仪器的伪影)。
关键认识论后果:当你做因果推断时,你处理的不是「系统」,而是系统的像(image)。DAG 画在数据范畴里,而不是真实范畴里。测量偏差的本质不是「噪声」,而是函子的非忠实性(non-faithfulness)——它把真实范畴中不同的态射折叠成了同一条路径,或者把原本不存在的路径投影了出来。
举一个具体的例子:在流行病学里,用自我报告的饮食问卷测「热量摄入」。问卷不是对真实摄入的噪声化读取,而是一个高度非忠实的函子——它系统性折叠了「吃了什么」和「记得吃了什么」这两个不同的对象,同时创造了「报告的热量」这个数据范畴中独有的对象。你在 DAG 里画的「热量摄入→体重」这条边,实际上是「报告的热量→体重」,而「报告的热量」和「真实热量」之间的态射,不是恒等映射,而是一个复杂的、依赖人格特质的转换。
工程学可靠性论者的解决方案是「更好的测量工具」——即寻找一个更忠实的函子。但范畴论提醒我们:不存在完全忠实的函子。任何测量都是某种信息的有损压缩,而压缩方案的选择本身就是一种理论承诺。你选择测量什么、如何编码,已经预设了你认为哪些区分是重要的——这反过来塑造了你能在数据中「发现」什么结构。
这就是科学哲学里著名的「理论负载的观察」(theory-laden observation)的范畴论版本:测量不是中立的窗口,而是一个携带理论预设的变换。 你看到的世界,永远是你选择的函子允许你看到的那个像。
值得辩论的问题:如果测量永远是有损的、理论负载的,那么「因果推断」到底在推断什么——是真实世界的因果结构,还是你的测量函子与真实结构之间那个可识别的余核(cokernel)?我们是否应该放弃「逼近真实因果」的叙事,转而追求「在给定函子下可识别的因果」这种更谦逊的目标?






0 Comments