Quant500 Academy

7. Leer la salida: coeficientes y t-stats

Nivel 6: Regresión y Modelos de Pricing

Estimar el modelo es la parte fácil. Lo difícil es leer la tabla que sale.

De cada modelo ajustado se extraen dos objetos que hay que mirar siempre juntos: los coeficientes (.params) y los estadísticos t (.tvalues). El profesor los recoge en un único DataFrame y además usa summary_col para presentar los tres modelos en columnas comparables:

CAPMcoeff, CAPMtstat = CAPM.params, CAPM.tvalues
FF3coeff, FF3tstat = FF3.params, FF3.tvalues
FF5coeff, FF5tstat = FF5.params, FF5.tvalues

results_df = pd.DataFrame({'CAPMcoeff': CAPMcoeff, 'CAPMtstat': CAPMtstat,
                           'FF3coeff': FF3coeff, 'FF3tstat': FF3tstat,
                           'FF5coeff': FF5coeff, 'FF5tstat': FF5tstat},
                          index=['Intercept', 'MKT', 'SMB', 'HML', 'RMW', 'CMA'])

dfoutput = summary_col([CAPM, FF3, FF5], stars=True, float_format='%0.4f',
                       model_names=['CAPM', 'FF3', 'FF5'],
                       info_dict={'N': lambda x: '{0:d}'.format(int(x.nobs)),
                                  'Adjusted R2': lambda x: '{:.4f}'.format(x.rsquared_adj)},
                       regressor_order=['Intercept', 'MKT', 'SMB', 'HML', 'RMW', 'CMA'])
print(dfoutput)

FF5.summary()

Poner los tres modelos uno al lado del otro es justo lo que permite responder a la pregunta que importa: cómo se mueve el intercepto conforme añadimos factores. Si el alfa del CAPM era grande y al llegar a FF5 se ha quedado en nada, la conclusión es que lo que parecía habilidad era exposición a factores.

El argumento cov_type='HAC' con maxlags=1 merece una nota: cambia la forma de calcular los errores estándar y, por tanto, los estadísticos t y los p-valores. No cambia los coeficientes. Si dos compañeros obtienen betas idénticos pero t-stats distintos, ahí está casi siempre la explicación.

Terminología de parámetros. Aquí hay una distinción que suena pedante y no lo es. En general no conocemos los valores verdaderos subyacentes de los coeficientes beta. Denotamos con beta-sombrero la estimación del parámetro desconocido beta. Y podemos hablar de beta-sombrero de dos maneras distintas:

Cuando hablamos de beta-sombrero como estimador, podemos hablar también de su media, su varianza y su distribución, que son muy importantes a la hora de determinar si un método de estimación concreto es mejor que otro alternativo.

Traducido a lo que haces cada día: el 1,42 que te sale en la columna MKT es una estimación, un número que salió de esa muestra. El procedimiento OLS que lo produjo es el estimador. Si repitieras el ejercicio con otro periodo saldría otro número, y la dispersión de esos números hipotéticos es exactamente lo que mide el error estándar. Por eso un beta sin su error estándar al lado es información incompleta: sin la segunda columna no sabes si el 1,42 es sólido o es ruido con decimales.

El resto de Quant500

Lo que estás aprendiendo, aplicado al índice todos los días:

La cartera del modelo, cada semana en tu correo

Cada sábado, su semana en un minuto: cómo fue, lo mejor y lo peor, y qué directivos compraron con su dinero. Y el día que el modelo se rehace, qué entra y qué sale. Es una simulación, no un consejo. Como mucho un correo a la semana, sin publicidad y sin cuenta; te das de baja con un clic. Lo hace una persona: Pol Gracia.

Cartera modelo con resultados simulados, no una recomendación personalizada. Tu correo se usa solo para esto: privacidad.

Detrás de la Academia y del resto de Quant500 hay una sola persona: Pol Gracia Serrahima.