我正在尝试计算大量数字(约 115k 数字)的加权几何平均值。
每个数字都分配有 1、2 或 3 的权重值。
似乎有很多方法可以计算几何平均值(非加权),而我之前遇到的一件事是该方法:
- EXP(平均(LN(<值列表>)))
对于大型列表来说,这是一种比以下任何一种更好的方法:
PRODUCT ( nTH_ROOT ( ) ),其中 n 是列表中值的数量
nTH_ROOT ( PRODUCT ( ) ),其中 n 是列表中值的数量
我能找到的用于计算加权几何平均值的参考资料都使用了最后两种方法。以我有限的经验,这些方法在尝试运行很长的列表时几乎总是会导致错误。对于 115k 的列表,方法 2 计算出一个非常大的中间数。Excel 无法获取数字的第 115000 个根,我不确定 python 或 R 之类的东西是否可以做到。
无论如何,我的目标是根据上面的方法 1 提出一个加权几何平均公式。
我提出的解决方案如下。注意:我主要在 excel 中执行此操作,尽管我首先在 python 中计算了列表中每个值的日志。我的问题不是关于在 excel 中编程,而是关于加权几何平均值背后的数学。我提出了 excel,因为我在下面提出的解决方案是基于使用 excel 数据透视表输出来根据权重对列表值进行分组。我的最终输出需要在 excel 中,因此首选 excel 友好的解决方案。它在excel中测试得很好,但我想要求确认。
加权几何平均值 =
EXP(
AVERAGE ( LN ( <list values where weight is 1> ) ) * ( 1 / 6 )
+ AVERAGE ( LN ( <list values where weight is 2> ) ) * ( 2 / 6 )
+ AVERAGE ( LN ( <list values where weight is 3> ) ) * ( 3 / 6 )
)
非常感谢!
保罗
一些几乎有用的链接:
https://www.quora.com/How-do-I-calculate-a-weighted-geometric-mean