2.3 指数加权平均数(Exponentially weighted averages)

半年内伦敦市的气温变化:

温度数据有noise,抖动较大

如果希望看到半年内气温的整体变化趋势,可以通过移动平均(moving average)的方法来对每天气温进行平滑处理

V0=0V_0=0,当成第0天的气温值

第一天的气温与第0天的气温有关:

V1=0.9V0+0.1θ1V_1=0.9V_0+0.1\theta_1

第二天的气温与第一天的气温有关:

V2=0.9V1+0.1θ2=0.9(0.9V0+0.1θ1)+0.1θ2=0.92V0+0.90.1θ1+0.1θ2\begin{aligned}V_2 =&0.9V_1+0.1\theta_2\\ =&0.9(0.9V_0+0.1\theta_1)+0.1\theta_2\\ =&0.9^2V_0+0.9\cdot0.1\theta_1+0.1\theta_2 \end{aligned}

第三天的气温与第二天的气温有关:

V3=0.9V2+0.1θ3=0.9(0.92V0+0.90.1θ1+0.1θ2)+0.1θ3=0.93V0+0.920.1θ1+0.90.1θ2+0.1θ3\begin{aligned}V_3 =&0.9V_2+0.1\theta_3\\ =&0.9(0.9^2V_0+0.9\cdot0.1\theta_1+0.1\theta_2)+0.1\theta_3\\ =&0.9^3V_0+0.9^2\cdot 0.1\theta_1+0.9\cdot 0.1\theta_2+0.1\theta_3 \end{aligned}

tt天与第t1t-1天的气温迭代关系为:

Vt=0.9Vt1+0.1θt=0.9tV0+0.9t10.1θ1+0.9t20.1θ2++0.90.1θt1+0.1θt\begin{aligned}V_t =&0.9V_{t-1}+0.1\theta_t\\ =&0.9^tV_0+0.9^{t-1}\cdot0.1\theta_1+0.9^{t-2}\cdot 0.1\theta_2+\cdots+0.9\cdot0.1\theta_{t-1}+0.1\theta_t \end{aligned}

经过移动平均处理得到的气温如下图红色曲线所示:

这种滑动平均算法称为指数加权平均(exponentially weighted average)。一般形式为:

Vt=βVt1+(1β)θtV_t=\beta V_{t-1}+(1-\beta)\theta_t

β\beta值决定了指数加权平均的天数,近似表示为:

11β\frac{1}{1-\beta}

β=0.9\beta=0.9,则11β=10\frac{1}{1-\beta}=10,表示将前10天进行指数加权平均。当β=0.98\beta=0.98,则11β=50\frac{1}{1-\beta}=50,表示将前50天进行指数加权平均。β\beta值越大,则指数加权平均的天数越多,平均后的趋势线就越平缓,但是同时也会向右平移

绿色曲线和黄色曲线分别表示了β=0.98\beta=0.98β=0.5\beta=0.5时,指数加权平均的结果

Last updated