6

【小实验】有偏分布下的均值、中位数、众数之间的关系.

 2 years ago
source link: https://www.guofei.site/2016/02/09/simulations.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【小实验】有偏分布下的均值、中位数、众数之间的关系.

2016年02月09日

Author: Guofei

文章归类: 趣文,文章编号:


版权声明:本文作者是郭飞。转载随意,但需要标明原文链接,并通知本人
原文链接:https://www.guofei.site/2016/02/09/simulations.html

Edit

问题引入

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

我相信你不是一个势利小人,而我也并不做房地产生意。但请让我们作这样的假定,并且假设,此刻你正在一条我所住的加利福尼亚山谷不远处寻找想买的房子。对你的情况进行了初步判断后,我巧舌如簧、费尽心思地让你相信附近居民的平均年收入大约有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(加入正态拟合的分布直方图)更加简洁明了,效果比较如下:

1343162-77c25ad180f2ac87

*(hist\histfit\ksdensity)*

最后是描述性统计量:

fprintf('均值是%3f\n',mean(x));
fprintf('中位数是%3f\n',median(x));
fprintf('众数是%3f\n',mode(x));
fprintf('偏度是%3f\n',skewness(x));

程序输出与结论分析:

1343162-a1c7915733d0246f

*穷人+富人*

均值是232.538583
中位数是165.000000
众数是98.000000
偏度是0.505472

结论很显著。

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


您的支持将鼓励我继续创作!

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK