Desviación estándar de una media ponderada exponencialmente

10

Escribí una función simple en Python para calcular la media ponderada exponencialmente:

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

Sin embargo, ¿cómo puedo calcular la SD correspondiente?

Mariska
fuente
¿Busca el error estándar de la media o alguna estimación de la desviación estándar del proceso?
Glen_b -Reinstale a Monica el
@Glen_b Estoy tratando de usar esto para ver cuánto se desvía el precio de una acción de la media ponderada exponencialmente por algún múltiplo de la "desviación estándar". ¿Cuál recomendarías?
Mariska
1
Por lo que puedo ver, hay un conflicto fundamental (o inconsistencia) subyacente a esta pregunta. Las personas usan el EWM cuando no les importa analizar los datos para caracterizar y cuantificar la correlación serial, pero para responder a esta pregunta se debe estimar la correlación serial ; pero entonces, ¿por qué usarías el EWM en primer lugar?
whuber

Respuestas:

12

Puede usar la siguiente fórmula recurrente:

σi2=Si=(1α)(Si1+α(xiμi1)2)

Aquí es su observación en el -ésimo paso, es el EWM estimado, y es la estimación previa de la varianza. Vea la Sección 9 aquí para la prueba y el pseudocódigo.xiiμi1Si1

Roman Shapovalov
fuente
usando la fórmula anterior y la lista [1,2,3,4,5], obtuve SD = 0.144, mientras que la SD de muestra normal es 1.58. Hay un factor de 10x entre las dos SD diferentes. ¿Esto es normal?
Mariska
3
Usando también obtienes la media = 4.98, que es igualmente inútil. :) Usando dicho coeficiente, pones casi todo el peso en la última medición. Los valores más realistas de son cercanos a cero, en ese caso representan el promedio de largo alcance. Para su ejemplo, intente , pero en la práctica probablemente necesite promediar más mediciones, por lo que los valores alrededor de son más realistas. α=0.98αα=0.2α=0.01
Roman Shapovalov