EMA - 指数移动平均
EMA 基本概念見 Wikipedia,本文不贅述。
基本公式
S[0] = Y[0]
S[i] = Y[i] * alpha + S[i-1] * (1 - alpha)
其中 alpha 為平滑因子,數(shù)值越小曲線越平滑
要點
初始值 S1 會引入誤差,為了消除誤差有幾種常見策略:
- 取前 N 個值的均值作為 S1
- 迭代的前 N 次使用動態(tài)平滑因子 alpha,從 1 逐漸變?yōu)樵O(shè)定值。
- 系統(tǒng)空轉(zhuǎn) N 次( ‘spin-up’ interval)之后再對外提供服務(wù)
如何選擇 alpha?
- 這是應(yīng)用決定的,并沒有固定的規(guī)則。
- 一種選擇alpha 的思路是使得均方差最小,數(shù)據(jù)最平滑。
- 你也可以有自己的策略(思考:你真的需要特別平滑嗎?)
一種自適應(yīng)的計算 alpha 的方法
S[i] 可以寫作:
S[n] = w[n] * Y[n] + w[n-1] * Y[n-1] + w[n-2] * Y[n-2] + … w[1] * Y[1] + w[0] * Y[0]
Y 值是隨機序列,我們無法預知。每個 Y 的權(quán)重 w 和 alpha 相關(guān),是可以預先計算出來的。什么意思呢?分述如下:
我們沒有辦法控制 Y[i] 在 S[n] 中的占比,因為 Y[i] 是一個輸入序列,我們無法預先知道它的值。舉個例子
設(shè)
Y[0] = Y[1] = … = Y[n - k - 1] = 1;
Y[n - k] = Y[n - k + 1] = … = Y [n - 1] = Y[n] = 0
有:
S[n] = w[n - k - 1] * Y[n - k - 1] + … w[1] * Y[1] + w[0] * Y[0]
可知無論 w (w > 0 )為多少,Y[0], Y[1], … , Y[n - k - 1] 在 S[n] 中占比 100%。
但是,我們可以控制 最后 k 個值的權(quán)重在總權(quán)重里的占比。>>參考文檔<<
最后k個權(quán)重之外的權(quán)重和 / 總權(quán)重
= (w[n-k] + w[n-k-1] + w[n-k-2] + …. ) / 1
= a * ( 1 - a)^k + a * (1 - a)^(k+1) + ….
= a * (1-a) ^k * [ 1 + (1-a) + (1-a)^2 + …..]
= (1-a)^k
第四步到第五步,數(shù)學不太好的同學注意:當 1 > a > 0, n->無窮時,
a * [ 1 + (1-a) + (1-a)^2 + …..] = 1
如果我們希望最近 k 步之前的權(quán)重占比為 10%,最近 k 步權(quán)重占比 90%,根據(jù)上面的公式有:
0.1 = (1 - a) ^k
則有: a = 1 - e^(ln0.1 / k)
再看一個最近 k 步之前的權(quán)重值為一個特殊值的例子: e^-1。
我們希望最近 k 步之前的權(quán)重占比為 e^-1 = 0.3678,最近 k 步權(quán)重占比 1- e ^ -1 = 0.6321,根據(jù)上面的公式有:
e ^ -1 = (1 - a) ^k
則有: a = 1 - e^(-1 / k)
k-alpha 對照表:
| 1 | 0.6321 |
| 2 | 0.3934 |
| 3 | 0.2834 |
| 4 | 0.2212 |
| 5 | 0.1813 |
| 10 | 0.095 |
| 20 | 0.049 |
| 30 | 0.033 |
| 40 | 0.025 |
| 50 | 0.020 |
| 100 | 0.010 |
| 200 | 0.005 |
設(shè)采樣周期為 interval,采樣窗口為 window,那么窗口內(nèi)共采樣 window / interval 次。
設(shè) k = window / interval。
則有 a = 1 - e ^ ( -1 / (window / interval)) = 1 - e ^ (- interval / window)
在這種情況下,最近 2k 步權(quán)重占比為多少呢?
1 - 忽略的權(quán)重 / 總權(quán)重 = 1 - (1-a)^2k = 1 - e ^ -2 = 1 - 0.1353 = 0.8647
對照表:
| k | 0.6321 |
| 2k | 0.8647 |
| 3k | 0.9502 |
| 4k | 0.9816 |
從應(yīng)用的角度看,這意味著什么呢?
假設(shè)我們的 window 是 1 天,那么最近一天的權(quán)重占比 63%,最近 2 天的權(quán)重占比 86%,三天 95%,四天 98%,等等。這意味著四天之外的權(quán)重影響力只占到 2%。還啰嗦一句,這里是“權(quán)重影響力”,并不是”數(shù)據(jù)影響力“,w 和 Y 是兩碼事。如果 四天之外的數(shù)據(jù)特別大或者特別小,對當前計算出來的值影響還是會很大的。
最后附幾個例子。
圖中,每個格子是 100 * 100, 紅色部分為 EMA曲線。
數(shù)據(jù)特征永久變化,interval = 100,window = 100,alpha = 0.2834
連續(xù)數(shù)日數(shù)據(jù)特征變化,后恢復,interval = 100,window = 100,alpha = 0.2834
某日數(shù)據(jù)突變,后恢復,interval = 100,window = 100,alpha = 0.2834
EMA 幾乎跟隨數(shù)據(jù)變化,interval = 1,window = 1,alpha = 0.033
在線感受一下EMA曲線和參數(shù)之間的關(guān)系吧:http://reactshare.cn/ema
總結(jié)
以上是生活随笔為你收集整理的EMA - 指数移动平均的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络电话显示服务器拒绝,云安全日报201
- 下一篇: ubuntu运行android stud