σμ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 AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • 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 AcademyFeuilles de routeParcours
Ctrl K
AO
+1,2 k apprenants
ConnexionRejoindre ↗
Feuilles de routeParcours
AO
+1,2 k apprenants
Connexion
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Parcours statsmodels›Module 2 · Modèles de séries temporelles›Sujet 2.4·~1 hAvancé

Modèles d'espace d'état et filtre de Kalman

Position dans le parcoursModule 2 sur 3 · Sujet 4 sur 5
2.4 Modèles d'espace d'état et filtre de Kalman
—Score du lab— / 100XP total—Série—

Suivre ce qu'on ne voit pas

Un modèle d'espace d'état sépare ce qui est réel de ce qui est mesuré. Un état caché μt\mu_tμt​, comme le vrai niveau de volatilité, évolue de lui-même, et ce qu'on observe est cet état plus du bruit. Dans le modèle à niveau local yt=μt+εty_t=\mu_t+\varepsilon_tyt​=μt​+εt​ avec εt∼N(0,r)\varepsilon_t\sim N(0,r)εt​∼N(0,r) et μt=μt−1+ηt\mu_t=\mu_{t-1}+\eta_tμt​=μt−1​+ηt​ avec ηt∼N(0,q)\eta_t\sim N(0,q)ηt​∼N(0,q). La variance de mesure rrr dit à quel point une lecture est bruitée et la variance de niveau qqq dit à quelle vitesse la vérité dérive. Dans statsmodels la classe UnobservedComponents(y, 'llevel') ajuste ce modèle et estime qqq et rrr par maximum de vraisemblance : inutile de les deviner.

Le filtre de Kalman transforme chaque nouvelle lecture en une croyance mise à jour, en deux étapes. Prédire : la moyenne reste et l'incertitude grandit, P−=P+qP^{-}=P+qP−=P+q. Mettre à jour : le gain K=P−/(P−+r)K=P^{-}/(P^{-}+r)K=P−/(P−+r) dit quelle part de la surprise y−ay-ay−a croire, la nouvelle moyenne est a+K(y−a)a+K(y-a)a+K(y−a) et la nouvelle incertitude (1−K)P−(1-K)P^{-}(1−K)P−. Quand une lecture manque, on ne fait que l'étape de prédiction. Le filtre utilise les données jusqu'à aujourd'hui, tandis que le lisseur regarde en arrière depuis tout l'échantillon pour donner la meilleure estimation de chaque état passé.

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)
Trois mois à la mainPartons d'une croyance a=10a=10a=10, P=4P=4P=4 avec q=1q=1q=1, r=5r=5r=5. Mois un : P−=5P^{-}=5P−=5, K=5/10=0,5K=5/10=0{,}5K=5/10=0,5, et une lecture 121212 donne a=10+0,5⋅2=11a=10+0{,}5\cdot2=11a=10+0,5⋅2=11 et P=0,5⋅5=2,5P=0{,}5\cdot5=2{,}5P=0,5⋅5=2,5. Mois deux : 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, une lecture 999 donne une surprise −2-2−2, donc a=11−0,4118⋅2=10,18a=11-0{,}4118\cdot2=10{,}18a=11−0,4118⋅2=10,18 et P=0,5882⋅3,5=2,06P=0{,}5882\cdot3{,}5=2{,}06P=0,5882⋅3,5=2,06. Le mois trois n'a pas de lecture : seule l'étape de prédiction tourne, donc aaa reste 10,1810{,}1810,18 et PPP monte à 2,06+1=3,062{,}06+1=3{,}062,06+1=3,06. Sur données réelles, prenons le log de la volatilité réalisée annualisée de SPY pour chacun des 259259259 mois depuis février 2005. Le maximum de vraisemblance donne r^=0,0889\hat r=0{,}0889r^=0,0889 et q^=0,0449\hat q=0{,}0449q^​=0,0449, donc q/r=0,50q/r=0{,}50q/r=0,50, et le gain stationnaire est K=0,50K=0{,}50K=0,50 : chaque nouveau mois déplace l'estimation de volatilité à mi-chemin de la dernière lecture. C'est exactement un ARIMA(0,1,1) de coefficient de moyenne mobile −0,498=−(1−K)-0{,}498=-(1-K)−0,498=−(1−K) et de même log-vraisemblance −151,09-151{,}09−151,09. En fin d'échantillon le niveau filtré est de 12,4%12{,}4\%12,4% annualisé contre une dernière lecture de 11,7%11{,}7\%11,7%, avec une erreur standard de 0,210{,}210,21 en logs, donc une bande à 95 % d'environ 8%8\%8% à 19%19\%19%.
Filtré ou lisséUtilisez l'estimation filtrée pour tout ce que vous auriez pu savoir à l'époque, comme une règle de trading ou un backtest. L'estimation lissée utilise des données futures et ne sert qu'à décrire le passé.

