2-3 指數加權平均數


指數加權平均數( Exponentially weighted averages)

指數加權平均,在統計中也叫做指數加權移動平均。

下面列舉出表示倫敦一年之中的溫度:

 

如果要計算趨勢的話,也就是溫度的局部平均值,或者說移動平均值:

先使:${v_0} = 0$,然后計算:

${v_1} = 0.9{v_0} + 0.1{\theta _1}$

${v_2} = 0.9{v_1} + 0.1{\theta _2}$

依次類推:

${v_t} = 0.9{v_{t - 1}} + 0.1{\theta _t}$

將移動平均值即每日溫度的指數加權平均值畫出來的效果是:

上面的計算更一般的形式是:

${v_t} = \beta {v_{t - 1}} + (1 - \beta ){\theta _t}$

${v_t}$可以理解為大概是$\frac{1}{{(1 - \beta )}}$ 的每日溫度,例如$\beta  = 0.9$,可以理解為這是十天的平均值,也就是上圖紅線部分。

如果$\beta$接近於1,比如0.98,則$\frac{1}{{(1 - 0.98)}}$,大概計算過去 50 天的溫度,這時作圖可以得到綠線:

這種情況下曲線要平坦一些,原因在於你多平均了幾天的溫度,所以這個曲線,波動更小,更加平坦,缺點是曲線進一步右移,因為現在平均的溫度值更多,要平均更多的值,指數加權平均公式在溫度變化時,適應地更緩慢一些,所以會出現一定延遲。$\frac{1}{{(1 - 0.98)}}$,相當於給前一天的值加了太多權重,只有 0.02 的權重給了當日的值。

如果$\frac{1}{{(1 - 0.5)}}$,平均了兩天的溫度,這時作圖黃線所示:

 

由於僅平均了兩天的溫度,平均的數據太少,所以得到的曲線有更多的噪聲,有可能出現異常值,但是這個曲線能夠更快適應溫度變化。

參數$\beta$,是一個很重要的參數,可以取得稍微不同的效果,往往中間有某個值效果最好,在本例中紅線比起綠線和黃線更好地平均了溫度。

理解指數加權平均數(Understanding exponentially weighted averages

將公式${v_t} = 0.9{v_{t - 1}} + 0.1{\theta _t}$倒着寫:

${v_{100}} = 0.9{v_{99}} + 0.1{\theta _{100}}$

${v_{99}} = 0.9{v_{98}} + 0.1{\theta _{99}}$

${v_{98}} = 0.9{v_{97}} + 0.1{\theta _{98}}$

依次類推。。。

進一步展開可以表示為:

${v_{100}} = 0.1{\theta _{100}} + 0.1*0.9{\theta _{99}} + 0.1*{(0.9)^2}{\theta _{98}} + 0.1*{(0.9)^3}{\theta _{97}} + 0.1*{(0.9)^4}{\theta _{96}} + ......$

第 100 天計算的數據是一個總和,包括100號數據,99號數據,98號數據等等。

假設我們有一組數據,例如100天中每天的溫度,畫圖表示:

然后我們構建一個指數衰減函數,從 0.1 開始,到$0.1*0.9$,到$0.1*{(0.9)^2}$,以此類推,所以就有了這個指數衰減函數,畫圖表示:

此時計算${v_{100}}$,只需要將兩組數據對應相乘再求和即可。所有的系數相加起來為 1 或者逼近 1,我們稱之為偏差修正。

需要平均多少天的溫度的計算思路:

${(0.9)^{10}} \approx 0.35$,這個值大概是$\frac{1}{e}$,也就是說:

$\varepsilon {\rm{ = }}0.1$,${(1 - \varepsilon )^{\frac{1}{{(1 - \varepsilon )}}}} \approx \frac{1}{e}$大約是 0.34, 0.35,換句話說, 10 天后,曲線的高度下降到$\frac{1}{3}$相當於在峰值的$\frac{1}{e}$。

所以當$\beta  = 0.9$,也即$\varepsilon  = 1 - \beta $時只關注了過去 10天的溫度,因為 10 天后,權重下降到不到當日權重的三分之一。

所以估算大約平均多少天的溫度時,我們使用公式:$\frac{1}{{1 - \beta }}$

不過這只是思考的大致方向,並不是正式的數學證明。

在實際計算時,我們可以使用:$v: = \beta v + (1 - \beta ){\theta _t}$

指數加權平均數公式的好處之一在於,它占用極少內存,電腦內存中只占用一行數字而已,然后把最新數據代入公式,不斷覆蓋就可以了。

計算指數加權平均數也只占用單行數字的存儲和內存,當然它並不是最好的,也不是最精准的計算平均數的方法。如果你要計算移動窗,你直接算出過去 10 天的總和,過去 50 天的總和,除以 10 和 50 就好,如此往往會得到更好的估測。但缺點是,如果保存所有最近的溫度數據,和過去 10 天的總和,必須占用更多的內存,執行更加復雜,計算成本也更加高昂。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM