指數加權移動平均(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?α)?st?1?
其中:
- s t s_t st?:當前的平滑值
- s t ? 1 s_{t-1} st?1?:上一個時刻的平滑值
- 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()