不管是做数据分析、算投资收益率还是在写代码时随手调一个np.mean()你可能都遇到过这样的场景明明样本没几个算出来的平均值却怎么看怎么别扭和直觉对不上。问题往往不在数据本身而在于你选错了平均的尺子。几何平均、算术平均、调和平均、均方根这四个概念几乎每个学过初中数学的人都背过公式但真正能在工作里用对、分清场合的人并不多。这篇文章就把这四个平均数掰开揉碎讲清楚重点放在几何平均身上再顺着幂平均这条线索把它们统一起来让它们收敛到同一个核心里去。看完之后你不仅能记住公式更能判断出面对一组数据时到底该用哪一个、为什么、以及用错的代价有多大。内容偏实操适合数据分析、金融、工程、算法方向和任何需要跟数字打交道的人哪怕你数学底子一般跟着走也能看懂。1. 四种平均数其实各自在回答不同的问题1.1 为什么平均这个词本身就不严谨我们平时挂在嘴边的平均其实是个被过度简化了的词。你说我们团队平均每人写了3篇文档这里默认的是把总量除以人数用的是算术平均。但如果你说这辆车平均时速60公里那背后藏着的是距离除以时间很可能根本不是把途中各个瞬时速度加起来除以个数。同样一个平均算法可以完全不一样。这个模糊性带来的麻烦是实打实的。举个最常见的坑一只基金第一年涨了100%第二年跌了50%很多人第一反应是平均年收益 (100% - 50%) / 2 25%感觉还不错。可实际上投入100块第一年末变成200第二年末回到100两年下来一分没赚。真正的年化收益率是0%。这里的差距不是计算误差而是方法选错了——涨跌这种复利型数据天生就该用几何平均你却拿算术平均去套结果自然南辕北辙。所以第一个要建立的认知是平均数不是一个公式而是一族工具。每种工具适合处理一类特定的数据结构和业务问题。选对了它给你真相选错了它给你幻觉而且这种幻觉往往还披着精确计算的外衣特别有迷惑性。1.2 四种平均数的公式速查与直观含义先把四个公式摆出来方便后面反复对照。设有一组正数 x₁, x₂, ..., xₙ算术平均AMAM (x₁ x₂ ... xₙ) / n就是把所有数加起来除以个数。它回答的是总和平均分配到每一份是多少。几何平均GMGM (x₁ × x₂ × ... × xₙ)^(1/n)所有数连乘之后开 n 次方。它回答的是如果每份都增长同样的比例那个统一的比例是多少。调和平均HMHM n / (1/x₁ 1/x₂ ... 1/xₙ)先取每个数的倒数、求和、再取倒数、最后乘 n。它回答的是在每单位投入产出不同时平均每单位需要多少成本。均方根QM 或 RMSQM √((x₁² x₂² ... xₙ²) / n)先平方、求算术平均、再开方。它回答的是这组数的能量或波动幅度平均有多大。这四个公式看着像四家人其实有共同的血缘。关键线索是算术平均在加法世界里工作几何平均在乘法世界里工作调和平均在倒数世界里工作均方根在平方世界里工作。它们都是先把数据做个变换在变换后的空间里求算术平均再变换回来。这个视角一旦建立后面讲幂平均时你会豁然开朗。1.3 用一句话给每个平均数贴个性格标签为了让你在实战里能瞬间反应过来该用哪个我给它们各贴一个性格标签算术平均是个和事佬谁大谁小它都平等对待适合那种彼此独立、可以直接相加的量比如身高、体重、成绩、月销量。它的软肋是容易被极端值带跑偏一个人月薪百万能把整个团队平均工资拉高一截。几何平均是个复利脑子眼睛里只有乘了多少倍。凡是涉及连续增长、比率叠乘、指数变化的场景比如年化收益率、人口增长率、通胀累积、信号衰减都得请它出场。它的软肋是遇到0或者负数会直接失效因为乘积里一旦有0整个结果就是0。调和平均是个效率裁判专门处理分子固定、分母变动这类结构比如平均速度路程固定、时间变动、平均市盈率、并联电阻、F1分数。它的软肋是怕出现特别小的数因为取倒数之后那个小数的倒数会变得很大把结果往下拽得厉害。均方根是个能量计量员衡量的是数值的大小幅度而不关心正负比如交流电压、信号功率、误差的离散程度。它的软肋是同样会被大数放大因为平方会放大差距。记住这四个标签比背公式有用得多。实际工作中先判断数据是什么结构再对号入座基本不会出错。2. 几何平均专门对付增长率和比率的那一个2.1 从复利案例讲清几何平均的本质几何平均最经典、最有说服力的应用场景就是复利和增长率。我们再回到开头那只有点坑人的基金把它讲透。假设某资产三年里的年度增长率分别是 50%、-50%、20%。怎么算它的平均年增长率先看算术平均的做法(50% - 50% 20%) / 3 6.67%。这个数看起来像那么回事但它是错的原因在于增长率之间不是加法关系而是乘法关系。第一年结束后的资金是初始资金的1.5倍第二年结束后变成1.5 × 0.5 0.75倍第三年结束后变成0.75 × 1.2 0.9倍。也就是说三年下来资金变成了原来的0.9倍是亏的。既然三年的总倍数因子是0.9那平均每年乘多少倍就应该满足三个相同的因子相乘等于0.9即r³ 0.9解得r 0.9^(1/3) ≈ 0.9655。也就是说真实的平均年增长率是约 -3.45%也就是每年平均缩水3.45%。看清楚这个对比了吗算术平均给出的 6.67% 告诉你在赚钱而真实的几何平均给出的 -3.45% 告诉你在亏钱方向都反了。这就是为什么在金融、投资、人口、经济这些增长率场景里算术平均几乎是禁忌几何平均才是铁律。几何平均在这里的本质是它是一个等效的恒定增长率。现实中每一年涨跌幅度都不一样几何平均告诉你的是如果换成每年都按同一个比例变化这个比例应该是多少才能产生和现实完全相同的最终结果。它是一种把波动抹平、只保留终值的平均这正是复利世界最需要的度量。2.2 对数视角几何平均就是换把尺子量很多人觉得几何平均别扭不像算术平均那样直观根本原因是它工作在乘法空间而人的直觉停在加法空间。要破除这层隔阂最好的办法是把几何平均取对数。对GM (∏xᵢ)^(1/n)两边取自然对数根据对数的性质乘积的对数等于对数的和得到ln(GM) (1/n) × (ln x₁ ln x₂ ... ln xₙ)这个式子信息量很大。它说的是一组数的几何平均取对数之后正好等于这组数各自取对数后的算术平均。换句话说几何平均就是把每个数先变成它的对数做普通的算术平均再变回来。这就能解释为什么几何平均天然适合处理增长率。因为复利增长本身就带有指数性质月薪从1万涨到2万、从2万涨到4万虽然绝对增量差了一倍但在对数尺度上都只是加了ln2是完全等价的翻倍。几何平均在原始尺度上看着别扭但在对数尺度上它就是最自然的算术平均。还有一个实用的推论对数尺度的标准差也就是ln xᵢ的标准差通常被称作对数波动率。它和算术平均、几何平均之间的差距有直接关系。这个关系后面讲波动率拖累时会用到。提示判断该用算术平均还是几何平均有个快速心法——看这组数的变化是加法性的还是乘法性的。加薪2000、2000、2000用算术平均涨薪20%、涨20%、涨20%用几何平均。但凡涉及百分比、倍数、比率的连续叠加一律优先考虑几何平均。2.3 用算术平均算收益率到底会错多少有人可能想几何平均和算术平均的差距到底有多大有没有一个大概的数量级可以估有而且这个估算公式非常有用。在金融和数据科学里有个广为人知的近似关系ln(AM) - ln(GM) ≈ σ² / 2其中 σ 是数据取对数后的标准差也就是对数波动率。这条公式来自对数正态分布的近似推导被称为波动率拖累volatility drag。它告诉我们一个重要事实算术平均总是大于等于几何平均而且数据波动越大两者的差距越大。当波动率是0所有数都一样时两者完全相等一旦有波动算术平均就悄悄高估了结果。举个具体数字感受一下。假设某资产的对数收益标准差 σ 30%这在股票里算常见那么σ² / 2 0.3² / 2 0.045也就是说几何平均大约比算术平均低约 4.5 个百分点。如果算术平均收益率是10%几何平均的真实年化只有大约5.5%左右——差了近乎一半。这个拖累是真实存在的不是计算误差而是复利 波动的数学必然。这就解释了为什么很多基金宣传的平均年化收益看起来很漂亮但真持有下来却没赚到那么多。很可能他们用的是算术平均而你的钱经历的是几何平均。作为从业者看到一个收益率数字第一反应应该问一句这是算术还是几何对于任何跨越多个时间段的收益数据如果对方没说清基本可以先打个问号。3. 调和平均和均方根被低估的两个专业选手3.1 调和平均只要涉及每单位就该想起它调和平均出场率比几何平均还低但它的应用面一点都不窄。它的核心触发信号是分子固定分母变动你需要求每个单位平均消耗多少。最经典的例子是平均速度。假设你开车去一个地方去程速度60公里/小时回程因为堵车只有30公里/小时来回走的是同一段路距离相等。请问整个来回的平均速度是多少凭直觉很多人会算(60 30) / 2 45。这又是算术平均的陷阱。我们真正算一下假设单程120公里去程花2小时回程花4小时总路程240公里总时间6小时平均速度240 / 6 40公里/小时。这个40是怎么来的正是调和平均2 / (1/60 1/30) 2 / (0.0167 0.0333) 2 / 0.05 40。你看实际平均速度40比算术平均的45低了5公里差得不算小。为什么速度要用调和平均因为速度 距离 / 时间。当你等距离行驶时距离作为分子是固定的时间作为分母是变动的。总平均速度 总距离 / 总时间而总时间是各段距离除以各自速度再求和公式一整理出来的就是调和平均。同样的逻辑出现在很多地方。平均市盈率P/E就是一个典型市盈率 价格 / 盈利如果你用等权重定投一篮子股票价格或市值固定、盈利变动聚合整体市盈率时应该用调和平均而不是算术平均否则会高估整个组合的估值水平。并联电阻也是两个电阻R₁、R₂并联总电阻的倒数等于各自倒数之和等效电阻就是2R₁R₂/(R₁R₂)正是调和平均形式。机器学习的F1分数同样是precision和recall的调和平均F1 2PR / (P R)因为这两者只要有一个很低你就不想要一个平均看来还行的分数调和平均会把低的那个拉出来惩罚。一句话总结调和平均的性格它对小数值特别敏感。因为它先取倒数小数的倒数会很大一进求和式就把平均值整体往下拽从而如实反映出拖后腿的那部分。3.2 均方根电力、误差和能量的默认选择均方根Root Mean SquareRMS这个名字里其实已经把算法说清楚了先平方Square再求平均Mean再开方Root。它衡量的是数据的幅度因为平方把所有数都变成非负避免了正负抵消。最出名的应用是交流电。市电标称的220V指的是220V的均方根电压不是峰值电压。正弦交流电的电压瞬时值在正负之间来回摆动一个周期内的平均值其实是0正负抵消了但这显然不代表没有电。真正决定做功和发热能力的是电压的平方而功率正比于电压的平方P U²/R。所以用均方根来衡量有效电压才是最合理的。正弦波的RMS是峰值除以√2峰值311V的正弦波RMS正好是约220V。在误差统计里均方根同样是核心。我们常说的RMSE均方根误差就是把每个预测误差平方、求算术平均、再开方。为什么用平方而不是绝对值因为平方对大误差惩罚更重符合大多数工程场景大错比小错更不可接受的需求而且平方后可以求导便于优化。标准差其实也是同一家族它是离均差平方的算术平均的平方根如果一组数据的均值恰好是0那标准差就等于均方根。可以说均方根是理解标准差和方差的第一步。RMS的性格是放大差距。数据里有一个特别大的数平方之后它会更突出把整体结果往上拉。所以它适合强调最大幅度、总能量、整体波动这类需要敏感捕捉极值贡献的指标。3.3 四者数值关系总览表讲了这么多给个总览表方便对照。下面这张表针对同一组正数列出四种平均的公式、适用信号和典型应用。平均类型公式触发信号典型应用算术平均 AM(Σxᵢ)/n可以直接相加的量身高、成绩、月销量、平均工资几何平均 GM(∏xᵢ)^(1/n)连续增长、比率叠乘年化收益率、增长率、指数、衰减调和平均 HMn/Σ(1/xᵢ)分子固定、分母变动平均速度、平均市盈率、并联电阻、F1均方根 QM√(Σxᵢ²/n)关心幅度或能量交流电压、RMSE、标准差、信号功率还有一个非常重要的定量关系就是这四者的大小顺序。对于任意一组不全相等的正数永远有HM ≤ GM ≤ AM ≤ QM也就是调和平均最小均方根最大几何和算术夹在中间。等号只有在所有数完全相等时才成立。这个不等式链是数学里的经典结论它告诉你一个直觉越惩罚小数的平均HM结果越小越奖励大数的平均QM结果越大。下次有人给你汇报某个指标的平均值时你可以顺势反推他用的哪种平均结果偏高还是偏低4. 幂平均一个公式收编四种平均4.1 幂平均的统一定义与参数含义前面四种平均看着各行其是但它们其实都是同一个大家族里的成员这个家族叫幂平均Power Mean也叫广义平均。它的定义是M_p ( (x₁^p x₂^p ... xₙ^p) / n )^(1/p)只看这个公式你会发现它和一个东西很像把每个数都取 p 次方、求算术平均、再开 1/p 次方。当 p 取不同的值时它就会变身成我们熟悉的各种平均当p 1M_1 (Σxᵢ)/n就是算术平均。当p 2M_2 √(Σxᵢ²/n)就是均方根。当p -1M_{-1} ((Σxᵢ⁻¹)/n)⁻¹ n/Σ(1/xᵢ)就是调和平均。当p → 0M_0的极限恰好是几何平均下一节推导。当p → ∞M_p趋近于这组数里的最大值。当p → -∞M_p趋近于这组数里的最小值。看明白了吗你从小背的四个独立公式本质上只是同一个公式在不同 p 值下的特例。这个统一视角一旦建立你就再也不用死记硬背了——只要记住幂平均的定义四种平均随手就能推出来。而且M_p关于 p 是单调递增的。这就是为什么 HM ≤ GM ≤ AM ≤ QM 一定成立对应的 p 分别是 -1、0、1、2p 越大M_p 越大。不等式链瞬间变成了一个显而易见的事实。4.2 p 取极限时如何变出几何平均幂平均里最需要单独讲清楚的是p → 0这一步因为它是直接代入算不出来的——会遇到0/0或1^∞这种不定式。很多人看到几何平均是幂平均在 p0 时的极限会觉得玄乎我们把它推一遍你就能踏实了。对M_p取对数ln M_p (1/p) × ln( (Σxᵢ^p) / n )令f(p) ln( (Σxᵢ^p) / n )。当 p 0 时每个 xᵢ^0 1所以括号里是 n/n 1f(0) ln 1 0。于是ln M_p在 p 0 附近是f(p)/p的形式分子分母都趋于0属于典型的 0/0 型可以用导数求极限。对 f(p) 求导。注意xᵢ^p对 p 的导数是xᵢ^p × ln xᵢ所以f(p) [ (Σ xᵢ^p ln xᵢ) / n ] / [ (Σ xᵢ^p) / n ]当 p 0 时xᵢ^0 1代入得f(0) ( (Σ ln xᵢ) / n ) / (n / n) (1/n) Σ ln xᵢ而这正好就是ln(GM)。所以lim_{p→0} ln M_p ln(GM)即lim_{p→0} M_p GM。推完了。这个推导的价值不只是数学上的完成度它更是前面那个结论的严格证明几何平均就是对数尺度上的算术平均。你现在应该能理解为什么2.2节要专门讲对数视角了——那里是直觉这里是证明两者说的是一件事。注意幂平均的定义要求所有 xᵢ 是正数。当 p 取非整数时负数的 p 次方在实数范围内可能没有定义几何平均p0更直接要求所有数为正因为一旦有0乘积就归零一旦有负数偶数个负数还能开方、奇数个则无实数解。所以在工程和金融里实现几何平均时第一步通常都是检查数据是否全为正。4.3 HM-GM-AM-QM 不等式链的应用价值这条不等式链不只是数学结论它在实际工作里的用途非常直接。第一它是个快速的合理性校验器。你算出一组数的四种平均后如果发现 GM 大于 AM那就一定哪里错了——要么公式写错要么数据里有负数导致几何平均异常。用这条链做 sanity check 成本极低效率极高。第二它是估算波动代价的工具。前面说过的ln(AM) - ln(GM) ≈ σ²/2本质是 AM 和 GM 差距在数值上的精确刻画。当你想知道数据波动到底吃掉了多少收益其实就是在算 AM 和 GM 的差。做投资组合分析时这个差值直接对应着波动率拖累是我的核心指标之一。第三它是识别工程师是否踩坑的提示器。当你看到一个平均速度比算术平均还小、一个组合市盈率比成分市盈率算术平均还低时大概率对方其实已经用了调和平均——反过来如果对方声称用的是算术平均但结果却低于几何平均那他的计算一定有问题。第四它能帮你理解不同指标的内在联系。比如方差、标准差、RMSE、RMS电压这几个量看起来用途不同其实都建立在平方平均p2的基础上而增长率、复利、指数平滑则建立在几何平均p0的基础上。理解了这层你就能把看似分散的知识点串成一张网。5. 落地实操用 Python 把四种平均算准5.1 手写实现与库函数对照理论讲完了来看怎么在代码里正确实现。这一节所有代码都能直接跑用 numpy 做基础scipy 做对照。先手写四个平均一方面理解算法另一方面方便你后续按需改造比如加权版本import numpy as np def am(x): x np.asarray(x, dtypefloat) return x.mean() def gm(x): x np.asarray(x, dtypefloat) if np.any(x 0): raise ValueError(几何平均要求所有数据大于0) # 用对数法避免连乘溢出 return np.exp(np.log(x).mean()) def hm(x): x np.asarray(x, dtypefloat) if np.any(x 0): raise ValueError(调和平均不允许出现0) return 1.0 / (1.0 / x).mean() def qm(x): x np.asarray(x, dtypefloat) return np.sqrt((x ** 2).mean())这里有两个关键细节必须点出来是很多人手写时会踩的坑。第一几何平均一定要用对数法实现不能直接连乘。如果你写成np.prod(x) ** (1/n)当数据个数多或者数值大时连乘的结果会迅速增长到超出浮点数表示范围上溢变成 inf或者反过来逼近0后下溢。对数法把连乘变成连加ln的和数值上安全得多。对于几百上千个数据点这个差别可能是算得出来和算不出来的区别。第二调和平均和几何平均都要做数据检查。几何平均遇到0或负数会直接失败或者给出无意义的结果调和平均遇到0会除零。与其让程序静默出错不如在函数入口就抛明确异常。这个习惯在实际工程里能帮你省下大量 debug 时间。再给一个用 scipy 的对照写法scipy.stats 里已经把几种平均都封装好了生产环境可以优先用它经过充分测试from scipy.stats import gmean, hmean, pmean import numpy as np x np.array([1.5, 0.5, 1.2]) # 三年增长倍数 print(几何平均:, gmean(x)) # 0.9655 print(调和平均:, hmean(x)) # 0.9474 print(算术平均:, np.mean(x)) # 1.0667 print(幂平均 p2:, pmean(x, 2)) # 1.0933注意这里的 1.5、0.5、1.2 就是前面那只基金的三年增长倍数gmean(x) ≈ 0.9655对应年化 -3.45%和手算完全一致。而算术平均 1.0667 对应 6.67%这就是那个会误导人的数字。加权版本也很常用尤其在算配比不同的投资组合、指数收益率时。加权几何平均的公式是∏ xᵢ^(wᵢ)其中权重 wᵢ 之和为1def weighted_gm(x, w): x np.asarray(x, dtypefloat) w np.asarray(w, dtypefloat) assert np.isclose(w.sum(), 1.0), 权重之和必须为1 return np.exp((w * np.log(x)).sum())加权几何平均在统计学里编制物价指数时非常常见比如几何拉斯拜尔指数用固定权重对各类商品的价格比率做加权几何平均。它的意义是把各个分项的价格倍数按重要程度加权后求出一个统一的价格变动倍数。5.2 案例十年基金年化收益到底怎么算光看公式不够我们用一个完整的案例把几何平均用起来。假设有一只基金过去十年的年度收益率%分别如下returns np.array([15, -8, 22, -3, 10, 30, -18, 5, 12, -6]) # 单位百分比很多平台会直接给你这么一句话过去十年平均年化收益率 5.9%。这个5.9是怎么来的就是简单地(15-822-31030-18512-6)/10 5.9这是算术平均。但如果你真的在十年前投入1万块历经这十年实际结果是多少我们来算。先把百分比转成增长倍数涨15%就是1.15倍factors 1 returns / 100.0 total_growth np.prod(factors) # 十年累计增长倍数 gm_rate gmean(factors) # 几何平均增长倍数 am_rate factors.mean() # 算术平均增长倍数 print(十年累计倍数:, total_growth) print(几何平均年化倍数:, gm_rate, → 年化收益率:, (gm_rate - 1) * 100, %) print(算术平均年化倍数:, am_rate, → 年化收益率:, (am_rate - 1) * 100, %)跑出来的结果你可以自己验证大致是十年累计倍数约 1.0826 左右几何平均年化倍数约 1.0080也就是实际年化收益率只有约 0.8%。而算术平均给你的年化是 5.9%。差距高达5个百分点十年下来宣传的复利和真实的复利差了将近5倍。这个案例不是编的现实中很多基金的宣传和实际体验差异一部分根源就在这里。关键操作结论算任何跨越多个时间段的收益率必须先还原成增长倍数再取几何平均最后再换算回百分比。绝不能直接对百分比取算术平均。这个动作在投资分析里是基本礼仪违反它得出的所有结论都不可信。顺便说一句如果是分析我每年追加投资、定投这种情况几何平均也适用但需要按每笔资金的实际持有时间段做加权这时候要用内部收益率IRR或时间加权收益率TWR这些更贴合现金流结构的指标。几何平均是基础现金流复杂时还要往上叠工具。5.3 常见坑与排查表实操中遇到的大部分问题都能归到下面这张表里。建议收藏报错的时候对照着看。现象可能原因排查与解决几何平均结果是0数据里混进了0检查原始数据确认0是真实值还是缺失值被填成了0几何平均报错或返回nan数据里有负数几何平均只对正数定义考虑是否应该改用带符号的变体或分段处理调和平均被极端值拽得很低存在接近0的极小值检查这些极小值是否为异常值必要时先清洗算术平均和几何平均差距巨大数据波动极大正常现象波动越大差距越大用 σ²/2 估算差距连乘结果变成 inf用乘积法算几何平均上溢改用对数法exp(mean(log(x)))权重的几何平均算不对权重没归一化确保权重之和为1或用归一化后的权重算出的平均速度偏大误用了算术平均等距离场景下必须用调和平均再说两个容易被忽略的坑。坑一单位变换后几何平均不保持。几何平均有个很漂亮的尺度不变性——如果你把所有数据都乘以一个常数c几何平均也会乘以c。但如果你做的不是乘法变换比如加减一个常数几何平均的结果就不再有这种简单关系。所以在处理不同单位的数据比如不同币种、不同量纲时先统一单位再算几何平均不要指望先算完再换算。坑二几何平均不能像算术平均那样简单拆分。算术平均有个很好用的性质整体平均等于各部分加权平均。几何平均没有这么直观的分解方式加权几何平均必须严格按∏xᵢ^(wᵢ)来算。所以当你看到有人把两组数据的几何平均再取平均当作总体几何平均时基本可以判断这个做法是有问题的除非两组的权重和规模正好匹配。实操心得我习惯在任何涉及平均的计算函数里都加一个mean_type参数默认值是arithmetic并且要求调用方显式声明。这样代码审查时只要看到mean_typearithmetic出现在收益率相关的上下文里就能立刻标红。这个小小的工程约束帮我抓出过好几次潜在的逻辑错误。6. 选型决策什么数据该配什么平均6.1 一套能直接套用的决策流程讲了这么多最后给你一套实操决策流程遇到一组数据要算平均时按顺序问自己三个问题基本就能确定该用哪个。第一个问题数据是相加的结构还是相乘的结构如果数据是彼此独立可以相加的量身高、销量、收入、温度走算术平均。如果数据是连续叠乘的比率、倍数、增长率收益率、增长率、衰减系数、价格指数走几何平均。这一条能解决80%的场景。第二个问题是不是分子固定、分母变动如果是速度距离固定、时间变、密度质量固定、体积变、市盈率价格固定、盈利变、效率产出固定、投入变走调和平均。判断句式的关键词是每单位多少。第三个问题是不是更关心幅度、能量、误差而不是中心趋势如果是交流电、信号功率、RMSE、波动幅度走均方根。判断的关键词是有效值能量误差幅度。如果三个问题都不太确定还有一个保险做法把四种都算一遍看哪个符合业务直觉同时用 HM ≤ GM ≤ AM ≤ QM 这条链校验你的计算结果。很多时候业务方说不清想要哪种平均但只要算出来给他看他马上就能分辨出哪个是对的——尤其对比算术和几何时几何平均往往更接近用手持账户算出来的真实结果。6.2 我在实际工作中攒下的选型经验最后分享几条踩过坑才明白的经验。关于收益率的经验任何收益率指标只要夸了时间年化、复合、累计背后必然涉及几何平均看到一个平均年化收益率就要问清是不是几何。有一次我们内部对比几个策略同事用算术平均给出的年化比另一组高团队差点采纳后来一还原成几何平均结论直接反过来。那次之后我们统一规定对外汇报的收益率一律标注算法。关于速度类指标的经验平均速度、平均耗时、单位效率这类指标一旦涉及等量完成不同难度的工作或者同一段路来回走就要高度警惕是不是该用调和平均。新手最常犯的错就是拿 (v1v2)/2当平均速度这在物理上根本站不住。关于数据清洗的经验算几何平均之前一定要先确认数据里有没有0和负数这几乎是几何平均唯一但致命的禁忌。我遇到过数据表里用 -1 表示缺失的情况直接扔进几何平均函数结果整个结果错乱排查了半天才发现是编码约定问题。关于指标解释的经验均方根作为误差指标RMSE时它对大误差非常敏感这是优点也是缺点。当你的场景里大误差和小误差同等重要时RMSE 可能会被少数几个大误差主导。这时候可以对比一下 MAE平均绝对误差本质是一阶矩两者差距越大说明误差分布越不均匀存在明显的离群点。关于沟通的经验跟不懂统计的人汇报时尽量别只甩一个平均值而是把算术和几何如果涉及增长都给出并配上实际持有下来的直观解释。数据本身不会骗人但选错平均方法会让数据变得非常具有欺骗性而我们有责任让看数据的人不被误导。这个主题往深了走还能延伸到加权平均、对数平均、概率分布下的期望、以及幂平均在信息论和统计学里的更多形态。但万变不离其宗先看清数据的结构再挑尺子。几何平均管乘法世界算术平均管加法世界调和平均管每单位均方根管幅度能量四条铁律记住了往后遇到任何平均数问题你都能第一时间判断出该往哪个方向走而不是凭手感随手取个平均交差。
