2-3 指数加权平均数
指數(shù)加權(quán)平均數(shù)( Exponentially weighted averages)
指數(shù)加權(quán)平均,在統(tǒng)計中也叫做指數(shù)加權(quán)移動平均。
下面列舉出表示倫敦一年之中的溫度:
?
如果要計算趨勢的話,也就是溫度的局部平均值,或者說移動平均值:
先使:${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}$
將移動平均值即每日溫度的指數(shù)加權(quán)平均值畫出來的效果是:
上面的計算更一般的形式是:
${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 天的溫度,這時作圖可以得到綠線:
這種情況下曲線要平坦一些,原因在于你多平均了幾天的溫度,所以這個曲線,波動更小,更加平坦,缺點(diǎn)是曲線進(jìn)一步右移,因?yàn)楝F(xiàn)在平均的溫度值更多,要平均更多的值,指數(shù)加權(quán)平均公式在溫度變化時,適應(yīng)地更緩慢一些,所以會出現(xiàn)一定延遲。$\frac{1}{{(1 - 0.98)}}$,相當(dāng)于給前一天的值加了太多權(quán)重,只有 0.02 的權(quán)重給了當(dāng)日的值。
如果$\frac{1}{{(1 - 0.5)}}$,平均了兩天的溫度,這時作圖黃線所示:
?
由于僅平均了兩天的溫度,平均的數(shù)據(jù)太少,所以得到的曲線有更多的噪聲,有可能出現(xiàn)異常值,但是這個曲線能夠更快適應(yīng)溫度變化。
參數(shù)$\beta$,是一個很重要的參數(shù),可以取得稍微不同的效果,往往中間有某個值效果最好,在本例中紅線比起綠線和黃線更好地平均了溫度。
理解指數(shù)加權(quán)平均數(shù)(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}}$
依次類推。。。
進(jìn)一步展開可以表示為:
${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 天計算的數(shù)據(jù)是一個總和,包括100號數(shù)據(jù),99號數(shù)據(jù),98號數(shù)據(jù)等等。
假設(shè)我們有一組數(shù)據(jù),例如100天中每天的溫度,畫圖表示:
然后我們構(gòu)建一個指數(shù)衰減函數(shù),從 0.1 開始,到$0.1*0.9$,到$0.1*{(0.9)^2}$,以此類推,所以就有了這個指數(shù)衰減函數(shù),畫圖表示:
此時計算${v_{100}}$,只需要將兩組數(shù)據(jù)對應(yīng)相乘再求和即可。所有的系數(shù)相加起來為 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}$相當(dāng)于在峰值的$\frac{1}{e}$。
所以當(dāng)$\beta? = 0.9$,也即$\varepsilon? = 1 - \beta $時只關(guān)注了過去 10天的溫度,因?yàn)?10 天后,權(quán)重下降到不到當(dāng)日權(quán)重的三分之一。
所以估算大約平均多少天的溫度時,我們使用公式:$\frac{1}{{1 - \beta }}$
不過這只是思考的大致方向,并不是正式的數(shù)學(xué)證明。
在實(shí)際計算時,我們可以使用:$v: = \beta v + (1 - \beta ){\theta _t}$
指數(shù)加權(quán)平均數(shù)公式的好處之一在于,它占用極少內(nèi)存,電腦內(nèi)存中只占用一行數(shù)字而已,然后把最新數(shù)據(jù)代入公式,不斷覆蓋就可以了。
計算指數(shù)加權(quán)平均數(shù)也只占用單行數(shù)字的存儲和內(nèi)存,當(dāng)然它并不是最好的,也不是最精準(zhǔn)的計算平均數(shù)的方法。如果你要計算移動窗,你直接算出過去 10 天的總和,過去 50 天的總和,除以 10 和 50 就好,如此往往會得到更好的估測。但缺點(diǎn)是,如果保存所有最近的溫度數(shù)據(jù),和過去 10 天的總和,必須占用更多的內(nèi)存,執(zhí)行更加復(fù)雜,計算成本也更加高昂。?
轉(zhuǎn)載于:https://www.cnblogs.com/xiaojianliu/articles/9652131.html
總結(jié)
以上是生活随笔為你收集整理的2-3 指数加权平均数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDEA创建maven项目报错Error
- 下一篇: Visual Studio 2017C#