导读:描述“富者愈富,穷者愈穷”的马太效应,以及经济学中的帕累托法则,其背后的数学模型是什么?在统计学中,它们可以被抽象成幂律分布。
作者:帕诺斯·卢里达斯(Panos Louridas)
来源:大数据DT(ID:hzdashuju)
内容摘编自《真实世界的算法:初学者指南》
我们在城市规模中看到的模式:大多数人类居住地区的规模达不到以百万来计数,但少数地区能达到数百万人规模。在数字王国里,大多数网站的访问量很低,但少数网站的访问量非常庞大。在文学领域,大多数书籍几乎无人阅读,但少数书籍畅销异常。
所有这些都让我们回忆起“富者愈富,穷者愈穷”的现象。
在语言学中,这种现象被称为Zipf定律,以哈佛的语言学家George Kingsley Zipf的名字命名,他观察到在一种语言中第i位最常见的单词出现的频率正比于1/i。Zipf定律指出,在一个n个单词的语料库中,遇到第i位最常见单词的概率为
其中
数Hn在数学领域出现非常频繁,值得为它起一个名字——第n位调和数(harmonic number)。这个名字源自何处?它源于音乐中的泛音或称和声。一根弦以一个基波长震动,同时还以1/2,1/3,1/4,…的谐波长震动:这对应一个无穷和,当n=∞时,它被称为调和级数(harmonic series)。
由于Zipf定律给出了一个事件的概率,因此也用它命名了对应的概率分布。
在表11-1中,你可以看到一个英语语料库(布朗语料库,包含981716个单词,其中有40234个不同单词)中最常见的20个单词,其经验概率是通过统计它们在语料库中出现的次数来计算的,而它们的理论概率则是根据Zipf定律/分布计算的。简言之,我们给出了排名、单词、经验分布和理论分布。
在图11-4中,我们绘制了表11-1中的数据。注意,分布只是为整数值定义的。我们增加了一条差值线来显示总体趋势。另外注意,理论概率和经验概率并不是完全重叠。这是我们将一个数学模型应用到现实世界时必须要面对的情况。
▲图11-4 布朗语料库中最常见的20个单词的Zipf分布
当我们发现一个快速下降的趋势时,如图11-4中的趋势,就有必要检查一下,如果我们将熟悉的x和y坐标轴替换为对数坐标轴会发生什么。在对数坐标轴中,我们将所有值转换为它们的对数后绘制出来,图11-5给出了与图11-4等价的对数坐标图:对每个y我们使用log y,对每个x,我们使用log x。
▲图11-5 对数坐标轴下布朗语料库中最常见的20个单词的Zipf分布
如你所见,理论分布的趋势现在变为一条直线,经验分布看起来位于理论预测值上方一点。在大多数情况下,理论分布与我们实际观测的结果会有一些不同,而且,两个图只显示了包含前20个最常见单词的子集,因此,基于它们我们不能真正判断是否吻合。
为了观察真正发生了什么,请查看显示了布朗语料库中所有40234个不同单词的完整分布的图11-6和图11-7。有两个现象凸显出来:首先,除非我们使用对数刻度,否则图是无用的,这很好地说明了分布有多么不均匀,我们必须使用对数值,否则任何趋势都不可见;第二,一旦我们使用了对数坐标轴,理论值和经验观察结果的吻合要好得多。
▲图11-6 布朗语料库的经验分布和Zipf分布
▲图11-7 对数坐标轴下布朗语料库的经验分布和Zipf分布
在对数刻度下,我们能看清所有东西,因为Zipf定律是幂率(power law)的一个特例。幂率是指一个值出现的概率正比于此值的负指数,用数学语言描述就是:
P(X=x) ∝ cx-k,其中 c > 0,k > 0
在此公式中,符号∝表示“正比于”。现在我们可以解释为什么对数图是一条直线了。如果有y=cx-k,我们可得y=log(cx-k)=log c-klog x。最后一部分就是一条直线y,截距等于log c,斜率等于-k。因此当我们遇到在对数图里成一条直线的数据时,就是其理论分布可能是幂率的明显信号。
经济学中幂率的一个例子是帕累托法则,它指出80%的结果源自20%的起因。在管理学和流行的大众理解中,其含义通常变为20%的人做了80%的工作。在帕累托法则中可以证明P(X=x)=c/x1-θ,其中θ=log 0.80/log 0.20。
幂率是如此普遍,以至于在过去二十年间产生了一个研究相关现象的完整领域似乎任何事情都有幂率现象隐藏在背后。
除了在介绍马太效应时已经提到的例子外,我们还发现幂率出现在如科技论文的引用、地震震级和月球陨石坑的直径等如此不同的领域中,还有生物物种随时间推移而增多、分形学、食肉动物的觅食模式以及太阳耀斑的射线峰值强度,其中也都有幂率现象存在。
这个列表还能继续增加:一天中长途电话的数量、停电影响的人群数量、姓氏出现的频率等。
这种规律有时似乎是凭空冒出来的。例如,一个相关的定律是Benford定律(Benford's law),因物理学家Frank Benford的名字而命名,也被称为第一位法则(First-Digit law)。它指出了在很多种类的数据中数字频率的分布。
具体地,它指出,一个数的第一位数字是1的概率是30%,从2到9每个数字出现在第一位的频率逐渐降低。用数学语言表达,这个定律指出,一个数的首位数字是d=1,2,…,9的概率是
如果我们计算每个数字的概率,就会得到表11-2中的结果。表中的数值告诉我们,如果数据库中有一组数,其首位数字为1的概率约为30%,大约有17%的数会以2开头,大约有12%的数会以3开头,依此类推。
图11-8中给出了Benford定律的一个图示。看起来和齐普夫分布没有太大不同,因此我们可能想知道如果用对数坐标轴绘制的话图会变成什么样子。图11-9给出了结果,几乎就是一条直线,意味着Benford定律与幂率相关。
▲图11-8 Benford定律
▲图11-9 对数坐标轴下的Benford定律
Benford定律的广度令人震惊。它适用于如物理常量、世界上最高建筑物的高度、人口数、股票价格、街道地址等如此不同的数据集,还有很多。
实际上,它看起来如此普遍,以至于一种检测伪造数据的方法就是检查包含的数值是否不服从Benford定律。欺诈者会修改真实值或用随机值替代真实值,他们不会注意得到的数值是否服从Benford定律。因此如果我们遇到一个看起来可疑的数据集,最好先检查首位数字是否服从Benford概率。
如果我们的搜索模式反映了数据分布模式,即如果记录的关键字服从Benford定律,且我们正在搜索的关键字也服从Benford定律的话,Benford定律可能影响我们的搜索。如果是这种情况,会有更多的记录具有以1开头的关键字,对这些关键字的搜索也会更多,以2开头的关键字少一些,依此类推。
关于作者:帕诺斯·卢里达斯(Panos Louridas),曼彻斯特大学软件工程博士,现为雅典经济与商业大学管理科学与技术系副教授。在加入高校之前,曾在投资银行担任高级软件工程师。
本文摘编自《真实世界的算法:初学者指南》,经出版方授权发布。
数据分析咨询请扫描二维码
统计学基础 - 理解统计学的基本概念和方法是数据分析师必备的技能之一。统计学为他们提供了处理数据、进行推断和建模的基础。 数 ...
2024-11-25数据分析师在如今信息爆炸的时代扮演着至关重要的角色。他们不仅需要具备扎实的数据分析技能,还需要不断学习和适应不断发展的技 ...
2024-11-25数据分析师的工作职责涉及多个关键方面,从数据的获取到处理、分析再到可视化,旨在为企业的决策提供有力支持。让我们深入了解数 ...
2024-11-25数据分析师:洞察力量的引擎 数据分析师的兴起 数据分析师行业目前正处于快速发展阶段,市场需求持续增长,薪资水平也有所提升。 ...
2024-11-25数据收集与整理 - 从各种来源收集数据,清洗和整理以确保数据质量和可用性。 数据分析与建模 - 运用统计学方法和机器学习模型对 ...
2024-11-25数据分析是当今社会中不可或缺的一项技能,涵盖了广泛的工具和技术。其中,掌握各种数据处理函数对于数据分析师至关重要。本文将 ...
2024-11-25“大数据治理”是一个涵盖广泛的复杂概念,其核心在于确保大规模、多样化的数据资源能够被有效管理和利用。不仅涉及数据的采集、 ...
2024-11-25一、引言 背景介绍 随着信息技术的快速发展和互联网的普及,大数据已经成为现代社会的重要资产。大数据的兴起不仅推动了各行各业 ...
2024-11-25《Python数据分析极简入门》 第2节 7 Pandas分组聚合 分组聚合(group by)顾名思义就是分2步: 先分组:根据某列数据的值进行 ...
2024-11-25数据分析需要学习的内容非常广泛,涵盖了从理论知识到实际技能的多个方面。以下是数据分析所需学习的主要内容: 数学和统计学 ...
2024-11-24数据分析师需要具备一系列多方面的技能和能力,以应对复杂的数据分析任务和业务需求。以下是数据分析师所需的主要能力: 统计 ...
2024-11-24数据分析师需要学习的课程内容非常广泛,涵盖了从基础理论到实际应用的多个方面。以下是根据我搜索到的资料整理出的数据分析师需 ...
2024-11-24《Python数据分析极简入门》 第2节 6 Pandas合并连接 在pandas中,有多种方法可以合并和拼接数据。常见的方法包括append()、conc ...
2024-11-24《Python数据分析极简入门》 第2节 5 Pandas数学计算 importpandasaspdd=np.array([[81,&n ...
2024-11-23数据分析涉及多个方面的学习,包括理论知识和实践技能。以下是数据分析需要学习的主要方面: 基础知识: 数据分析的基本概念 ...
2024-11-22数据分析适合在多个单位工作,包括但不限于以下领域: 金融行业:金融行业对数据分析人才的需求非常大,数据分析师可以从事经 ...
2024-11-22数据分析是一种涉及从大量数据中提取有用信息和洞察力的过程。其工作内容主要包括以下几个方面: 数据收集与整理:数据分析师 ...
2024-11-22数据分析师需要掌握多种技能,以确保能够有效地处理和分析数据,并为业务决策提供支持。以下是数据分析师需要掌握的主要技能: ...
2024-11-22数据开发和数据分析是两个密切相关但又有所区别的领域。以下是它们的主要区别: 定义和目标: 数据开发:数据开发涉及数据的 ...
2024-11-22数据架构师是负责设计和管理企业数据架构的关键角色,其职责涵盖了多个方面,包括数据治理、数据模型设计、数据仓库构建、数据安 ...
2024-11-22