σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyHojas de rutaRutas
Ctrl K
AO
+1,2 k estudiantes
Iniciar sesiónUnirse ↗
Hojas de rutaRutas
AO
+1,2 k estudiantes
Iniciar sesión
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyHojas de rutaRutas
Ctrl K
AO
+1,2 k estudiantes
Iniciar sesiónUnirse ↗
Hojas de rutaRutas
AO
+1,2 k estudiantes
Iniciar sesión
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Ruta de statsmodels›Módulo 2 · Modelos de series temporales›Tema 2.4·~1 hAvanzado

Modelos de espacio de estados y filtro de Kalman

Posición en la rutaMódulo 2 de 3 · Tema 4 de 5
2.4 Modelos de espacio de estados y filtro de Kalman
—Puntuación del lab— / 100XP total—Racha—

Seguir lo que no se ve

Un modelo de espacio de estados separa lo real de lo medido. Un estado oculto μt\mu_tμ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+εty_t=\mu_t+\varepsilon_tyt​=μt​+εt​ con εt∼N(0,r)\varepsilon_t\sim N(0,r)εt​∼N(0,r) y μt=μt−1+ηt\mu_t=\mu_{t-1}+\eta_tμt​=μt−1​+ηt​ con ηt∼N(0,q)\eta_t\sim N(0,q)ηt​∼N(0,q). La varianza de medida rrr dice cuán ruidosa es una lectura y la varianza de nivel qqq dice cuán rápido deriva la verdad. En statsmodels la clase UnobservedComponents(y, 'llevel') ajusta este modelo y estima qqq y rrr 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+qP^{-}=P+qP−=P+q. Actualizar: la ganancia K=P−/(P−+r)K=P^{-}/(P^{-}+r)K=P−/(P−+r) dice cuánto de la sorpresa y−ay-ay−a creer, la nueva media es a+K(y−a)a+K(y-a)a+K(y−a) y la nueva incertidumbre (1−K)P−(1-K)P^{-}(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−P−+r,a′=a+K(y−a),P′=(1−K)P−P^{-}=P+q,\qquad K=\frac{P^{-}}{P^{-}+r},\qquad a'=a+K(y-a),\qquad P'=(1-K)P^{-}P−=P+q,K=P−+rP−​,a′=a+K(y−a),P′=(1−K)P−(1)
Tres meses a manoPartamos de una creencia a=10a=10a=10, P=4P=4P=4 con q=1q=1q=1, r=5r=5r=5. Mes uno: P−=5P^{-}=5P−=5, K=5/10=0,5K=5/10=0{,}5K=5/10=0,5, y una lectura 121212 da a=10+0,5⋅2=11a=10+0{,}5\cdot2=11a=10+0,5⋅2=11 y P=0,5⋅5=2,5P=0{,}5\cdot5=2{,}5P=0,5⋅5=2,5. Mes dos: P−=3,5P^{-}=3{,}5P−=3,5, K=3,5/8,5=0,4118K=3{,}5/8{,}5=0{,}4118K=3,5/8,5=0,4118, una lectura 999 da sorpresa −2-2−2, así que a=11−0,4118⋅2=10,18a=11-0{,}4118\cdot2=10{,}18a=11−0,4118⋅2=10,18 y P=0,5882⋅3,5=2,06P=0{,}5882\cdot3{,}5=2{,}06P=0,5882⋅3,5=2,06. El mes tres no tiene lectura: solo corre el paso de predicción, así que aaa sigue en 10,1810{,}1810,18 y PPP crece a 2,06+1=3,062{,}06+1=3{,}062,06+1=3,06. Con datos reales, tome el log de la volatilidad realizada anualizada de SPY de cada uno de los 259259259 meses desde febrero de 2005. La máxima verosimilitud da r^=0,0889\hat r=0{,}0889r^=0,0889 y q^=0,0449\hat q=0{,}0449q^​=0,0449, así que q/r=0,50q/r=0{,}50q/r=0,50, y la ganancia estacionaria es K=0,50K=0{,}50K=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)-0{,}498=-(1-K)−0,498=−(1−K) y la misma log-verosimilitud −151,09-151{,}09−151,09. Al final de la muestra el nivel filtrado es 12,4%12{,}4\%12,4% anualizado frente a una última lectura de 11,7%11{,}7\%11,7%, con error estándar de 0,210{,}210,21 en logs, o sea una banda del 95 % de unos 8%8\%8% a 19%19\%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
0/ 7 respondidos
Ejercicios
1Respuesta numérica10 ptsSin responder

La creencia tiene varianza P=4P=4P=4 y la varianza de nivel es q=1q=1q=1. ¿Cuánto vale la varianza predicha P−=P+qP^{-}=P+qP−=P+q?

pp=pp =pp=aceptado: ± 0.01
2Respuesta numérica15 ptsSin responder

Con P−=5P^{-}=5P−=5 y varianza de medida r=5r=5r=5, ¿cuánto vale la ganancia K=P−/(P−+r)K=P^{-}/(P^{-}+r)K=P−/(P−+r)? Dé un decimal.

k=k =k=aceptado: ± 0.01
3Respuesta numérica15 ptsSin responder

La media de la creencia es a=10a=10a=10, la ganancia K=0,5K=0{,}5K=0,5 y la lectura y=12y=12y=12. ¿Cuánto vale la nueva media a+K(y−a)a+K(y-a)a+K(y−a)?

a=a =a=aceptado: ± 0.01
4Respuesta numérica10 ptsSin responder

Con P−=5P^{-}=5P−=5 y K=0,5K=0{,}5K=0,5, ¿cuánto vale la nueva varianza (1−K)P−(1-K)P^{-}(1−K)P−? Dé un decimal.

p=p =p=aceptado: ± 0.02
5Respuesta numérica15 ptsSin responder

La varianza es ahora P=2,5P=2{,}5P=2,5 con q=1q=1q=1, r=5r=5r=5. ¿Cuánto vale la siguiente ganancia K=(P+q)/(P+q+r)K=(P+q)/(P+q+r)K=(P+q)/(P+q+r)? Dé tres decimales.

k=k =k=aceptado: ± 0.003
6Elección10 ptsSin responder

En un mes sin lectura, ¿qué hace el filtro de Kalman?

7Explicar con palabras25 ptsSin responder

Para la volatilidad de SPY la relación ajustada es q/r=0,50q/r=0{,}50q/r=0,50 y la ganancia K=0,50K=0{,}50K=0,50. En una o dos frases, explique qué haría un q/rq/rq/r mucho menor a la estimación filtrada.

Modo matemáticasEntrada por teclado o LaTeXEjercicio 1 de 7 · Ctrl ⏎ para comprobar

Inicia sesión para ejecutar tu código.

Todas las clases se pueden leer gratis. Crea una cuenta o inicia sesión para ejecutar código, lanzar las pruebas y enviar este lab.

  • IDE en el navegador con terminal bash — sin instalar nada
  • Corrección instantánea, XP y tu lugar en la ruta
Crear una cuentaIniciar sesión
O
Continuar con GitHub