Seguir lo que no se ve
Un modelo de espacio de estados separa lo real de lo medido. Un estado oculto μt, como el verdadero nivel de volatilidad, se mueve por sí solo, y lo que se observa es ese estado más ruido. En el modelo de nivel local yt=μt+εt con εt∼N(0,r) y μt=μt−1+ηt con ηt∼N(0,q). La varianza de medida r dice cuán ruidosa es una lectura y la varianza de nivel q dice cuán rápido deriva la verdad. En statsmodels la clase UnobservedComponents(y, 'llevel') ajusta este modelo y estima q y r por máxima verosimilitud, así que no hay que adivinarlas.
El filtro de Kalman convierte cada lectura nueva en una creencia actualizada, en dos pasos. Predecir: la media se queda y la incertidumbre crece, P−=P+q. Actualizar: la ganancia K=P−/(P−+r) dice cuánto de la sorpresa y−a creer, la nueva media es a+K(y−a) y la nueva incertidumbre (1−K)P−. Cuando falta una lectura solo se hace el paso de predicción. El filtro usa los datos hasta hoy, mientras que el suavizador mira hacia atrás desde toda la muestra para dar la mejor estimación de cada estado pasado.
P−=P+q,K=P−+rP−,a′=a+K(y−a),P′=(1−K)P−(1) Tres meses a manoPartamos de una creencia
a=10,
P=4 con
q=1,
r=5. Mes uno:
P−=5,
K=5/10=0,5, y una lectura
12 da
a=10+0,5⋅2=11 y
P=0,5⋅5=2,5. Mes dos:
P−=3,5,
K=3,5/8,5=0,4118, una lectura
9 da sorpresa
−2, así que
a=11−0,4118⋅2=10,18 y
P=0,5882⋅3,5=2,06. El mes tres no tiene lectura: solo corre el paso de predicción, así que
a sigue en
10,18 y
P crece a
2,06+1=3,06. Con datos reales, tome el log de la volatilidad realizada anualizada de SPY de cada uno de los
259 meses desde febrero de 2005. La máxima verosimilitud da
r^=0,0889 y
q^=0,0449, así que
q/r=0,50, y la ganancia estacionaria es
K=0,50: cada mes nuevo mueve la estimación de volatilidad a medio camino de la última lectura. Es exactamente un ARIMA(0,1,1) con coeficiente de media móvil
−0,498=−(1−K) y la misma log-verosimilitud
−151,09. Al final de la muestra el nivel filtrado es
12,4% anualizado frente a una última lectura de
11,7%, con error estándar de
0,21 en logs, o sea una banda del 95 % de unos
8% a
19%.
Filtrado o suavizadoUse la estimación filtrada para todo lo que habría podido saber en ese momento, como una regla de trading o un backtest. La estimación suavizada usa datos futuros y solo sirve para describir el pasado.
Lab: qué se califica
- La varianza predicha10 pts
- La ganancia de Kalman15 pts
- La media actualizada15 pts
- La varianza actualizada10 pts
- La ganancia del mes siguiente15 pts
- Una lectura faltante10 pts
- La relación señal-ruido25 pts