如何在不查看图表的情况下验证数据是否遵循 Zipf 定律

机器算法验证 分布 邮编
2022-03-17 18:05:02

我想检查给定的文本样本是否是由真人编写的,所以我认为 Zipf 定律会有所帮助。

如果数据遵循 Zipfian 分布,则最频繁出现的单词大约是第二频繁出现的单词的两倍,第三最频繁出现的单词的三倍,等等。

这就是预期的单词分布。单词使用频率图应如下所示:

在此处输入图像描述

例如,查看http://www.gutenberg.org/files/50392/50392-0.txt,140291 个词,10546 个唯一词,最高频率是:

11538 7020 4765 3879 3375 2274 1522 1473 1240 1216 1005 1002 974 949 946 925 893 840 789 781

与 Zipf 定律预测的频率不匹配。但是我们可以看一下情节并知道它有一条正确的曲线,那么我们如何教机器知道这一点呢?也许当数据不再遵循 Zipf 定律,比如前 3 个频率都出现超过 10000 次时,机器会让我们知道吗?

2个回答

您实际上无法验证您的数据是否确实来自 Zipf 定律,但您可以判断它不是。您可以对它是否符合Zipf 定律进行一些评估(至少在您可以用您拥有的数据判断的程度上)。

Clauset、Shalizi 和 Newman[1] 的论文在他们的论文中的方框 1 中给出了一个明确的方法。

这位于他们论文的 arXiv 版本第三页的顶部(链接在下面的完整论文参考下)

我相信它足够简短,可以简单地引用:

...然而,概括地说,我们提出的分析幂律数据的方法很简单,如下所示。

  1. 使用第 3 节中描述的方法估计幂律模型的参数xminα

  2. 使用第 4 节中描述的方法计算数据和幂律之间的拟合优度。如果得到的 p 值大于 0.1,则幂律是数据的合理假设,否则将被拒绝。

  3. 通过似然比检验将幂律与备选假设进行比较,如第 5 节所述。对于每个备选方案,如果计算出的似然比与零显着不同,则其符号表明备选方案是否优于幂律模型或不是。

第 3 步,替代假设的似然比检验,原则上可以用其他几种已建立且具有统计学原则的模型比较方法中的任何一种代替,例如完全贝叶斯方法 [32]、交叉验证方法 [59],或最小描述长度方法[20],尽管这里没有描述这些方法。

看:

[1]:条款 A.、CR Shalizi 和 MEJ Newman (2009),
“经验数据中的幂律分布”,
SIAM Rev. , 51 (4), 661–703。(43 页)
http://epubs.siam.org/doi/abs/10.1137/070710111
arXiv 版

(另见沙里子的So you think you have a power law

咳咳你发现错误了吗?请注意,当他们说“如果计算出的似然比与零显着不同”时,他们实际上指的是然比的对数。

[免责声明:我通常认为拟合优度的显式假设检验回答了错误的问题,这种情况并非真正的例外,但上述论文有几个方面可以在一定程度上减少我通常的担忧。无论如何,它非常值得一读,并且包含许多非常明智的建议。]

部分答案可能存在于参数测试中。以下内容可能令人感兴趣: