用幂律分布研究工资收入

本文系即将出版的《机器学习数学基础》中的“第5章概率”的“5.3.3 连续型随机分布”一节中“幂律分布”节选。本书将由电子工业出版社出版。相关主题网站:https://qiwsir.gitee.io/mathmetics/

微软曾在一篇报告中称,Windows和Office中80%的错误是由检测到的20%的错误导致的(参阅:https://www.crn.com/news/security/18821726/microsofts-ceo-80-20-rule-applies-to-bugs-not-just-features.htm?itc=refresh),这与著名的质量管理专家 Juran(Joseph M. Juran)利用帕雷托分布在1940年代的研究成果完全契合。

图 5-3-8 Juran

何谓帕雷托分布?1909年,意大利经济学家帕雷托(Vilfredo Federico Damaso Pareto)发布了他对社会财富分配的研究结果,即“20%的人占据了80%的社会财富”,并被概括为“ 80 / 20 80/20 80/20 ”法则,此结论的数学依据就是帕雷托分布。

图 5-3-9 帕雷托

X X X 为服从帕雷托分布的随机变量,则:

F ‾ ( x ) = P ( X > x ) = { ( x m x ) α ( x ≥ x m ) 1 ( x < x m ) (5.3.37) \overline F(x) = P(X \gt x) = \begin{cases}\left (\frac{x_m}{x} \right )^\alpha \quad & (x \ge x_m) \\ 1 &(x \lt x_m)\end{cases} \tag{5.3.37} F(x)=P(X>x)={(xxm)α1(xxm)(x<xm)(5.3.37)

其中, x m > 0 x_m \gt 0 xm>0 为随机变量 X X X 的最小可能值; α > 0 \alpha \gt 0 α>0 是控制函数曲线“长尾”形状的参数,也称为帕雷托系数。

注意(5.3.37)中使用的 F ‾ ( x ) \overline F(x) F(x) 符号,不同于5.3.2节中的(5.3.9)式的概率分布函数 F ( x ) F(x) F(x) ,其关系为 F ( x ) = 1 − F ‾ ( x ) F(x) = 1 - \overline F(x) F(x)=1F(x) ,所以, X X X 所服从的概率分布函数为:

F ( x ) = { 1 − ( x m x ) α ( x ≥ x m ) 0 ( x < x m ) (5.3.38) F(x) = \begin{cases}1- \left (\frac{x_m}{x} \right)^\alpha \quad &(x \ge x_m) \\ 0 &(x \lt x_m)\end{cases} \tag{5.3.38} F(x)={1(xxm)α0(xxm)(x<xm)(5.3.38)

F ( x ) F(x) F(x) 求导,得到概率密度函数:

f ( x ) = { α x m α x α + 1 ( x ≥ x m ) 0 ( x < x m ) (5.3.39) f(x) = \begin{cases}\frac{\alpha x_m^\alpha}{x^{\alpha+1}} \quad & (x\ge x_m) \\ 0 & (x\lt x_m) \end{cases} \tag{5.3.39} f(x)={xα+1αxmα0(xxm)(x<xm)(5.3.39)

图5-3-10是(5.3.39)式的图线,从图中可以看出公式中的 α \alpha α 对曲线形状的控制。

图 5-3-10

下面的程序中生成了服从帕雷托分布的数据,并绘制直方图,显示数据的分布特点(注意,生成下面的数据时, x m = 0 x_m =0 xm=0 )。

%matplotlib inline
import numpy as np
import seaborn as sns
ax = sns.distplot(np.random.pareto(a=1.16,size=1000), hist=True, kde=True)
ax.set(xlabel='Pareto', ylabel='Frequency')

输出图像:

社会财富分配是帕雷托分布的典型应用,下面创建一个服从帕雷托分布的工资模型示例。

from scipy.stats import pareto
alpha = 1.16
xmin = 1000
incomes = pareto(b=alpha, scale=xmin)

这里不妨以 1000 1000 1000 元作为最低值,即(5.3.39)式中的 x m = 1000 x_m = 1000 xm=1000 ,式中的 α = 1.16 \alpha = 1.16 α=1.16 ,这是一个超参数。这样,就创建了一个符合帕雷托分布的工资模型。

incomes.median()

# 输出
1817.6431200757233

在这个模型中,工资的中位数是 1817.64 1817.64 1817.64 元。平均工资呢?

incomes.mean()

# 输出
7250.000000000004

显然,符合帕雷托分布的工资的平均值和中位数差很多。如果工资符合正态分布,两者差距应该不大,然而现实世界就是这么残酷地帕雷托分布。所以,关注平均工资,只会“几家欢乐”“多家愁”。

如果你的工资达到了上面的均值,就是“几家欢乐”里的一员了,这个“几”是多少呢?

top_ratio= 1 - incomes.cdf(incomes.mean())
print(f'{round(top_ratio*100, 2)}%')

# 输出
10.05%

在这个模型中,就是前 10 % 10\% 10% ——恭喜发财。

将计算结果和前述绘制的图像结合,不难得知,在当前所构建的工资模型中,工资额度不高者数据量巨大,图中表现为右侧向横轴趋近,这种分布也称为长尾分布——“长尾”这个术语在商业领域被经常提及。

当然,这里只是一个理想的数学模型。

服从帕雷托分布的现象还很多,包括在网站中的操作行为也不能免于此。例如微博转发次数的分布特点,如图5-3-11所显示(张宁 等,《新浪微博转发数的幂律分布现象》,计算机时代,2015年第3期)。从图中可以看出,少数几篇微博转发量很高,绝大多数的转发量很低。

图 5-3-11

甚至于在语言学领域也出现了“长尾”现象。语言学家齐普夫(George K. Zipf)在研究英文单词出现的频率时发现,如果把单词出现的频率按由大到小的顺序排列,每个单词对应一个序号,则单词出现的频率与它的序号的常数次幂存在简单的反比关系:

P ( r ) ∼ r − α (5.3.40) P(r) \sim r^{-\alpha} \tag{5.3.40} P(r)rα(5.3.40)

这种分布被称为齐普夫定律(Zipf’s law)。它表明在英语单词中,只有少数词汇被经常使用,绝大多数很少使用。事实上不止英语如此,以汉语为例,据统计, 1000 1000 1000 个常用字能覆盖约 92 % 92\% 92% 的书面资料, 2000 2000 2000 字可覆盖 98 % 98\% 98% 以上, 3000 3000 3000 字已到 99 % 99\% 99% ,而《汉语大字典》所收录的汉字为 54678 54678 54678 个。

(5.3.37)式和(5.3.40)式都是幂函数,我们将凡是符合这类形式概率分布的统称为幂律分布(power law distribution)——齐普夫和帕雷托都为幂律分布做出了重要贡献。在实践中,幂律分布除了这里介绍的帕雷托分布、齐普夫定律之外,还有其他形式。但不论具体形式如何,都可以概括为:

f ( x ) = C x − α (5.3.41) f(x) = Cx^{-\alpha}\tag{5.3.41} f(x)=Cxα(5.3.41)

这就是连续型随机变量 X X X 的概率密度函数,称之为 X X X 服从以 α > 0 、 C \alpha \gt 0、 C α>0C 为参数的幂律分布。其中, C C C 可以用 X X X 的最小可能值表示:

∵ 1 = ∫ x m i n ∞ f ( x ) d x = C ∫ x m i n ∞ x − α d x = C 1 − α [ x − α + 1 ] x m i n ∞ \because\quad1=\int_{x_{min}}^{\infty}f(x)dx=C\int_{x_{min}}^{\infty}x^{-\alpha}dx=\frac{C}{1-\alpha}\left [x^{-\alpha + 1}\right ]_{x_{min}}^\infty 1=xminf(x)dx=Cxminxαdx=1αC[xα+1]xmin
若 α > 1 , 则 : C = ( α − 1 ) x m i n α + 1 若 \quad \alpha \gt 1, \quad 则: C=(\alpha-1)x_{min}^{\alpha + 1} α>1,C=(α1)xminα+1
∴ f ( x ) = α − 1 x m i n ( x x m i n ) − α \therefore \quad f(x) = \frac{\alpha -1}{x_{min}}\left (\frac{x}{x_{min}} \right )^{-\alpha} f(x)=xminα1(xminx)α

幂律分布表现了一种很强的不均衡、不平等,在网络、大数据时代,越来越受到关注,因为不均衡就也意味着机会。对此有兴趣的读者,除了从数学理论上了解之外,还可以继续深入研究,利用它从数据中挖掘新知。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qiwsir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值