欢迎访问宙启技术站
智能推送

使用Python实现加权移动平均的技巧(weighted_moving_average())

发布时间:2023-12-29 20:47:32

加权移动平均是一种在时间序列数据中计算平均值的方法。与简单移动平均相比,加权移动平均不仅考虑最近的观测值,还给予更大的权重。这样,最近的观测值对平均值的贡献更大。

实现加权移动平均的技巧如下:

1. 确定权重:首先需要确定每个观测值的权重。权重可以根据特定的需求进行选择,例如,可以使用指数衰减权重,最近的观测值权重较大,越远离观测值的权重越小。

2. 计算加权和:使用权重对每个观测值进行加权,然后将它们相加,得到加权和。

3. 计算加权移动平均:将加权和除以权重的总和,得到加权移动平均。

下面是一个使用Python实现加权移动平均的例子:

def weighted_moving_average(data, weights):
    weighted_sum = 0
    weight_sum = sum(weights)
    n = len(data)
    
    for i in range(n):
        weighted_sum += data[i] * weights[i]
    
    return weighted_sum / weight_sum

# 示例数据
data = [10, 15, 12, 13, 11]
weights = [0.2, 0.3, 0.25, 0.15, 0.1]

# 计算加权移动平均
wma = weighted_moving_average(data, weights)
print("加权移动平均:", wma)

在上面的例子中,我们通过定义一个weighted_moving_average函数来计算加权移动平均。传入的data参数表示观测值的列表,weights参数表示对应观测值的权重列表。

函数首先计算观测值和权重的加权和,然后将加权和除以权重的总和,得到加权移动平均。

在示例数据中,假设每个观测值的权重按照0.2, 0.3, 0.25, 0.15, 0.1的规则分配。通过调用weighted_moving_average函数,计算得到加权移动平均为11.7。

这是一个简单的加权移动平均的实现。根据具体的需求,可以根据自己的数据和权重选择不同的加权移动平均技巧。