如何计算运行几何平均值?

问题描述 投票:0回答:1

我正在计算运行几何平均值,其中输入是未知数字流。 Batch = 1。我有这个例子,它与我试图解决的问题足够接近:

count = 1
geo_avg = 0
while True:
  number = input("Enter number: ")

  geo_avg = ((1 + float(number)) * (1 + geo_avg)) ** (1 / count) - 1

  print("current geometric average", geo_avg, "\n")

  count += 1

我知道这是错误的。我想我可能必须删除以前的几何平均值,然后计算当前的几何平均值,但这听起来也不对。关于什么是正确使用的方程式的任何评论/提示都会非常有用。

python-3.x math real-time finance
1个回答
0
投票

扩展评论中的想法:

import math


def running_geo_mean(x):
    sum_log = 0
    count = 0
    mean = []
    for elem in x:
        sum_log += math.log(elem)
        count += 1
        mean.append(math.exp(sum_log / count))
    return mean

使用示例:

x = [i + 1 for i in range(10)]
print(running_geo_mean(x))
[1.0, 1.414213562373095, 1.8171205928321397, 2.213363839400643, 2.6051710846973517, 2.993795165523909, 3.3800151591412964, 3.764350599503129, 4.1471662743969135, 4.528728688116766]
© www.soinside.com 2019 - 2024. All rights reserved.