σμ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 AcademyRoadmapsSkills
Ctrl K
AO
+1,2 Tsd. Lernende
AnmeldenBeitreten ↗
RoadmapsSkills
AO
+1,2 Tsd. Lernende
Anmelden
  • 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 AcademyRoadmapsSkills
Ctrl K
AO
+1,2 Tsd. Lernende
AnmeldenBeitreten ↗
RoadmapsSkills
AO
+1,2 Tsd. Lernende
Anmelden
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
statsmodels-Skill›Modul 2 · Modelle für Zeitreihen›Thema 2.4·~1 Std.Fortgeschritten

Zustandsraummodelle und Kalman-Filter

Position in der SkillModul 2 von 3 · Thema 4 von 5
2.4 Zustandsraummodelle und Kalman-Filter
—Lab-Punkte— / 100XP gesamt—Serie—

Verfolgen, was man nicht sieht

Ein Zustandsraummodell trennt, was real ist, von dem, was gemessen wird. Ein verborgener Zustand μt\mu_tμt​, etwa das wahre Volatilitätsniveau, bewegt sich von selbst, und beobachtet wird dieser Zustand plus Rauschen. Im Lokales-Niveau-Modell gilt yt=μt+εty_t=\mu_t+\varepsilon_tyt​=μt​+εt​ mit εt∼N(0,r)\varepsilon_t\sim N(0,r)εt​∼N(0,r) und μt=μt−1+ηt\mu_t=\mu_{t-1}+\eta_tμt​=μt−1​+ηt​ mit ηt∼N(0,q)\eta_t\sim N(0,q)ηt​∼N(0,q). Die Messvarianz rrr sagt, wie verrauscht eine Ablesung ist, die Niveauvarianz qqq, wie schnell die Wahrheit driftet. In statsmodels passt die Klasse UnobservedComponents(y, 'llevel') dieses Modell an und schätzt qqq und rrr per Maximum Likelihood, man muss sie also nicht raten.

Der Kalman-Filter verwandelt jede neue Ablesung in eine aktualisierte Überzeugung, in zwei Schritten. Vorhersagen: Der Mittelwert bleibt, die Unsicherheit wächst, P−=P+qP^{-}=P+qP−=P+q. Aktualisieren: Der Gewinn K=P−/(P−+r)K=P^{-}/(P^{-}+r)K=P−/(P−+r) sagt, wie viel der Überraschung y−ay-ay−a man glaubt, der neue Mittelwert ist a+K(y−a)a+K(y-a)a+K(y−a) und die neue Unsicherheit (1−K)P−(1-K)P^{-}(1−K)P−. Fehlt eine Ablesung, macht man nur den Vorhersageschritt. Der Filter nutzt Daten bis heute, der Glätter blickt von der ganzen Stichprobe zurück und liefert die beste Schätzung jedes vergangenen Zustands.

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)
Drei Monate von HandBeginnen wir mit der Überzeugung a=10a=10a=10, P=4P=4P=4 und nehmen q=1q=1q=1, r=5r=5r=5. Monat eins: P−=5P^{-}=5P−=5, K=5/10=0,5K=5/10=0{,}5K=5/10=0,5, und eine Ablesung 121212 ergibt a=10+0,5⋅2=11a=10+0{,}5\cdot2=11a=10+0,5⋅2=11 und P=0,5⋅5=2,5P=0{,}5\cdot5=2{,}5P=0,5⋅5=2,5. Monat zwei: 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, eine Ablesung 999 ergibt die Überraschung −2-2−2, also a=11−0,4118⋅2=10,18a=11-0{,}4118\cdot2=10{,}18a=11−0,4118⋅2=10,18 und P=0,5882⋅3,5=2,06P=0{,}5882\cdot3{,}5=2{,}06P=0,5882⋅3,5=2,06. Monat drei hat keine Ablesung: Nur der Vorhersageschritt läuft, aaa bleibt 10,1810{,}1810,18, und PPP wächst auf 2,06+1=3,062{,}06+1=3{,}062,06+1=3,06. Mit echten Daten nehmen wir den Logarithmus der annualisierten realisierten Volatilität von SPY für jeden der 259259259 Monate seit Februar 2005. Maximum Likelihood liefert r^=0,0889\hat r=0{,}0889r^=0,0889 und q^=0,0449\hat q=0{,}0449q^​=0,0449, also q/r=0,50q/r=0{,}50q/r=0,50, und der stationäre Gewinn ist K=0,50K=0{,}50K=0,50: Jeder neue Monat verschiebt die Volatilitätsschätzung halb zur letzten Ablesung. Das ist genau ein ARIMA(0,1,1) mit MA-Koeffizient −0,498=−(1−K)-0{,}498=-(1-K)−0,498=−(1−K) und derselben Log-Likelihood −151,09-151{,}09−151,09. Am Stichprobenende liegt das gefilterte Niveau bei 12,4%12{,}4\%12,4% annualisiert gegenüber einer letzten Ablesung von 11,7%11{,}7\%11,7%, mit einem Standardfehler von 0,210{,}210,21 in Logs, also einem 95-%-Band von etwa 8%8\%8% bis 19%19\%19%.
Gefiltert oder geglättetNehmen Sie die gefilterte Schätzung für alles, was Sie damals hätten wissen können, etwa eine Handelsregel oder einen Backtest. Die geglättete Schätzung nutzt künftige Daten und dient nur der Beschreibung der Vergangenheit.

