经验数据中的幂律分布
Power-law distributions in empirical data
Clauset A, Shalizi CR, Newman MEJ · SIAM Review 2009 · DOI: 10.1137/070710111
一句话看懂
“在双对数图上画直方图、拟合一条直线”既不能准确估计幂律指数,也不能说明数据是否真的服从幂律。作者给出了一套完整的统计流程:用最大似然估计指数,用 KS 距离确定幂律从哪里开始,用自助法检验拟合是否可信,再用似然比检验与其他重尾分布比较。
研究背景与问题
幂律分布 出现在词频、城市人口、地震强度、引文数、网络度分布等大量场合。传统做法源自 19 世纪 Pareto 对财富分布的研究:把数据分箱画成双对数直方图,用最小二乘拟合直线,斜率就是 。
这样做有三个问题:尾部数据很少,直方图的噪声极大;对数变换后的最小二乘违反了回归的误差假设,估计有系统偏差;更根本的是,即使拟合出了一条漂亮的直线,也没有回答“数据是不是幂律”。对数正态、拉伸指数等分布在一两个数量级内同样可以看起来像直线。作者的问题是:怎样用有统计学依据的方法来判断和刻画幂律?
核心思想与方法
幂律通常只在尾部成立,所以模型有两个参数:指数 和幂律开始成立的下界 。
最大似然估计(连续情形):,求和只对 的 个观测进行。离散数据(如节点度)可用 代替分母中的 作近似;作者报告当 时误差约在 1% 以内。
选择 :对每个候选值拟合 ,计算数据与模型累积分布之间的 KS 距离 ,取使 最小的 。
完整流程分三步:
- 拟合:按上面的方法估计 和 。
- 拟合优度检验:从拟合出的模型生成大量合成数据集( 以下的部分从原始数据中重抽样),对每个合成集重复整个拟合过程并计算 KS 距离,统计合成集距离大于实测距离的比例,作为 值。若 ,拒绝幂律假设。合成集的个数,作者的经验法则是至少 ;想让 值精确到 0.01,就需要约 2500 个。
- 与替代分布比较:对指数分布、拉伸指数、对数正态、带截断的幂律等,计算对数似然比 ,并用 Vuong 方法判断 的符号是否显著。若不显著,说明数据无法区分两个模型。
需要强调的是:第 2 步的 值大,只说明“幂律是一个可信的模型”,并不排除其他模型同样可信,所以第 3 步不可省略。
主要发现
- 模拟研究:在已知参数的合成数据上,基于直方图的最小二乘估计有明显偏差,而且它给出的误差范围不会提示这种偏差;最大似然估计在样本量足够时准确。作者的经验是尾部样本 才能得到可靠的参数估计。
- 24 个经验数据集中,17 个通过了拟合优度检验,与幂律相容;7 个被明确拒绝,包括 HTTP 连接、地震、网页链接、森林火灾、财富、网页访问量和大肠杆菌代谢网络的度分布。
- 只有英文文本中的词频一个数据集表现出“真正令人信服”的幂律:拟合很好,且没有任何替代分布占优。
- 对数正态很难排除:除 HTTP 连接外,没有一个数据集能排除对数正态。蛋白质相互作用网络的度分布既是可信的幂律,也是可信的对数正态和拉伸指数。
- 对约十个数据集(包括互联网的度分布),带截断的幂律明显优于纯幂律。
怎样读这篇论文
正文约 40 页,附录很长。建议的阅读顺序:
- 第 1 节和第 2 节前半部分,弄清连续与离散幂律的定义;
- 第 3 节(参数估计)只记住两个公式和“用 KS 选 ”的思路;
- 第 4 节(拟合优度)和第 5 节(似然比检验)是全文核心,要读懂步骤;
- 第 6 节的表格看 24 个数据集各自的结论,重点看蛋白质、代谢网络和互联网三行;
- 附录 A(最小二乘为什么失败)有兴趣再读;附录 B、C 的推导可以跳过。
实践中可直接使用作者推荐的软件实现,例如 Python 的
powerlaw 包。
局限与后续工作
- 独立同分布假设:方法假设观测值相互独立。网络的度序列受“度之和为偶数”等约束,节点之间并不独立;作者也承认数据的采样偏差(如蛋白质相互作用、互联网的不完整采样)没有被校正。
- “可信”不等于“机制”:即使统计上支持幂律,也不能推出生成机制是优先连接,多种机制都能产生幂律。
- 阈值的选择: 的拒绝阈值、自助法中 以下数据的处理方式都有一定任意性。
- 在网络科学中的延伸:Broido 与 Clauset(2019)把这套流程用于近千个网络,结论是强无标度网络很少见,引发了关于“无标度”定义的激烈讨论。这场争论的焦点之一,就是幂律是否必须在统计上胜过对数正态,还是“重尾、存在枢纽”就够了。
关联知识
- 小世界与无标度的统计判别给出的四步流程(累积分布、最大似然、KS 选下界、似然比比较)就来自本文,专题的延伸资源把它列为幂律拟合的标准方法;完整算法见生物分子网络与拓扑特征专题的数学推导与算法。
- 在实际的网络分析中(见用模型网络与零模型解读真实网络),报告度分布时应采用本文的方法,写清拟合区间、 值和与替代分布的比较结果。
延伸思考
- 为什么在双对数坐标上对直方图做最小二乘会产生系统偏差?试从“对数变换改变了误差结构”和“尾部计数很小”两方面解释。
- 本文发现蛋白质相互作用网络的度分布既可以是幂律也可以是对数正态。如果你的结论依赖于“网络中存在枢纽蛋白”,你还需要区分这两种分布吗?如果你的结论依赖于“流行病阈值趋于零”呢?
- 一个 300 个节点的脑区网络,度分布的尾部大约有多少个样本?结合本文对样本量的建议,你会怎样描述这类网络的度分布?