Acompanhar o que não se vê
Um modelo de espaço de estados separa o que é real do que é medido. Um estado oculto μt, como o verdadeiro nível de volatilidade, se move por conta própria, e o que se observa é esse estado mais ruído. No modelo de nível local yt=μt+εt com εt∼N(0,r) e μt=μt−1+ηt com ηt∼N(0,q). A variância de medida r diz quão ruidosa é uma leitura e a variância de nível q diz quão rápido a verdade deriva. No statsmodels a classe UnobservedComponents(y, 'llevel') ajusta esse modelo e estima q e r por máxima verossimilhança, então não é preciso adivinhá-las.
O filtro de Kalman transforma cada nova leitura em uma crença atualizada, em dois passos. Prever: a média fica e a incerteza cresce, P−=P+q. Atualizar: o ganho K=P−/(P−+r) diz quanto da surpresa y−a acreditar, a nova média é a+K(y−a) e a nova incerteza (1−K)P−. Quando uma leitura falta, faz-se só o passo de previsão. O filtro usa os dados até hoje, enquanto o suavizador olha para trás a partir de toda a amostra para dar a melhor estimativa de cada estado passado.
P−=P+q,K=P−+rP−,a′=a+K(y−a),P′=(1−K)P−(1) Três meses à mãoComecemos com a crença
a=10,
P=4 e tomemos
q=1,
r=5. Mês um:
P−=5,
K=5/10=0,5, e uma leitura
12 dá
a=10+0,5⋅2=11 e
P=0,5⋅5=2,5. Mês dois:
P−=3,5,
K=3,5/8,5=0,4118, uma leitura
9 dá surpresa
−2, então
a=11−0,4118⋅2=10,18 e
P=0,5882⋅3,5=2,06. O mês três não tem leitura: só o passo de previsão roda, então
a fica em
10,18 e
P cresce para
2,06+1=3,06. Em dados reais, tome o log da volatilidade realizada anualizada do SPY para cada um dos
259 meses desde fevereiro de 2005. A máxima verossimilhança dá
r^=0,0889 e
q^=0,0449, então
q/r=0,50, e o ganho estacionário é
K=0,50: cada novo mês move a estimativa de volatilidade até a metade do caminho para a última leitura. É exatamente um ARIMA(0,1,1) com coeficiente de média móvel
−0,498=−(1−K) e a mesma log-verossimilhança
−151,09. No fim da amostra o nível filtrado é
12,4% anualizado contra uma última leitura de
11,7%, com erro-padrão de
0,21 em logs, ou seja, uma banda de 95 % de cerca de
8% a
19%.
Filtrado ou suavizadoUse a estimativa filtrada para tudo o que você poderia saber na época, como uma regra de negociação ou um backtest. A estimativa suavizada usa dados futuros e serve apenas para descrever o passado.
Lab: o que é avaliado
- A variância prevista10 pts
- O ganho de Kalman15 pts
- A média atualizada15 pts
- A variância atualizada10 pts
- O ganho do mês seguinte15 pts
- Uma leitura ausente10 pts
- A razão sinal-ruído25 pts