Lab: Was bewertet wird

  • Die vorhergesagte Varianz10 Pkt.
  • Der Kalman-Gewinn15 Pkt.
  • Der aktualisierte Mittelwert15 Pkt.
  • Die aktualisierte Varianz10 Pkt.
  • Der Gewinn des Folgemonats15 Pkt.
  • Eine fehlende Ablesung10 Pkt.
  • Das Signal-Rausch-Verhältnis25 Pkt.
0/ 7 beantwortet
Aufgaben
1Numerische Antwort10 Pkt.Nicht beantwortet

Die Überzeugung hat die Varianz P=4P=4P=4, die Niveauvarianz ist q=1q=1q=1. Wie groß ist die vorhergesagte Varianz P−=P+qP^{-}=P+qP−=P+q?

pp=pp =pp=akzeptiert: ± 0.01
2Numerische Antwort15 Pkt.Nicht beantwortet

Mit P−=5P^{-}=5P−=5 und Messvarianz r=5r=5r=5: Wie groß ist der Gewinn K=P−/(P−+r)K=P^{-}/(P^{-}+r)K=P−/(P−+r)? Eine Dezimalstelle.

k=k =k=akzeptiert: ± 0.01
3Numerische Antwort15 Pkt.Nicht beantwortet

Der Mittelwert der Überzeugung ist a=10a=10a=10, der Gewinn K=0,5K=0{,}5K=0,5 und die Ablesung y=12y=12y=12. Wie groß ist der neue Mittelwert a+K(y−a)a+K(y-a)a+K(y−a)?

a=a =a=akzeptiert: ± 0.01
4Numerische Antwort10 Pkt.Nicht beantwortet

Mit P−=5P^{-}=5P−=5 und K=0,5K=0{,}5K=0,5: Wie groß ist die neue Varianz (1−K)P−(1-K)P^{-}(1−K)P−? Eine Dezimalstelle.

p=p =p=akzeptiert: ± 0.02
5Numerische Antwort15 Pkt.Nicht beantwortet

Die Varianz ist nun P=2,5P=2{,}5P=2,5 mit q=1q=1q=1, r=5r=5r=5. Wie groß ist der nächste Gewinn K=(P+q)/(P+q+r)K=(P+q)/(P+q+r)K=(P+q)/(P+q+r)? Drei Dezimalstellen.

k=k =k=akzeptiert: ± 0.003
6Auswahl10 Pkt.Nicht beantwortet

Was tut der Kalman-Filter in einem Monat ohne Ablesung?

7In Worten erklären25 Pkt.Nicht beantwortet

Für die SPY-Volatilität beträgt das angepasste Verhältnis q/r=0,50q/r=0{,}50q/r=0,50 und der Gewinn K=0,50K=0{,}50K=0,50. Erklären Sie in ein bis zwei Sätzen, was ein viel kleineres q/rq/rq/r mit der gefilterten Schätzung machen würde.

Mathe-ModusEingabe per Tastatur oder LaTeXAufgabe 1 von 7 · Strg ⏎ zum Prüfen

Melde dich an, um deinen Code auszuführen.

Alle Lektionen kannst du kostenlos lesen. Erstelle ein Konto oder melde dich an, um Code auszuführen, Tests zu starten und dieses Lab abzugeben.

  • IDE im Browser mit Bash-Terminal — nichts zu installieren
  • Sofortige Bewertung, XP und dein Platz auf der Skill
Konto erstellenAnmelden
ODER
Weiter mit GitHub