Mythsman


乐极生悲,苦尽甘来。


幂定律和齐夫定律

幂定律

幂定律又叫幂律,大量的事实表明,很多现象都服从类似于幂函数$y=cx^a$的形式,其中$a$是幂,而且通常是负数。

幂定律可以非常直观的用马太效应(Matthew effect)解释,说白了其实就是所谓的“富者越富,穷者越穷”。例如图书的销售,本来销售好的图书可能会发布更多的广告,做更多的营销从而导致销量更多。这样如果将图书销售量按照名次排列下来就会发现图书销量会随着名次的提高而指数性的提高。

齐夫定律

齐夫定律(Zipf's Law)其实可以说是幂定律的一种形式,只是由于在曾经一次语料库的统计分析中由于拟合效果很好而广为人知。简而言之,他的内容就是对于一个语料库而言,我们统计他当中每一个词$i$出现的频率$f_i$与该频率在所有的词语中间的排名$r_i$,发现$f_i\times r_i$竟然近似等于一个常数$C$。当然,这只是一个经验定律,并不是定理、更不是理论。不过在自然界中有很多现象都满足这样一条规律而已。

不过这个定律的具体形式也不仅仅局限于上面的那个等式,而是有可能会变成$f_i\times r_i^\alpha =C$等等一系列形式。毕竟只是一个经验公式,拟合的时候相应的调节下参数也不是不可。

齐夫定律的简单应用

除了拟合预测,齐夫定律还有一个很有用的应用,就是在之前的一个实验中,我需要在某个城市的地图上上随机生成一些点来模拟人的位置,那么我该如何模拟更加真实呢?现实生活中人肯定不会是标准均匀分布的,如果使用正态分布的话,所有人都是以一个点为中心分布似乎也不太合理。这是就可以用到这个齐夫定律了。我们可以先假定总共有$N$个人,我们可以把人这些人分为$m$个人群,每个人群都是以二维正态分布的方式(选择好方差)聚集在中心点周围,而中心点可以以随机分布的方式从图中直接获取。至于每个人群的人数,我们可以按照齐夫定律,选择每个人群的个数。选择的方法也很简单,假设第$i$个人群的人数是$a_i$,解下面的方程组即可:
$$\left\{\begin{aligned}&\sum a_i=N\\&i*a_i=j*a_j\end{aligned}\right.$$

这样最后生成的随机分布就非常具有说服力了。