你居然拖人均年终奖的后腿???
- 2019-01-17 15:16:00
- admin
- 转贴:
- 锐研中国
前言
(如果你已经领悟了“集中趋势”(central tendency),那么请跳过本文)
这大概是数据分析中最常见的工作:
你有一大堆数字,你想要用更少的数字去描述它们,最好是只用一个数字。我们会把所有数据相加,然后用求得的和除以数据个数,这就是传说中大名鼎鼎的“平均值”,对吧?
“也许吧。”
与日常认知相悖,从数学意义上来说,并不存在“平均值”这样的概念。
也就是说:并不存在某种数学运算可以被称为“求平均值”。我们通常所说的“平均值”其实是指“算术平均值”,也就是我们上面所讲述的那个大名鼎鼎的计算方法。我们把这种运算称为“求平均值”是因为我们觉得它符合我们口头对于“平均值”的定义: 一种特征值、标准值或者中位值。通常我们这样理解没有问题,但是现实不仅仅是“通常”,我们只是懒得深究,自以为正确。
概括统计量
算术平均值只是许多“平均值”中的一种。这些平均值更科学的叫法应该是“概括统计量(summary statistics)”、“趋中量数(measures of central tendency)”或者“集中量数(measures of location)”。
相比之下,第二有名的概括统计量应该是中位数了,就是一组按顺序排列的数据里居中的那个数值(从定义本身可以看出来,在很多情况之下,中位数要比“平均值”显得更为平均)。在这里我们不做讨论,只不过值得注意的是,很多情况之下我们都过度使用算数平均值去代替中位数,但其实后者更为适用。
本文集中讲述两种使用不甚普遍的统计量:几何平均值和调和平均值。
第一部分将会带领各位从概念上、直觉上以及实际操作上,深入理解这两个统计量有何作用,以及应该用于何种情况之下。
第二部分将会另外发布,内容上也将更加深入并且更着重于技术层面。通过R语言代码模拟数据分析图,来展现他们各自不同的变化趋势。
毕达哥拉斯平均值(Pythagorean Means)
A geometric construction of the Quadratic and Pythagorean means (of two numbers a and b). via Wikipedia(https://en.wikipedia.org/wiki/Pythagorean_means)
用几何模型展示a、b两个数值二次均方值与毕达哥拉斯平均值。
详见维基百科(https://en.wikipedia.org/wiki/Pythagorean_means)
算数平均值只是3种毕达哥拉斯平均值的其中之一(毕达哥拉斯平均值是根据毕达哥拉斯学派而命名,该学派有很多这方面的研究)。
另外两种毕达哥拉斯平均值的分别是几何平均值和调和平均值。为了能从基础上理解这些平均值的作用,我们从熟悉的算术平均值开始。
算数平均值
算数平均值的命名非常恰如其分:将数据组中的所有数据相加,然后用求和的结果除以数据个数(这一运算是为了能让求和结果落回原始数据的取值区间),通过这种方法我们可求得算数平均值。
3 + 8 + 10 = 21
21 ÷ 3 = 7
算术平均值 = 7
请注意,我们本质上是在思考这个问题 :如果数据组中每一个都是同样的数字,那么为了得到和原数据集相同的求和结果,我们的数据元素都应该是哪一个数?
但是求和运算只是相当简单的数学运算之一,并没有什么特别之处。当数据组中的数据存在累加关系的时候,算数平均值的算法可以为数据组提供一个合适的“平均值”。
数据间的这种关系被称作“线性关系”,因为若以升序或者降序描点作图,则可以注意到这些代表数据的点会落在一条直线上或者周围。一个便于理解的、理想化的例子就是一个公差为3的等差数据集合。
1, 4, 7, 10, 13, 16, 19…
由此,算数平均值为我们提供了一个合理的居中数值:
(1 + 4 + 7 + 10 + 13 + 16 + 19) ÷ 7 = 10
但并不是所有的数据集合都可以用这种运算来描述居中数值。一些数据集表现为乘法序列或者指数序列,比如公比为3的等比数列,而不是像上面那样公差为3的等差数列:
1, 3, 9, 27, 81, 243, 729…
通过将前一值乘以3得到后一值,符合这一规律的数据集我们称为几何级数。将数据按升序用描点法作图,可以看到这些数据点的连接线更近似于一条曲线,而不是一条直线。
对于这样的数据集,如果想要得出一个“平均值”来统计描述这一组数据,那么算数平均值显然非常不适用。
(1 + 3 + 9 + 27 + 81 + 243 + 729) ÷ 7 = 156.1
可以看到,156一点都不接近数据列中大部分的数字。事实上,比起数据集的中位数27,156比它大了5倍还多。
如果将各个数字画在一条数轴上,这一偏离尤为明显。
“那该怎么办呢?”
此时,你需要使用下面的方法……
几何平均值
因为数据集中存在乘法关系。而恰好,计算几何平均值时,我们是通过数据相乘,而不是相加。之后,为了将所求的居中值恢复到数据序列的区间,我们要采用开根号的运算,而不是简单的除法。大家应该都记得平方开根:为了求得平方运算后等于某一定值的数字,我们需要采用平方开根。
根号 25 = 5,因为5 * 5 = 25
这里我们采用的是同样的思路,但是我们需要提高根号运算的次幂。因为等比序列中有7个数字,而我们将这七个数相乘得到了一个总值,现在为了得到居中数值,我们需要将根号运算提升到7次,而不是2次(平方根)。这个就是大家熟悉的n次根,在这里,n就表示了数据集的元素个数。因此,我们需要得出的就是总值的7次根。
请注意,我们本质上是在思考这个问题:如果数据集中所有元素相乘得到的积和原数据集相同,而每一个元素都是相同的数字,那么可以描述这个数据集的数字应该是多少?
所以,以上这组数据的几何平均值为:
1 * 3 * 9 * 27 * 81 * 243 * 729 = 10,460,353,203
7th root of 10,460,353,203 = 27
几何平均值 = 27
而在数轴上显示为:
这样,我们求得的几何平均值就变成了这一组数据居中的那个,事实上,这个平均值正是这一序列的中位数。
提醒:几何平均值并不总等于中位数,只有当所有数据间都存在相同的乘性关系(比如上例中公比为3的等比数列)时,才存在这种相等关系。现实中的数据列很少会完美的符合这样的关系,但是哪怕对于仅仅近似符合这类乘性关系的数据组,几何平均值相比算数平均值更能准确的描述出序列中的“中间数”。
几何平均值的实际应用
事实证明,几何平均值有许多实际用途,因为现实世界中的乘法关系比比皆是。举一个典型的例子:复利计算
假设我们有10万美元,5年内按照不同的年利率计算利息。
年利率分别为的:1%、9%、6%、2%、15%
我们想用一个快捷方法来找到平均年利率,也就是我们5年后的总金额,因此我们尝试“平均”这些利率:(0.01+0.09+0.06+0.02+0.15)÷ 5=0.066=6.6%
然后我们把这个平均利率插入这个复利公式中:
总利息收入= $100,000 * (1.066⁵ - 1) = $37,653.11
利息+本金 = $37,653.11 + 100,000 = $137,653.11
总计= $137,653.11
未避免自欺欺人,我们用传统“笨办法”来验算和比较一下结果:
第一年:100,000 + (100,000 * .01) = 100,000 * 1.01 = $101,000
第二年: 101,000 * 1.09 = $110,090
第三年: 110,090 * 1.06 = $116,695.40
第四年: 116,695.40 * 1.02 = $119,029.31
第五年: 119,029.31 * 1.15 = $136,883.70
实际总计 = $136,883.70
结果我们用快捷方法得出的利息收入比实际利息收入多了将近1000美元。这是因为我们犯了一个常见的错误:在乘法过程中应用了加法运算,从而导致运算结果不准确。
下面试试用几何平均值重新计算:
1.01 * 1.09 * 1.06 * 1.02 * 1.15 = 1.368837042
1.368837042的5次方根 = 1.064805657
几何平均值= 1.064805657
(计算说明:几何平均值的利率初始值要+1,因为这是本金和利率在产生利息每个过程中发生的实际利率,并且我们要找出这些实际利率的实际平均值。这样做还有一个好处:即便利率为负,也能避免公式中出现负数导致几何平均方程出错[它也不能处理0]。算术平均值没有这个问题。 不管我们用利率本身还是利率+1作为利率初始值[然后从结果中减去1],结果是一样的,因为它是加法而不是乘法。 但是几何平均值不一样,如果不加1,结果就是错的。)
将利率的几何平均值代入复利计算公式:
总利息收入 = $100,000 * (1.0648⁵ - 1) = $36,883.70
利息 + 本金 = $36,883.70 + 100,000 = $136,883.70
总计= $136,883.70
与上文中用传统“笨办法”得出的结果一致
这就对了。我们在恰当的工作中运用了正确的方法,并得到了准确的的结果。那么,几何平均值还有其他好的应用吗?
处理不同尺度或单位的数据
几何平均值的绝妙之处在于,你可以用它来“平均”完全不同尺度的数据。
例如,我们想比较两个不同来源的咖啡店的在线评分。那么问题来了,来源1使用的是5星级评分标准,来源2使用的是100分的评分标准:
咖啡店A
来源1 评分:4.5
来源2 评分:68
咖啡店B
来源1 评分:3
来源2 评分:75
如果我们天真地采用每个咖啡店的原始评分来求算术平均值:
咖啡店A= (4.5 + 68) ÷ 2 = 36.25
咖啡店B= (3 + 75) ÷ 2 = 39
那么得出的结果是咖啡店B的分数更高。
如果我们对数据更敏感一点,就知道在求算术平均值之前必须先把数据进行标准化处理——使它们的值落入同一数据范畴,这样再求平均值才能得到准确的结果。所以我们把来源1的评分乘以20,这样它们就从五星级评分标准转换为来源2 的100分标准。
咖啡店A
4.5 * 20 = 90
(90 + 68) ÷ 2 = 79
咖啡店B
3 * 20 = 60
(60 + 75) ÷ 2 = 67.5
因此对比上述“天真”的算术平均值的值,咖啡店A才是真正得分更高的赢家。
然而,如果采用几何平均值的算法,不必大费周章转换数据单位也能得出一样准确的结论。
咖啡店 A = (4.5 * 68) 的平方根= 17.5
咖啡店 B = (3 * 75) 的平方根= 15
就是这样!
算术平均值的大小主要取决于数值,这让我们误认为Coffeeshop B是评分较高的商店。
这是因为算术平均值是运用数值之间的加法关系,而尺度和单位不在考虑范围。 因此,在应用算术平均值之前,要将数值转换成相同单位的数据范畴。
另一方面,用几何平均值处理不同范畴的数值轻而易举,因为它具有乘法性质。这是一个非常有用的属性,但注意我们丢了什么:得出的数值不再有任何可解释的尺度或单位。在这种情况下,几何平均值可以说是无效的。
即上面的几何平均值不是“100分”中的17.5分,也不是“5星”中的15分。 它们是无单位的数字,只是相互之间成比例。 (从技术上讲,它们的尺度是原始尺度的几何平均值,5*100的平方根,即22.361)。
如果我们真的想解释一些对我们有意义的量表的结果,比如原来的5星或100分系统,这可能是个问题。 但如果我们只想知道两个咖啡店的评分之间的关系,这个方法就很好用。
几何平均值知识点总结
几何平均值对数值相乘而不是对数值求和,然后取n次根而不是除以n。
它实际上表示:如果我们数据集中的每个数值都相同,并且这些数值的乘积与实际数据集的乘积相同,那么这个数值是多少呢?
这使得它很适合用于描述乘数关系,例如比率和比例,即便这些比率是在不同的尺度(即没有相同的分母)中计算得出。 (出于这个原因,它经常被用来计算财务和其他指数。)
它的缺点在于:在应用几何平均值时,有意义的尺度和单位可能会丢失,并且对异常值的不敏感可能导致忽视数值较大的数据而得出异常的结果。
正如生活中的大多数事情一样,几何平均值(除了复合利率和此类事物之外)几乎没有铁定的规则。虽然有一些启发性和经验性的法则,但作为合理的经验主义者,最终的人为决断和科学怀疑无疑是不可或缺的。
关于这点会在下文结论中介绍,现在我们先介绍毕达哥拉斯平均值的最后一个平均值。
调和平均值
第三种也是最后一种毕达哥拉斯平均值
虽然本文关于调和平均值的内容比几何平均值少些,实际上调和平均值更加深奥,但是它仍然值得你去了解。
算术平均值需要加法法则,几何平均值使用乘法法则,而调和平均值利用倒数法则。
你应当记得一个数字n的倒数是1/n(例如5的倒数是1/5)。对于分数,你只需要把分子和分母调一下就得到它的倒数:4/5的倒数是5/4。因为1除以一个分数就得到它的倒数,例如:1÷ (4/5) = 5/4.
从另一个角度看:乘积为1的两数互为倒数。所以只要问一个简单的问题:n乘以什么之后可以得到1?就能够找到倒数了。
所以调和平均值的定义为:数据集的倒数的算术平均值的倒数。
不要被这么多的倒数吓到,其实就3步:
1.计算数据集每个元素的倒数
2.计算这些倒数的算术平均值
3.计算这个算术平均值的倒数
用数学公式表示就是:
wikipedia上的一个示例如下:1、4、4的调和平均值是2:(https://en.wikipedia.org/wiki/Harmonic_mean)
备注:“n-¹"表示"n的倒数”
注意,这里的问题是:如果数据集中每个数的倒数都相等,并且这些倒数之和与实际数据集的倒数之和相同,那么这个倒数是多少呢?
(注意:0没有倒数(没有一个数乘以0后等于1),所以调和平均值同几何平均值一样,不能处理包含0的数据集。)
这就是调和平均值的原理,那么它有什么优点呢?
调和平均值的应用
回答这个问题,我们必须要问:倒数有什么优点?
实际上倒数和所有的除法一样,仅仅是乘法的伪装(乘法也只不过是加法的伪装),我们发现:倒数使分数的除法更简便。
例如:5 ÷ 3/7=?如果对小学数学还有印象的话,那你可能会按5乘以7/3(3/7的倒数)的方式计算。
5 ÷ 3/7 = 5/1 * 7/3 = 35/3 = 11 2/3 = 11.66667
此外还有一个等效的方法是将5和3/7转成同分母,然后再按照标准的除法运算:
5/1 ÷ 3/7 = 35/7 ÷ 3/7 = 35 ÷ 3 = 11 2/3 = 11.66667
使用几何平均值不需要标准化数据, 我们就能找到不同尺度数据的算术平均值之间的关系,简化计算过程(如上所示)。同理,调和平均值帮助我们找到分数中乘法和除法的关系而不必担心他们有没有共同的分母。
因此调和平均值比几何平均值更适用于乘法/除法关系。 在处理不同长度或周期的速率或比率(即分数)的数据集时使用。
小提示:(你可能会想:“等等,我认为几何平均值是用来计算不同标准的平均利率和比率!”正常,你也不是第一个被这个混淆的。 我写这篇文章就是来阐明我自己的想法和理解,所以,请耐心阅读下面的例子,并在后面的结论中区分所有这些差异。)
旅程平均耗时?
调和平均值的最大用处就是计算物体以不同速度在物理空间来回运动的平均速度:
例如去杂货店再回来:
去杂货店的平均时速是30公里每小时(mph)
回来的时候堵车了,你只开到10mph
你开的是同一条线路,都是5公里。
我们可能天真地按算术平均值计算30mph和10mph,然后自豪地说平均速度是“20mph"!
但是仔细思考一下:去的时候你的速度更快,这5公里你花的时间更少。所以整个旅程的平均速度不是30mph和10mph的中间点,它应该更接近10mph一点,因为你在这个旅程中花费了更多的时间。
如果要正确地使用算术平均值,我们需要计算每段旅程花费的时间,然后再正确地算出加权算术平均值:
过去(30mph):
30 公里每分钟 = 1公里每 2分钟 = 1/2 公里每分钟
以1/2 公里每分钟的速度开5公里用时 = 5 ÷ 1/2 = 10分钟
回来(10mph):
10 公里每分钟 = 1公里每 6分钟 = 1/6 公里每分钟
以1/6 公里每分钟的速度开5公里用时 = 5 ÷ 1/6 = 30分钟
回来用时30分钟
总计用时40分钟
过去用时占比 = 10 / 40 分钟 = .25 = 25%
回来用时占比 = 30 / 40 分钟 = .75 = 75%
加权算术平均值 = (30 mph * .25) + (10 mph * .75) = 7.5 + 7.5 = 15
我们看到整个旅程的真实平均速度是15mph,比我们天真地用无加权算术平均值计算出来的20mph要慢了5mph(或者25%)。
下一步你可能已经猜到了。。。
让我们用调和平均值试一下:
30和10的调和平均值=。。。
倒数的算术平均值 = 1/30 + 1/10 = 4/30 ÷ 2 = 4/60 = 1/15
算术平均值的倒数 = 1 ÷ 1/15 = 15 / 1 = 15
就是这样!
我们旅程真实的平均速度,自动地调整了每个方向所花费的时间 = 15mph!
有几个需要注意的地方:
当且仅当旅程的距离相同时才可以这样计算。 如果不同,我们将不得不使用加权调和平均值或其他加权算术平均值。
对于算术平均值,我们会再次按照每个旅程花费的时间对速度加权,而对于调和平均值,我们将按行进的距离进行加权(因为取它们的倒数,就已经考虑了隐含在速度中的时间比例)。
毕达哥拉斯平均值的技巧和诡异很大程度上归结于比率的本质和哪个比率更值得我们关注。
例如算术平均值需要相同的分母。
在旅行的例子中,比率的单位是公里每小时,所以算术平均值按各自的分母(在公式中看不出来)计算结果:(30公里/1小时)+(10公里/1小时)÷ 2 = 20公里/1小时=20公里每小时如果我们在每个旅程花费的时间是一样的,那么结果就是正确的,然而实际并非如此。
调和平均值不同的是把这些比率倒过来,把我们实际的数值放在分母中,然后计算算术平均值,再把它倒过来,给出我们平均速度的正确答案,与花在这个速度上的时间占比。 (有关使用财务市盈率的更深入讨论,请参阅本文。)
在复利的例子中,几何平均值生效的原因是我们使用了相同的时间周期:每一年。如果周期在变,例如每个利率持续的时间不同,那么我们也不得不使用一些加权的方法。
几何平均值适用于乘数关系,如主要投资率和不同范围的比率,但调和平均值更进一步,通过魔法般的倒数运算,非常容易地应用到乘法/除法关系上(如变化的周期或不同的长度)
如同复利和几何平均值,旅程的平均时间是调和平均值的一个应用,客观正确的一个应用。但是再强调一下,事情并不总是那么清晰。
此外还有其他一些情况,你需要在物理学、金融学、水文学甚至(习惯性地加一下)棒球统计中合理运用数学计算平均值。
平均值与数据科学更密切:它常常被用于机器学习模型评估中的精确度和召回率。
但是更多的情况,取决于你对数据的理解和你手头的任务,自已判断使用哪种平均值
我尽量把这三个平均值的区别讲清楚,总结如下:
回顾和阐明一下我们前面证明的:
三种毕达哥拉斯平均值密切相关,每种之间相互可以当成是另一种的特殊情况。
例如,我们看到:
如果得分的取值范围是一致的,那么几何平均值和算术平均值相等。
在旅程平均速度上,调和平均值同加权算术平均值相等(速度受时间占比加权)。
在第二部分(之后的一篇文章)中,我们会向已经熟悉乘法转换的人阐明 :
数据集的几何平均值等于该数据集中每个数的对数的算术平均值。 因此,就像调和平均值只是经过几次倒数运算后的算术平均值一样,几何平均值就是经过对数运算后的算术平均值。
如果每个平均值只是其他平均值转换或重运算后的值,那么这些运算是如何影响和改变你的结果的?
结论2 毕达哥拉斯平均值符合严格的序数关系。
由它们的计算方程可得:调和平均值总是小于几何平均值,几何平均值总是小于算术平均值。
受原始数据的影响这三个平均值的差可大可小。除非整个数据集都是同一个数字,此时三个平均值完全相同。因此,下面的不等式成立:调和平均值≤几何平均值≤算术平均值
你可以在本节开头的几何图中看到毕达哥拉斯平均值(及均方值)的关系。
认识到这种关系有助于理解什么时候使用哪种平均值,以及对结果的影响是什么。
为了使这个更具体,让我们重新审视原来的加法数据集和乘法数据集,每一个都描述了三种平均值:
加法数据集{1,4,7,10,13,16,19 ...}
调和平均值 = 4.3
几何平均值 = 7.3
算术平均值 = 10
显然几何平均值和调和平均值似乎大大地低估了这个线性的加法数据集的“中间值”。 这是因为比起较大的数字这些手段对较小的数字更敏感(同理它们对较大的异常值相对不敏感)。
乘法数据集 {1, 3, 9, 27, 81, 243, 729…}
调和平均值 = 4.7
几何平均值 = 27
算术平均值 = 156.1
在这里几何平均值恰好等于数据集序列的中间值,而调和平均值更小。算术平均值偏高,容易受较大的异常值干扰。
用调和平均值描述一个数据集的趋中量数需要花费大量的篇幅,所以我们继续前进吧。
结论3 限制条件、启发和使用条件
计算不同尺度上的比率的平均值:使用几何平均值(或者标准化后再计算算术平均值)
时长一致的平均复利计算:使用几何平均值(计算不同时长或长度的利率:使用调和平均值(或加权算术平均值))
清楚你更关心哪方面的比率以及哪种平均值。算术平均值受分母影响,无论它是显性的还是隐性的。调和平均值可以让你倒转比率以得到原分子的答案。(如果你的数据已经证明是加法结构:算术平均值总是没有问题的。)
如果你的数据是乘法结构或者有较大的异常值:几何平均值或者调和平均值可能会更准确(也可能是中位值)
鱼与熊掌不可兼得:
使用几何平均值会丢失有意义的单元或单位。
含0的数据集不能使用几何平均值或调和平均值,并且有负数的数据集也无法使用几何平均值。
当使用几何平均值或调和平均值时,听众可能不熟悉特定的“平均值”。
更可行且易懂的方法是:
有大量异常值时,使用中位值。
删除异常值或者设置异常值范围
使用加权算术平均值或统计学方法而不是这两种不常用的毕达哥拉斯平均值。
虽然计算机统计学语言R语言已经内置了矩阵求逆和三次样条插值,但它没有原生函数来计算简单的几何平均值或调和平均值,这可能是它们在日常使用中比较少见的部分原因。 (但是Google表格和Excel是有相关函数的)
用一句话概括本文,就是:
最好了解你所处理的数据的本质,并且仔细思考那些用于描述数据的统计摘要 - 要么就只能和大部分不明白原理的用户一样,冒着错误使用“你以为的平均值”的风险了。
详情请戳:https://mp.weixin.qq.com/s?__biz=MzA4Nzk1MjIzNw==&mid=2650662327&idx=1&sn=be46a8615b58586d2eec539725278dad&chksm=8838dbb5bf4f52a3587b9af2a03bcd8fec0bff7d72f5a146e2f04427007fb2f6eb2503fa0639&scene=0&xtrack=1#rd