今年过年我花了120元做了一组实验(其中60元由老婆的红包赞助,特此鸣谢 ^-^ ),获取了两个样本。两个样本的大小均为60人。经过对样本的分析,我的结论是:获取的钱数有可能符合截尾正态分布;但后抽取的人未必获得更多的钱。很有可能腾讯在一个钱包上传时就已经用算法将红包分成了给定份数,接下来抽取人去抽取钱包的时候只是按照时间顺序把给定份数的钱包给抽取人罢了,以下为验证部分。
首先,我来讨论一下为什么要采用截尾正态分布。首先介绍一种更加直接的方法(我有一些朋友也这样猜测):如果我有50元,要发给25人。那么我用连续均匀分布随机产生24个位于0到50之间的数字。这24个数字将整个0-50的区间划分为25份,分别分给这25个人。但事实并不是这样的。学过序列统计的人应该知道,由于这24个点是连续均匀分布产生的,因此他们的序列统计量也是连续均匀分布产生的,因此他们之间的间隔的分布是指数分布的。具体证明从略,可参照John Rice 2007。
若是没有序列统计的背景,我们也可以跑一个模拟。我有60元钱,按照上述数据产生机理随机分成60份(因此人均1元左右),然后如是操作10000次,对数据采取聚集后的归一化处理。由于中心极限定理(Central Limit Theorem),该分布反应整体分布(Population Distribution)。画出柱形图如下:

可见是符合指数分布的。
这种产生机理不好的地方在于:大多数人得到的钱非常少,而极少数人得到的钱却非常多,因此可能有一个公平性的问题,而这可能会对抽取人的积极性产生影响。截尾正态分布能够更好地避免这样的问题,因为更多人的红包大小会聚集在平均值附近,而且由于尾部更快的衰减,因此获得特别大的红包的概率也会相应减小,有助于增加公平性与参与的积极性。这一点佐证了土豆的观点,尽管具体截尾的方位可能需要获取更多的数据才有可能有一个准确的预测。
以下是我的两个样本的柱形图:


大家可以比照我的柱形图与上面指数分布柱形图。注意到:
1.更多的人获得的红包在均值附近;
2.获取大于2.5元的红包的概率几乎为零(事实上,第一个钱包的最高值是2.06,第二个钱包的最高值是2.10。然而假设是指数分布的(或者说均匀连续分布的数据产生机理),那么在每个60元红包中都会有一定量的抽取者抽到大于3甚至大于4元的红包--这点我通过模拟也确认了。
我进一步对正态假设做了检验,如下为样本1,样本2的分位数图(Q-Q Plot)


如果完全符合正态分布,那么所有点应该都大致在对角线附近。事实并非完全如此。可见两个样本在一定程度符合正态分布假设,但在两头有一定的异常值。原因有二,一者样本偏小,大数定理不能完全进来,容易有异常值。二者样本是截尾正态分布,所以图和完全正态分布可能有出入。
接下去我讨论一下获取钱包大小和抢钱包先后的关系。我的结论是,红包大小和抢红包先后没有统计意义上的关联。
如下是我的两个样本的红包大小数量,我把他们按照时间顺序进行了排序,因此越靠右的人代表越后抢红包的人。


如图可见,其实先抢钱包还是后抢钱包对钱包大小的影响未必有很大的影响。事实上,我的两个样本中,抢到的钱数甚至是随着时间推移逐渐减少的,尽管减少的量非常非常小。因此楼上土豆举的例子中向上走的趋势可能是样本特性,不具有普适性。当然了,我也只有两个样本,更进一步的结论或许有待于更多人搜集并贡献钱包的数据。
事实上,如果我们整合第一个结论,腾讯这样的设计是逻辑自洽的。在第一个结论中,我们谈到了截尾分布相比指数分布的优越性在于其公平性。因此,腾讯选择用截尾分布表明了其对公平性的重视。那么,试想这样一个特意选取产生方式更加复杂的截尾分布增加公平性的企业,为什么要让后抢红包的人获得更大的红包呢?这似乎看起来有些自相矛盾。
综上所述,两个主要结论如下:
1)红包大小服从截尾正态分布,其好处是减少抽取红包大小分布的方差,让更多的人抽取的红包在均值附近,同时仍给一小部分人抽取大红包的机会,总体来说增加了红包抽取人的积极性和游戏的公平性;
2)抽取红包大小与抽取红包先后无相关性。一种可能的红包产生机制是:当发红包者<准备红包>的时候,程序自动依照截尾分布产生了相应大小,相应个数的红包,然后随机发给抽取红包的人。同样,这样的一个随机过程有助于增加游戏的公平性,也减少了红包抽取人投机操作(亦即譬如故意等钱包半空的时候再抽取)的动机。我在知乎上看到一位朋友谈到她的腾讯工作的朋友确认了红包产生是在<准备红包>时就完成了的,因此也在一定程度上增强了我的这种推测的可信度。