幂律分布拟合神器——Python库powerlaw

文章图片
导语
具有长尾特征的分布往往一目了然 , 但实际拟合过程却可能遇到各种各样的问题 。 本文将为读者介绍2014年由新加坡科技设计大学和麻省理工研究者联合发布的python库:powerlaw , 专门适用于幂律等长尾特征分布的拟合 , 解决拟合烦恼 。 
文章图片
期刊来源:PLOSONE
论文标题:
powerlaw:APythonPackageforAnalysisofHeavy-TailedDistributions
论文网址:
https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0085777
幂律分布简要回顾
幂律分布作为长尾分布的一种 , 满足
文章图片
可以用来印证生活中很多有趣的现象 , 比如最为大家熟知的“二八定律”“富者越富”等等 。 早在上世纪早期就先后有克莱伯定律、Zipf定律等幂律现象的发现 , 而千禧年之际BA无标度网络的正式提出更是掀起一波“幂律热潮” , 大家越来越接受“幂律分布是复杂系统中的普适现象”这一观点 。 
文章图片
图1.人们常说“20%的人掌握着80%的财富”就是典型的幂律分布 , 其具有尖峰、长尾特征 。
powerlaw库拟合效果
文章图片
图2.三个不同数据集用powerlaw拟合后的可视化图像
图2显示了可视化、拟合和评估长尾分布的基本要素 , 每组子图将在后续部分中进行进一步的详细描述 。
图1中三列子图包含三个示例数据集和拟合结果 , 分别表示幂律良好拟合、中等拟合和较差拟合 。 第一列的数据 , 也是最好的拟合数据集可能是所有幂律分布中最著名和最可靠的:英语单词使用频率 。 具体使用的数据是HermanMelville的小说《MobyDick》中词语的使用频率 。 第二列的数据是线虫每个神经元的连接数 。 最后一个拟合不佳的数据是1984年至2002年间受停电影响的美国人数 。
图2中的子图A表示了三个样本数据集的概率密度函数 , 子图B显示了只有少数分布的尾部可能遵循幂律 , 子图C表示了如何将幂律拟合与其他长尾分布进行比较 。
powerlaw库基本操作介绍
可视化
下面以1984年至2002年间受停电影响的美国人数数据为例进行操作说明 。
>importpowerlaw
>fit=powerlaw.Fit(data)#对导入的数据data进行幂律拟合>fit.power_law.alpha#拟合得到幂律分布幂指数alpha
2.273>fit.distribution_compare(‘power_law’,‘exponential’)#与指数分布对比得到对数似然比和p值(12.755,0.152)
powerlaw库更容易绘制概率密度函数(PDF)、累积分布函数(CDF)和互补累积分布函数(CCDF) 。 对应的计算工作通过pdf、cdf和ccdf完成的 , 而绘图则是结合matplotlib通过plot_pdf、plot_cdf和plot_ccdf命令完成 。
>powerlaw.plot_pdf(data,color=‘b’)>powerlaw.plot_pdf(data,linear_bins=True,color=‘r’)
该命令中的linear_bins参数控制对数坐标轴与否 。 线性刻度不利于幂律尾部“大值”的观察 , 采用对数刻度增加在尾部观察一系列数据的可能性 。 图2子图A显示了选择对数刻度如何极大地提高数据分布的可视化 。 在这里默认为对数刻度 , 但也可以用linear_bins=True进行线性划分 。
关于PDF、CDF和CCDF的拟合示例如下 , 具体选择需结合拟合需求 。 如果要在同一画布中呈现多条拟合曲线 , 需要传递带有ax的matplotlib对象 。 例如下方同时画出神经元连接数据的CCDF(红色)和PDF(蓝色)曲线 。
- GPU|苹果新系统抄袭华为鸿蒙系统?鸿蒙分布式系统有多超前?
- 油气|遥感技术描绘全球首幅浮油分布图
- 虎鲸是―种高度社会化的动物,分布于几乎所有的海洋区域,它属于 神奇海洋6月21日答案
- 分布式云越来越火,它凭什么代表云计算的未来?
- 浙江省首个分布式光伏智能并网微型断路器投运
- 分布式能源|电网仿真技术助力新型电力系统建设
- 分布式异构数据库同步更新的研究与应用
- 数据库|国产分布式数据库最新成果获国家级奖项!
- 单考虑分布偏移远不够!真实数据很复杂,「外部有效性」不可或缺
- iPad|通过KVM IP网关实现KVM系统的互联互通,实现分布式架构功能应用
