Üstel Ağırlıklı Ortalamanın Standart Sapması


10

Ben üstel ağırlıklı ortalama hesaplamak için Python basit bir işlev yazdı:

def test():
  x = [1,2,3,4,5]
  alpha = 0.98
  s_old = x[0]

  for i in range(1, len(x)):
    s = alpha * x[i] + (1- alpha) * s_old
    s_old = s

  return s

Ancak, karşılık gelen SD'yi nasıl hesaplayabilirim?


Ortalamanın standart hatasından veya sürecin standart sapmasının bir tahmininden sonra mısınız?
Glen_b-Monica

@Glen_b Bunu bir hisse senedi fiyatının "standart sapma" nın katları tarafından katlanarak ağırlıklı ortalamadan ne kadar saptığını görmek için kullanmaya çalışıyorum. Hangisini önerirsiniz?
Mariska

1
Görebildiğim kadarıyla, bu sorunun altında yatan temel bir çatışma (veya tutarsızlık) var. İnsanlar seri korelasyonu karakterize etmek ve ölçmek için verileri analiz etmeyi umursamadıklarında EWM'yi kullanırlar, ancak bu soruyu cevaplamak için seri korelasyon tahmin edilmelidir ; ama neden EWM'yi ilk etapta kullanasınız ki?
whuber

Yanıtlar:


12

Aşağıdaki tekrarlayan formülü kullanabilirsiniz:

σben2=Sben=(1-α)(Sben-1+α(xben-μben-1)2)

İşte da gözlem -inci adımda, tahmini EWM ve varyans önceki tahmindir. Bölüm 9 bakın burada ispat ve sözde kodu.xbenbenμben-1Sben-1


yukarıdaki formülü ve [1,2,3,4,5] listesini kullanarak SD = 0.144, normal Sample SD 1.58'dir. İki farklı SD arasında 10 kat faktörü vardır. Bu normal mi?
Mariska

3
kullanarak ortalama = 4.98 elde edersiniz, ki bu da eşit derecede yararsızdır. :) Bu katsayıyı kullanarak, neredeyse tüm ağırlığı son ölçüme koyuyorsunuz. daha gerçekçi değerleri sıfıra yakındır, bu durumda uzun menzilli ortalamaları oluştururlar. Örneğiniz için, deneyin , ancak pratikte muhtemelen daha fazla ölçüm yapmanız gerekir, bu nedenle çevresindeki değerler daha gerçekçi olur. α=0.98αα=0.2α=0.01
Roman Shapovalov
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.