嗯,不管是官方统计局还是民间组织,每次有数据机构发布“平均工资”这种信息的时候,大家都是无比感兴趣的。不过,除了少数土豪之外,想必不少人在看过数据之后,都会感慨自己又拖后腿啦!等等,如果所有人都在拖后腿,这样的评估方法是不是有什么不对?今天我们就来介绍一种条件众数估计法,比平均值更好帮你定位自己~
一、引言
想必不少读者和我一样,每当统计局公布全市平均工资的时候,都会感叹自己再次……再!一!次!拖后腿了。
内心除了涌上一股小悲伤外,可能还会外加一些小质疑——肯定是因为少数工资超高的大神的存在,所以才把平均工资拉高了吧!大多数人的工资,应该和我差不多吧?至少在同年龄段里面应该是这样吧!我才没有拖后腿……吧?……本人一直都是这么安慰自己的,机智如我!
然而,笔者通过蜜汁自信安慰自己,让自己冷静下来后,还是得运用自己的专业知识来验证自己的猜想。所谓平均工资从字面含义来理解,就是调查样本的工资的平均值;当工资分布不对称,或者工资中存在离群点时,用平均值描述全市居民工资收入的平均水平,准确度就会受到影响。这个时候,中位数和众数看起来是更为合理的指标。
中位数是指位于一组数据中间位置的数据点的取值,因为是相对位置,所以不受离群点的影响,如果给出全市工资的中位数,大家就可以掂量掂量自己是排在前50%还是后50%啦!听起来好像很有参考意义。
另外一个指标——众数,是一组数据中出现次数最多、换言之最有可能出现的数据点的取值,如果已知全市工资的众数,你就知道大多数人的工资是什么水平啦,如果你的工资和这个众数相差不大,至少说明,你不仅不是一个人,而且还有老多人陪伴。
中位数和众数要怎么估计?预测中位数主要用到分位回归,分位回归虽然没有均值回归(最经典的就是多元线性回归啦)使用频率那么高,但方法已经很成熟了,使用的人也不在少数;考虑到篇(一)幅(言)有(不)限(合),就不在本文中做具体介绍,感兴趣的朋友可以留言,我们可以找机会再写一期。说到众数,你以为我要开始介绍众数估计方法了吗?并不。直接估计工资收入的众数总觉得少了点什么,毕竟不同条件的人的工资收入可能存在明显差异,工作经验、职业类型、从业行业等都有可能影响工资水平。在给定条件下再谈工资收入水平,对于大家来说,可能更具参考价值。因此,我们的目标就是估计条件众数。
二、条件众数估计方法
条件众数又怎么预测?从众数的定义出发,找出最有可能出现的数据点,就找到了众数;所谓“最有可能”转换成统计语言,就是条件概率密度函数取最大值,而条件概率密度函数是在概率密度函数上做的简单变换。因此,要想估计众数,只要我们知道怎么估计概率密度函数,再找到使条件概率密度函数达到最大值的数据点,它的取值就是我们关心的总体的众数。
估计密度函数的直接方法是核密度估计,它是一种非参数估计方法,不假定数据的分布形式,只根据样本数据表现出的特性来估计密度函数。数据自身的特性又指什么呢?对于从未知总体抽取的少量样本,如果某一个数在样本中出现了,我们可以认为这个数的概率密度比较大,和这个数距离较近的数据点的概率密度也会比较大,而离这个数远的数据点的概率密度会比较小。核密度估计中的“核”(Kernel),就是代表核函数,核函数的函数形式会保证离观察点越近,核函数的取值会越大,反之越小,这样遍历所有的观察点后,可以累积得到一个概率密度的估计值。常用的核函数的名称和表达式如下图所示:
考虑到众数、均值、中位数都是测度分布中心位置的指标,在Gannoun, A.、Saracco, J. 和Yu, K. M.三人合写的某篇文章中,提出了众数、均值、中位数之间具有线性关系的假设。于是在具体估计时,我们将核密度估计结果作为初始值,并用均值和中位数再次线性拟合众数。
此时读者容易产生的一个疑问是,既然已经通过核密度估计方法得到众数初始估计值了,为什么还要在估计值的基础上,拟合回归模型,进而再次得到众数的估计值,这样做是否会产生更大的偏差?别担心,笔者自带“小天才学习机”,对于多种样本量,不同分布的数据进行模拟研究,模拟结果表明通过二次拟合得到的众数估计量的估计效果都好于核密度估计方法,衡量估计效果的标准是积分均方误差(MISE)。
最后需要补充的是,在估计均值和中位数时,我们使用了基于Backfitting算法的局部线性可加模型,Backfitting算法是一种迭代算法,而局部线性可加模型是一种非参数估计方法,目的是为了提高预测的准确性,并在解释变量个数较多时保证非参数估计的收敛速度和稳定性。
三、实际应用——分年龄段工资收入众数估计
也许大家已经被上面的各种估计方法搞晕了,实际使用时还是交给软件吧,R语言里有核密度估计、可加模型、分位回归的程序包,可以直接调用。至于其他未涵盖在里面的方法的实现,没有什么是一次编程解决不了的,如果有,就是继续找现有程序包,因为很有可能是你没找到(我是不会说用两次编程解决的)。但我确实是用编程解决的,用了一周的时间,当然这不代表用了24 x 7小时的时间,毕竟我还要上班。
我们模拟了一家公司全体员工的工资收入情况,以及员工的年龄:该公司员工总数为3000人,主要职能部门有5个;员工结构呈金字塔形,即员工级别越高,员工数量越少;较高级别与较低级别的员工的工资收入差异很大;部门间的员工结构与收入结构相似。年龄和收入的数据分布情况如下表所示,由表可以看出,年龄和工资收入相关性明显,且超过一半的员工的收入集中在5000到15000元的区间段。
我们选取其中一个部门作为样本(共189个样本),首先估计全公司员工工资收入的均值和众数,以了解整个公司的员工的收入水平。通过区间估计和核密度估计的方法,分别得到收入均值为22477元,95%置信区间为[19361,25592],收入众数为8521元。如果我们以收入均值来衡量公司员工的平均收入水平,那60%以上的员工都要哭了;不过如果能憋住等会儿再哭,看到众数估计结果,相信绝大多数人的心情能好转些。虽然全体员工工资收入的众数可以提供大多数人收入状况的信息,但是它对某些年龄段的员工参考性就不大了,比如年龄在35岁以上的员工。
因此我们又尝试做已知年龄条件下的众数回归,以估计整个公司不同年龄段的员工最有可能的工资收入。估计结果如下表所示,我们之前说的总体众数与30岁以下员工的实际情况比较接近,这也表明大多数员工都落在这个年龄段;之前看到总体众数就产生巨大优越感的35岁以上员工群体,看到分年龄段的工资收入水平表后,可能其中的一部分人会不太开心了,毕竟在您这个年龄段里,大多数人的收入可是远高于8521元呀。
是不是感觉这样的对照方法合理多了呢?
看了我们的研究成果,你还觉得你在拖全市工资的后腿吗?心情是不是也好了很多呢?数据挖掘是不是很能保护你的心理健康呢?有没有感觉到自己其实很土豪呢?
参考文献:Nonparametric prediction by conditional median and quantiles, 作者Gannoun, A.、Saracco, J. & Yu, K. M.
本文为专栏文章,来自:KPMG大数据挖掘,内容观点不代表本站立场,如若转载请联系专栏作者,本文链接:https://www.afenxi.com/21998.html 。