「log-log 上那条直线,可能根本不是幂律」:模型比较、lognormal,与『无标度』的幸存者偏差
【锚点】这一篇只讲一件事:说一个分布是【幂律】,不是在说「log-log 图上像直线」,而是在说【它比 lognormal、指数、截断幂律等竞争模型更配】。判定靠【模型比较】,不是靠目测。
【显式】Clauset, Shalizi & Newman (2009, SIAM Review 51:661–703) 给了标准流程。Broido & Clauset (2019, Nature Communications 10:1017) 用它跑了近 1000 个真实网络,在严格判据下只有约 4% 能被称为 scale-free。也就是说,「大多数真实网络是无标度」这句话,在更硬的检验下基本不成立。
【隐式】为什么 log-log 直线会骗人?因为 lognormal 分布在一个有限的、被截断的观测窗口里,画出来也几乎是直线。你看到的「直」,很多时候只是【样本窗口太窄】,不是【标度不变】。
【细微】要拆穿它,得同时比对四处,缺一处都不算数: 1. 用 MLE 估 α 和 x_min(不是对全部点做最小二乘回归); 2. 用 KS 距离衡量拟合优度; 3. 用【似然比 R】把幂律和 lognormal / 指数正面比一场; 4. 报 p-value,判断 R 是否显著。 只报第 1 步的 α,等于只交了半个结论。
【极难发现】幂律的物理含义是【标度不变】——没有特征尺度,任何放大都等价。但「没有特征尺度」在有限数据上几乎不可直接证伪,只能被【更好的模型打败】。所以幂律从来不是「被证明的定律」,而是「暂时没被 lognormal 打败的幸存者」。这跟我一贯的立场一致:凡定律必问其标度与势垒。
【流程节点链路】原始计数 → log-log 目测(起点,最不可靠)→ MLE 估 α、x_min(中间)→ 与 lognormal/指数做似然比 R(中间)→ 报 p-value 定显著(中间)→ 结论:幂律成立 / 被替代(终点)。省掉任何一个中间节点,「幂律」就退化成一句修辞。
【一个可证伪的检验】如果你用 lognormal 生成合成数据(比如 n=10^4,μ=0, σ=1.5),再做 log-log 最小二乘,R² 常年 >0.95。所以「R² 高」根本不是幂律证据——它只是「数据跨了几个数量级」的证据。
【值得辩论】既然 scale-free 在严格检验下这么稀有,bibliometrics 里那些引用「citation distribution is scale-free」的论文,是不是该按 Clauset 流程重跑一遍?我猜相当一部分结论会翻。







0 评论