【随机模拟小试验】有偏分布下的均值、中位数、众数之间的关系

2016-02-09  本文已影响0人  郭飞

在《统计数字会撒谎》里,有这样一个案例:

  我相信你不是一个势利小人,而我也并不做房地产生意。但请让我们作这样的假定,并且假设,此刻你正在一条我所住的加利福尼亚山谷不远处寻找想买的房子。对你的情况进行了初步判断后,我巧舌如簧、费尽心思地让你相信附近居民的平均年收入大约有15000美元。也许这坚定了你要在此居住的信心,不管怎样,买卖最终成交了,那美妙的数字也被牢记在你的脑海。而且,既然你已经买下了房子--你有那么一点势利,当与朋友聊天时,你就会不经意地流露出你居住的地点:我住在一个相当棒的高收入小区。

  一年左右过后,我们又见面了。作为某纳税者委员会的成员,我正在四处奔走,为降低税率、降低财产估价,或降低公共交通费用而呼吁。我的理由很简单,我们支付不起各种上涨的费用,毕竟,附近居民的平均年收入只有3500美元。也许你会加入到我们委员会的工作中来--你不仅势利,而且还挺吝啬。但是,当听到那可怜的2000英镑时,你也禁不住大吃一惊。到底是我现在撒谎了呢?还是一年前撒了谎?

  其实这两次你都无法怪罪于我,利用统计撒谎的妙处被展现得淋漓尽致。无论是15000美元,还是3500美元,它们都是合法的平均数,计算方法也完全正确。两个数字都基于相同的数据,来自相同的居民,根据相同的收入。所有都是相同的,但显然其中有一个数据令人误解,足以与弥天大谎相媲美。

  我的花招就是两次分别使用了不同的平均数“平均数”这个词宽泛的涵义帮了大忙。当一个家伙希望用数据影响公众观点,或者向其他人推销广告版面,平均数便是一个经常被使用的伎俩。


众所周知,统计学里有这样一个简单的结论:

如果一个分布的偏度(skewness)为负(换句话说,服从右偏分布),那么大概有这么一个规律:

(均值)mean>(中位数)median>(众数)mode

相反,如果一个分布的偏度为正,那么大概有这么个规律mean<median<mode.

理解这个结论不需要任何数学基础,例如,收入的分布是一个左偏分布,穷人永远是大多数(众数是一个很低的数字),中产阶级收入高一些(中位数比众数更大),被富人平均之后,大家收入看起来很可观(均值最大)


如果只是介绍这个结论,这篇文章就太无聊了。万事万物皆是算法,下面写一段简单程序模拟上述结论:

x1=100*random('norm',1,1,8000,1);

x2=100*random('norm',5,1,4000,1);

x1=round(x1);

x2=round(x2);

上述代码生成了8000个穷人和4000个富人,并且假设穷人的收入均值为1,标准差为1;富人收入均值为5,标准差为1。为了使众数有意义,用round函数进行了离散化处理。

x=[x1;x2];

把穷人和富人放到一起

subplot(2,2,1)

ksdensity(x1)

subplot(2,2,2)

ksdensity(x2)

subplot(2,1,2)

ksdensity(x)

做概率密度估计。这里插一句,在做可视化时,很多情况下,ksdensity(概率密度估计图)比hist(分布直方图)、histfit(加入正态拟合的分布直方图)更加简洁明了,效果比较如下:

hist\histfit\ksdensity

最后是描述性统计量:

fprintf('均值是%3f\n',mean(x));

fprintf('中位数是%3f\n',median(x));

fprintf('众数是%3f\n',mode(x));

fprintf('偏度是%3f\n',skewness(x));

程序输出与结论分析:

穷人+富人

均值是232.538583

中位数是165.000000

众数是98.000000

偏度是0.505472

结论很显著。

有人调侃自己“被平均了”,还是有统计学依据的。

上一篇下一篇

猜你喜欢

热点阅读