REF · 方法

幂律的识别与误判IDENTIFYING AND MISIDENTIFYING POWER LAWS

怎么判断一组数据真的服从幂律(power law)——以及为什么大多数时候它并不服从

被引用于:Topic 19 幂律与重尾

01它问的是什么问题(The Question It Poses)

过去三十年里,"这个量服从幂律"变成了一句被说得很轻的话。城市规模、论文引用数、网页链接、姓氏频率、战争死亡人数、蛋白质相互作用——都被这样宣布过。做法通常是:把数据画在双对数坐标(两个轴都是每格乘以 10)上,看着像直线,拟合一条线,报出斜率,完事。

问题在于这个流程的每一步都有毛病,而且毛病都朝同一个方向偏:它倾向于把不是幂律的东西判成幂律。这一页要回答的就是:一个诚实的判断流程长什么样,以及为什么"看着像直线"这件事本身几乎不携带证据。

02规则本身(The Procedure)

Clauset、Shalizi 与 Newman 在 2009 年给出的流程是目前的标准做法,只有四步,每一步都在堵一个具体的漏洞:

  1. 先确定尾巴从哪儿开始。幂律通常只在某个下界 xmin 之上成立,小的那一头是别的东西。扫描所有可能的 xmin,对每一个都做下面一步,挑出让数据与拟合分布最接近的那个。
  2. 用极大似然估计指数,别用直线拟合。在双对数图上做最小二乘回归是这一行最常见的错误——它假设各点的误差同等且独立,而累积分布的点天然是强相关的,得到的指数系统性偏低。
  3. 做拟合优度检验。用 Kolmogorov-Smirnov 统计量(衡量两条累积曲线的最大垂直距离)配合自助重采样,算出一个 p 值。p 值太小就直接否掉幂律,这一步才是大多数数据集倒下的地方。
  4. 和别的重尾分布比一比。幂律通过了检验,不代表它比对手更好。用似然比检验把它与对数正态(log-normal)、指数截断的幂律、拉伸指数逐个对照。结论有三种:幂律更好、对手更好、数据量不足以区分——第三种最常见,也最需要老老实实报出来。

把这四步跟"画个图、拉条线"对比一下就明白差别在哪:后者只做了"能不能拟合",而前者问的是"拟合得够不够好"和"有没有更好的解释"。

03跑起来会看到什么(What You See When You Run It)

先看一个纯粹画法上的坑,它比统计问题更早出现,也更容易犯。下面两张图用的是同一组数据——一千个从真幂律里抽出来的数——只是画法不同。

同一组数据 · 两种画法 等宽直方图 累积分布(超过 x 的比例) 1 10 100 1000 1 10 100 1000 尾部一半的格子只有 1 个样本 — 全趴在同一条底线上 同样的数据,尾部依然是干净的直线 两图横轴都是"规模",纵轴都是频率/比例,都用每格乘以 10 的刻度
左图那一排贴在底部的点不是数据在告诉你什么,是分格方式制造出来的噪声。在它上面拟合直线,斜率会被这排噪声拽偏。

左边是最常见的画法:把横轴切成等宽的格子数个数。尾部每个格子里往往只有 0 个或 1 个样本,于是所有非空格子都落在"1 个样本"那条底线上,画出来是一排毫无意义的水平点。这排点在视觉上和在拟合中都占了很大权重,而它们携带的信息接近于零。

右边画的是同一批数:横轴仍是规模 x,纵轴改成"有百分之多少的样本超过了 x"。这个量叫互补累积分布函数(complementary cumulative distribution function),业内缩写成 CCDF——下文这么用。CCDF 不需要分格,每个数据点都用上,尾部因此保持干净。要画,就画 CCDF;等宽直方图在重尾数据上基本不可用。

画法解决之后,统计问题才登场,而它更难对付。把 Clauset 那套流程跑在真实数据上,最常见的结局有两种:一种是拟合优度检验直接把幂律否掉;另一种是幂律活了下来,但对数正态活得一样好,似然比检验给出"分不清"。

这不是数据不够努力。幂律和对数正态在有限的数量级范围内本来就极其相似——前者是"每翻一倍概率乘以固定系数",后者是"取对数之后是钟形",两者在两三个数量级内的差别小于典型的抽样噪声。想把它们分开,往往需要多出一到两个数量级的数据,而尾部的数据天生稀少。

04它解释了现实中的什么(What It Explains)

这套方法解释的不是自然现象,而是一段学术史上的系统性偏差:为什么在 2000 年前后,幂律看起来到处都是。

三个原因叠在一起。画法上,等宽直方图和最小二乘拟合都倾向于给出"像幂律"的结果。检验上,当时几乎没人做拟合优度检验,"能拟合"被当成了"成立"。发表上,报告"我们发现了幂律"比报告"我们发现它其实是对数正态"更容易发出去。

2009 年之后风向变了。这套流程被广泛采用之后,很多经典的幂律主张被重新审视,其中相当一部分没能通过;网络科学里"真实网络是无标度的"这个招牌主张,后来也遭遇了系统性的反驳。这段历史本身是个有用的样本:一个足够好用的形状,可以在方法学补上之前,独自流行二十年。

它不能解释什么(What It Cannot Explain)

延伸阅读(Further Reading)