σμ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 1 · La regresión y sus comprobaciones›Tema 1.3·~50 minIntermedio

Ejecutar y leer una regresión factorial

Posición en la rutaMódulo 1 de 3 · Tema 3 de 10
1.3 Ejecutar y leer una regresión factorial
—Puntuación del lab— / 100XP total—Racha—

De una fórmula a una regresión completa

statsmodels.formula.api.ols('excess ~ mkt_rf + smb + hml', data=table).fit() ajusta una regresión de mínimos cuadrados ordinarios a partir de una fórmula de una línea: el nombre a la izquierda de ~ es lo que se explica, los de la derecha son los regresores y se añade una constante por usted (escriba - 1 para quitarla). El objeto resultado lo contiene todo: params (los coeficientes), bse (sus errores estándar), tvalues, pvalues, rsquared, rsquared_adj, aic, resid y summary() para el informe impreso. Como cada uno es una Series de pandas o un número, ponerlos juntos en un DataFrame da una tabla limpia, y res.predict(nueva_tabla) aplica la fórmula ajustada a filas nuevas con los mismos nombres de columna. La regresión factorial de una acción es el uso estándar: excess es el rendimiento de la acción sobre la tasa libre de riesgo, mkt_rf el del mercado, smb el factor tamaño y hml el factor valor.

Dos comparaciones hacen útil la tabla. El CAPM usa solo el mercado, excess ~ mkt_rf; el modelo de tres factores añade smb y hml. Añadir regresores nunca puede bajar el R², así que se usa el R² ajustado, el AIC o una prueba F: ff3.compare_f_test(capm) devuelve el estadístico F, su valor p y el número de regresores adicionales, y un valor p pequeño dice que los dos factores extra aportan poder explicativo real. Otro punto rutinario es la propia tabla. Los rendimientos de fin de mes salen del último cierre de cada mes natural (prices.groupby(prices.index.to_period('M')).last() y luego pct_change()), y deben unirse a la tabla de factores en el mismo mes: una regresión con meses desalineados es una regresión sobre ruido.

Qué dicen los datos realesApple tiene 319 rendimientos mensuales entre febrero de 2000 y agosto de 2026. El CAPM da una beta de mercado de 1,31 (t=11,7), un alfa del 1,5% mensual y R²=0,30. Con tamaño y valor, R² sube a 0,355, la carga en valor es -0,72 (t=-4,98: Apple se comporta como una acción de crecimiento), la carga en tamaño es pequeña y no significativa, y el alfa es del 1,7% mensual. La prueba F de los dos factores extra tiene un valor p de 2,7×10⁻⁶. El CAPM predice que un mes en que el mercado supera al efectivo en un 5 % trae un rendimiento en exceso de Apple del 8,07%.
  • Una línea, una regresión: la fórmula nombra la respuesta y los regresores, y el objeto resultado contiene cada estadístico.
  • Compare modelos anidados con la herramienta correcta: el R² siempre sube, así que use el R² ajustado, el AIC o la prueba F.
  • Alinee primero los meses: un rendimiento de fin de mes va con los factores del mismo mes.

Lab: qué se califica

  • La tabla de regresión mensual15 pts
  • El ajuste del CAPM10 pts
  • El ajuste de tres factores10 pts
  • Una tabla limpia de coeficientes15 pts
  • ¿Vale la pena el modelo más grande?15 pts
  • Una predicción10 pts
  • El estudio completo25 pts
Explorador · lab-sx-11
▾ lab-sx-11
▾ data
…
bash · en el navegador
learner@quantcraft:~/lab-sx-11$
Python aún no cargadoPythonLn 1, Col 1Spaces: 4UTF-8

¿Restablecer este tema?

Todo lo que hay en lab-sx-11 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