解释:指数加权移动平均(EWMA)

时间:2025-04-14 08:12:03

指数加权移动平均(EWMA, Exponential Weighted Moving Average) 是一种常用于时间序列平滑、异常检测、过程控制等领域的统计方法。相比普通移动平均,它对最近的数据赋予更高权重,对旧数据逐渐“淡化”。


✅ 一、通俗理解

想象你在追踪一个传感器的温度信号:

  • 如果今天的温度变化剧烈,你可能更关注今天的数据;
  • 昨天、前天的数据也重要,但权重要低一些;
  • EWMA 就是一个“记忆逐渐衰退”的平均方法。

✅ 二、公式讲解

假设:

  • 当前时间点为 t t t
  • 当前观测值为 x t x_t xt
  • 当前 EWMA 为 s t s_t st
  • 平滑系数为 α \alpha α,范围在 ( 0 , 1 ] (0, 1] (0,1]

EWMA 计算公式:

s t = α ⋅ x t + ( 1 − α ) ⋅ s t − 1 s_t = \alpha \cdot x_t + (1 - \alpha) \cdot s_{t-1} st=αxt+(1α)st1

其中:

  • s t s_t st:当前的平滑值
  • s t − 1 s_{t-1} st1:上一个时刻的平滑值
  • x t x_t xt:当前观测值
  • α \alpha α:控制“记忆力”的程度

✅ 三、平滑系数 ( \alpha ) 的意义

α \alpha α 解释 适用场景
趋近于 1 强调最新值,反应更灵敏 快速检测突变、异常检测
趋近于 0 更平滑,强调长期趋势 长期趋势分析、去除波动噪声

✅ 四、初始值设定

  • 一般 s 0 = x 0 s_0 = x_0 s0=x0,即用第一个观测值作为初始均值;
  • 或者可以使用简单平均的结果作为初始值,增强稳定性。

✅ 五、特点总结

特点 描述
权重指数衰减 越旧的数据权重越小
实时更新 只依赖当前值和上一个 EWMA,适合在线计算
响应迅速可控 通过 α \alpha α 控制对突变的响应程度
常用于过程监控 比如在质量控制图(如 EWMA控制图)中监测变量是否偏离控制线

✅ 六、图示(如果可视化)

如果画出数据曲线和 EWMA 曲线,会看到:

  • 原始数据波动较大
  • EWMA 曲线更平滑,且在数据趋势变动时会“有延迟地”跟着变

✅ 七、简单 Python 示例

import numpy as np
import matplotlib.pyplot as plt

# 模拟数据
np.random.seed(0)
x = np.random.randn(100).cumsum()

# 计算 EWMA
alpha = 0.2
s = np.zeros_like(x)
s[0] = x[0]
for t in range(1, len(x)):
    s[t] = alpha * x[t] + (1 - alpha) * s[t - 1]

# 画图
plt.plot(x, label="原始数据")
plt.plot(s, label="EWMA (α=0.2)", linewidth=2)
plt.legend()
plt.title("指数加权移动平均(EWMA)示意图")
plt.show()