σμ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 SciPy›Módulo 1 · Ajustar y encontrar›Tema 1.2·~45 minIntermedio

Ajustar distribuciones de rendimientos y probar el ajuste

Posición en la rutaMódulo 1 de 3 · Tema 2 de 8
1.2 Ajustar distribuciones de rendimientos y probar el ajuste
—Puntuación del lab— / 100XP total—Racha—

Un modelo para el rendimiento diario

Todo número de riesgo parte de un modelo del rendimiento diario. El modelo más simple es una curva normal con la media y la desviación típica de la muestra. El modelo t de Student añade un número, los grados de libertad ν: un ν pequeño significa colas gruesas, y cuando ν es grande la curva t se convierte en la normal. scipy.stats da a cada distribución los mismos cuatro métodos: fit halla los parámetros por máxima verosimilitud, logpdf da el logaritmo de la densidad, cdf la probabilidad de caer por debajo de un valor y ppf su inversa, el cuantil. Apréndalos una vez y todas las distribuciones de SciPy funcionan igual: cambiar de modelo es cambiar una palabra.

Para elegir entre modelos hacen falta una puntuación y una prueba. La log-verosimilitud log L=Σᵢlog f(rᵢ) suma lo verosímil que es toda la muestra bajo el modelo, y el criterio de Akaike AIC=2k-2log L, con k el número de parámetros ajustados, cobra un precio por cada parámetro extra: cuanto menor, mejor. La prueba de Kolmogorov–Smirnov mide la mayor distancia entre la curva acumulada de la muestra y la del modelo. stats.kstest(r, dist.cdf, args=params) la devuelve con un valor p, y un valor p minúsculo dice que la muestra no parece un sorteo de ese modelo. Como los parámetros se ajustaron con la misma muestra, el valor p es favorable: úselo para comparar modelos, no como veredicto final. Por último, el modelo se convierte en un número de riesgo: el VaR a un día es menos el cuantil, -dist.ppf(alpha, *params), y el número esperado de días malos es el tamaño de la muestra por dist.cdf(-level, *params).

Qué dicen los datos realesSPY tiene 2.500 rendimientos diarios de septiembre de 2016 a agosto de 2026. El ajuste t de Student da ν≈2,6, una cola muy gruesa, y un AIC 867 puntos menor que el de la normal. La prueba KS rechaza la normal (valor p de unos 10⁻²⁵) pero no la t (0,19). El VaR al 1 % es 2,57% con la normal y 3,12% con la t. Seis días cayeron más de un 5 %: una normal espera 0,01 en diez años, el modelo t 7,9. Por encima del 3 %, el recuento es 32 frente a 8,6 de la normal y 27 de la t.
  • Los mismos cuatro métodos en todas partes: fit, logpdf, cdf y ppf sirven para toda distribución de scipy.stats, así que los modelos son intercambiables.
  • Puntuar y luego probar: el AIC compara modelos con un precio por parámetro, la prueba KS pregunta si la muestra puede venir de un modelo.
  • El recuento de colas delata al modelo: cuente los días por debajo de -5 % y compárelos con n * cdf; una normal falla por un factor de cientos.

Lab: qué se califica

  • Rendimientos diarios de una columna10 pts
  • Dos modelos ajustados15 pts
  • Una log-verosimilitud10 pts
  • Comparar modelos con el AIC10 pts
  • Un valor p de Kolmogorov–Smirnov15 pts
  • Un VaR a partir de un cuantil10 pts
  • Días extremos observados y esperados10 pts
  • El estudio completo20 pts
Explorador · lab-sp-12
▾ lab-sp-12
▾ data
…
bash · en el navegador
learner@quantcraft:~/lab-sp-12$
Python aún no cargadoPythonLn 1, Col 1Spaces: 4UTF-8

¿Restablecer este tema?

Todo lo que hay en lab-sp-12 vuelve a los archivos iniciales y se limpia el terminal. Tu solución actual se perderá: no se puede deshacer.

Se restablecerá
  • main.py → código inicial
  • Historial del terminal y salida de pruebas
  • Cambios sin enviar
Se conservará
  • Mejor puntuación del lab
  • Tu XP y tu racha
  • Progreso de la lección y notas

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