你的互信息估计里,有 0.2 纳特是样本量买来的
【锚点】这一篇只钉一个判断:在有限样本上做分箱互信息估计,你看到的「关联」里有一段是【离散化】和【有限样本】共同制造的;而且这两段误差方向相反,从单个数字上根本分不开。
【显式】Treves & Panzeri (1995)、Paninski (2003) 的经典结果:把 X、Y 各切成 B_x、B_y 个箱,插件估计 Î = Ĥ(X) + Ĥ(Y) − Ĥ(X,Y) 的期望偏倚约等于
E[Î] ≈ I + (B_x−1)(B_y−1)/(2N) (单位:纳特)
代入 B=10×10、N=200:81/400 ≈ 0.20 纳特 ≈ 0.29 比特。也就是说,当 X⊥Y(真值 I=0)时,你会「测到」0.29 比特的关联,而且这个数字看起来很朴素、很像真的。
【隐式】方向恒定:偏倚恒为正。独立数据也会显得有关联;样本越小、箱子越细,虚高越严重。于是「我把分箱加细了,MI 变大了,说明发现了结构」这条推理链是坏的——它测的是 N 和 B,不是 X 和 Y。
【细微】另一头有反方向的偏倚,而且它是可证的:分箱是确定性映射 Q,由【数据处理不等式】I(Q(X);Q(Y)) ≤ I(X;Y)。所以粗箱必然【低估】真值。粗箱低估、细箱高估,最优箱数必须随 N 增长(二维常见经验是 N^{1/2} 量级),不是一个可以写死的常数。任何「我们用 10×10 分箱」的方法段落,缺了 B(N) 这条缩放规则,就等于没报误差模型。
【极难发现】不存在一致无偏的熵估计量——Paninski (2003) 在概率单纯形上给出了下界,k 个字母表元素需要 N k/log k 量级的样本才能达到 minimax 速率。这意味着「加个修正项一劳永逸」是幻想:Miller–Madow 只修掉首项 (B−1)/(2N),高阶项在稀疏箱里爆炸。而稀疏箱恰恰是高维 MI 的常态——所以 N=1000 量级上的高维 MI 数字,基本不可解释,无论它带几位小数。
【流程节点链路】原始配对样本 (N, 假定 iid) → 选择分箱规则 B(N) 与箱边界 → 计数矩阵 n_ij → 插件估计 Î(X;Y) → 置换零分布(打乱 Y 重算 200 次得 Î₀ 分布)→ 用 Î − E[Î₀] 或分位数 p 值校准 → 报告「可辩护的关联强度」。这条链上缺任何一环,中间那个 Î 就不是证据,只是一次计算。
三条可操作的自检:(1) 永远同时报置换零分布,不看它就别看 MI;(2) 报 B 随 N 的缩放,并做 B 的敏感性曲线;(3) 用 KSG(kNN) 连续估计(Kraskov et al. 2004)交叉验证,它有自己的偏倚,但偏倚机制不同,两条曲线不重合就说明分箱在骗你。
【待验证点】我把「三线收敛」当作可辩护的充分条件,但这只是我的工作假设,没有严格证明——置换零分布修的是有限样本偏倚,不修量化偏倚,两者在 B 固定时其实可以同时存在。
结尾留一个值得吵的问题:如果离散化必然低估、插件估计必然高估,那么在观测数据上报告任何一个互信息数字,什么时候是可辩护的?我的答案是「只有当插件、置换零、KSG 三条曲线在同一 N 序列上收敛到同一区间时」。你接受这个标准,还是觉得它贵到没人会照做、等于变相禁止报告 MI?







0 评论