Lab : ce qui est noté

  • La variance prédite10 pts
  • Le gain de Kalman15 pts
  • La moyenne mise à jour15 pts
  • La variance mise à jour10 pts
  • Le gain du mois suivant15 pts
  • Une lecture manquante10 pts
  • Le rapport signal sur bruit25 pts
0/ 7 traités
Exercices
1Réponse numérique10 ptsSans réponse

La croyance a une variance P=4P=4P=4 et la variance de niveau est q=1q=1q=1. Que vaut la variance prédite P−=P+qP^{-}=P+qP−=P+q ?

pp=pp =pp=accepté : ± 0.01
2Réponse numérique15 ptsSans réponse

Avec P−=5P^{-}=5P−=5 et une variance de mesure r=5r=5r=5, que vaut le gain K=P−/(P−+r)K=P^{-}/(P^{-}+r)K=P−/(P−+r) ? Donnez une décimale.

k=k =k=accepté : ± 0.01
3Réponse numérique15 ptsSans réponse

La moyenne de la croyance est a=10a=10a=10, le gain K=0,5K=0{,}5K=0,5 et la lecture y=12y=12y=12. Que vaut la nouvelle moyenne a+K(y−a)a+K(y-a)a+K(y−a) ?

a=a =a=accepté : ± 0.01
4Réponse numérique10 ptsSans réponse

Avec P−=5P^{-}=5P−=5 et K=0,5K=0{,}5K=0,5, que vaut la nouvelle variance (1−K)P−(1-K)P^{-}(1−K)P− ? Donnez une décimale.

p=p =p=accepté : ± 0.02
5Réponse numérique15 ptsSans réponse

La variance vaut maintenant P=2,5P=2{,}5P=2,5 avec q=1q=1q=1, r=5r=5r=5. Que vaut le gain suivant K=(P+q)/(P+q+r)K=(P+q)/(P+q+r)K=(P+q)/(P+q+r) ? Donnez trois décimales.

k=k =k=accepté : ± 0.003
6Choix10 ptsSans réponse

Un mois sans lecture, que fait le filtre de Kalman ?

7Expliquer avec des mots25 ptsSans réponse

Pour la volatilité de SPY le rapport ajusté est q/r=0,50q/r=0{,}50q/r=0,50 et le gain K=0,50K=0{,}50K=0,50. En une ou deux phrases, expliquez ce qu'un q/rq/rq/r bien plus petit ferait à l'estimation filtrée.

Mode mathsSaisie au clavier ou en LaTeXExercice 1 sur 7 · Ctrl ⏎ pour vérifier

Connectez-vous pour exécuter votre code.

Tous les cours sont gratuits à lire. Créez un compte ou connectez-vous pour exécuter du code, lancer les tests et soumettre ce lab.

  • IDE dans le navigateur avec terminal bash — rien à installer
  • Correction instantanée, XP et votre place dans le parcours
Créer un compteSe connecter
OU
Continuer avec GitHub