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.
- 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