# 2.3 指数加权平均数（Exponentially weighted averages）

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

![](https://2314428465-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Le0cHhI0S0DK8pwlrmD%2F-Le0cKOp1vaxoORIi4ak%2F-Le0ceTd1g6p7VPs0lJg%2F11import.png?generation=1556953092913451\&alt=media)

> 温度数据有noise，抖动较大

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

设$$V_0=0$$，当成第0天的气温值

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

$$
V_1=0.9V_0+0.1\theta_1
$$

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

$$
\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}
$$

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

$$
\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}
$$

第$$t$$天与第$$t-1$$天的气温迭代关系为：

$$
\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}
$$

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

![](https://2314428465-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Le0cHhI0S0DK8pwlrmD%2F-Le0cKOp1vaxoORIi4ak%2F-Le0ceThf4uzeKGg4MFM%2F12import.png?generation=1556953091211930\&alt=media)

这种滑动平均算法称为指数加权平均（exponentially weighted average）。一般形式为：

$$
V_t=\beta V_{t-1}+(1-\beta)\theta_t
$$

$$\beta$$值决定了指数加权平均的天数，近似表示为：

$$
\frac{1}{1-\beta}
$$

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

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

![](https://2314428465-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Le0cHhI0S0DK8pwlrmD%2F-Le0cKOp1vaxoORIi4ak%2F-Le0ceTj8sgm-huvDV7o%2F13import.png?generation=1556953100323641\&alt=media)
