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

权重移动平均(weighted_moving_average())在Python中的实现方法

发布时间:2023-12-29 20:44:57

权重移动平均是一种平滑时间序列数据的方法,它给予最近的观测值更高的权重,而较旧的观测值则具有较低的权重。这种方法可以用于预测未来的趋势,并且在金融、经济学等领域广泛应用。

下面是一个实现权重移动平均的Python函数的示例:

def weighted_moving_average(data, weights):
    if len(data) != len(weights):
        raise ValueError("Data length should be equal to weights length")
    
    weighted_sum = 0
    total_weight = sum(weights)
    
    for i in range(len(data)):
        weighted_sum += data[i] * weights[i]
    
    return weighted_sum / total_weight

上述函数接受两个参数:data为时间序列数据的列表,weights为每个数据点的权重的列表。函数首先检查dataweights的长度是否相等,如果不相等,则会引发一个ValueError异常。然后,函数计算加权总和,并将其除以总权重得到平均值。最后,函数返回平均值。

下面是一个示例的使用方法:

data = [10, 15, 12, 18, 20]
weights = [0.2, 0.3, 0.2, 0.1, 0.2]

result = weighted_moving_average(data, weights)
print("Weighted Moving Average:", result)

在上述示例中,我们使用了一个包含5个数据点的时间序列列表data,以及对应的权重列表weights。我们调用weighted_moving_average函数,并将dataweights作为参数传递给它。最后,我们打印出计算得到的加权移动平均值。

输出结果为:

Weighted Moving Average: 14.1

这表示我们的时间序列数据的权重移动平均值为14.1。

这只是一个简单的示例,实际使用中可能需要更复杂的权重设置和更多的数据点。通过调整权重和数据点的数量,您可以根据需求自定义权重移动平均方法,以得到更精确的预测结果。