Introducción
En el primer artículo de eta serie hemos visto cómo realizar un análisis exploratorio de la serie para conocer sus propiedades estadísticas básicas. A lo largo de este artículo vamos a ver si a través de la aplicación de test estadísticos podríamos determinar si podemos clasificar su comportamiento como tendencial o anti-tendencial, para aplicar posteriormente el modelo correspondiente.
Estacionalidad
En la metodología de diseño Quant los modelos de reversión a la media son aplicados generalmente sobre series temporales que muestran propiedades estacionarías. Por el contrario, los modelos basados en el seguimiento de la tendencia son aplicados sobre series temporales no estacionarias. Veamos cuáles son las propiedades de una serie temporal estacionaria.
Se dice que una serie es estacionaria cuando sus propiedades estadísticas no varían con el paso del tiempo. En una serie estacionaria la media, la varianza, y la autocorrelación permanecen constantes a lo largo del tiempo. La estacionalidad puede ser definida en términos matemáticos precisos, aunque para nuestro propósito nos referiremos a una serie temporal que no muestra tendencias persistentes, que muestra una varianza y una autocorrelación constante, y que no muestra procesos cíclicos.
Prueba de Dickey Fuller Aumentada
El test estadístico de referencia utilizado para conocer si una serie es o no estacionaria es a la prueba de Dickey Fuller aumentada (ADF). En esta prueba se evalúa la hipótesis nula que confirma que existe una raíz unitaria en la serie temporal. El test devuelve un número decimal. Cuanto más negativo es este valor, mayor es la probabilidad de rechazar la hipótesis nula, confirmando que en la serie temporal no hay raíces unitarias. Lo cual implica aceptar que nos encontramos ante una serie estacionaria con un cierto grado de probabilidad. Si queremos profundizar en la matemática que hay detrás de esta prueba podremos hacerlo aquí.
Prueba de Dickey Fuller Aumentada en Python
Vamos a aplicar esta prueba sobre la serie temporal del SPY que hemos comenzado a analizar en el primer artículo. Dado que ya tenemos nuestro DataFrame creado, para aplicar esta prueba simplemente tendremos que programar el siguiente código:
En primer lugar importamos la prueba estadística adfuller de la librería Statsmodels. Esta librería incluye una amplia variedad de funciones que permiten realizar análisis exploratorios, estimar modelos estadísticos y realizar pruebas estadísticas.
En segundo lugar aplicamos la prueba sobre el precio de cierre “Adj Close” de nuestro DataFrame, y seguidamente obtenemos el valor que arroja dicho test. En este caso el valor obtenido es 1.967. Volveremos a este valor más adelante para ver qué nos dice en el rechazo de la hipótesis nula.
Seguidamente obtenemos el P-value. Este valor nos indica la probabilidad de que la hipótesis nula no sea rechazada. En nuestro test tenemos que el P-value es 0.998, por lo tanto, existe una probabilidad del 99,8% de que nuestra serie temporal sea no estacionaria. Para finalizar obtenemos los valores críticos para un intervalo de confianza del 1%, del 5% y del 10%. Dado que en este caso el valor de la prueba (1.967) es mayor que todos los valores críticos, entonces la hipótesis nula en la que se evalúa que en nuestra serie temporal existe una raíz unitaria, no puede ser rechazada, y por ello, concluimos que estamos ante una serie temporal no estacionaria.
Interpretación de los resultados
Si volvemos a analizar visualmente la evolución del SPY durante el periodo de análisis veremos que no es de extrañar que la serie sea caracterizada como no estacionaria. Por un lado se observan diferentes tendencias persistentes a lo largo del histórico, lo cual indica que la media no es constante. Por otro lado también se observa que la varianza de la serie (volatilidad) varía en función del tiempo mostrando un proceso heterocedástico. Ambas son propiedades de una serie no estacionaria.
La estacionalidad es una propiedad de la serie temporal de largo plazo. Por ello, tras realizar la prueba ADF podemos interpretar que la serie temporal del SPY es tendencial en el largo recorrido, lo cual implica que si queremos trabajar en este marco temporal sea más apropiado diseñar estrategias basadas en el seguimiento de la tendencia.
La mayoría de las series temporales financieras tienden a ser tendenciales en el largo plazo, y por tanto, son de naturaleza no estacionaria. Los portfolios basados en el seguimiento de la tendencia, en los cuales las operaciones pueden mantenerse durante meses, pretenden capturar esta propiedad en las series temporales.
Nuestro objetivo aquí es conocer las propiedades estadísticas de la serie temporal de un determinado activo. De este modo podremos determinar si es más apropiado diseñar un sistema seguidor de tendencia o de reversión a la media sobre dicha serie. Alternativamente, en la metodología basada en el arbitraje estadístico resulta posible construir series temporales sintéticas estacionarias a través de la combinación de varios activos que muestran cointegración. Sobre dichas series sintéticas se aplican modelos de reversión a la media. En este tipo de modelos la prueba de ADF se utiliza periódicamente para analizar si los activos utilizados para construir la serie sintética han perdido cointegración. Esto es fundamental para saber si la propiedad en la que se basa la estrategia ha desaparecido o continúa vigente.
Volviendo a nuestro cometido, hemos visto que la serie temporal del SPY tiende a ser tendencial en el largo plazo, sin embargo ¿Qué ocurre en el corto plazo? ¿Sería adecuado también diseñar estrategias basadas en momento? El ADF no nos ofrece información sobre las propiedades de la serie en un intervalo corto de tiempo. Una herramienta que puede ser utilizada para conocer si en el corto plazo los precios tienden a revertir o continuar en la dirección de la tendencia es el Exponente de Hurst.
Exponente de Hurst
El exponente de Hurst es un método estadístico utilizado para medir la memoria de largo plazo de las series temporales. Utiliza las autocorrelaciones de la serie temporal y el ratio al cual estas descienden a medida que el retardo entre pares de valores aumenta.
El exponente de Hurst (H) cuantifica el grado en el que una serie temporal tiende a revertir a su media o a continuar en la dirección de la tendencia. Existe una variedad de técnicas para estimar H. Por ejemplo, en este paper se explica y se comparan tres de ellas. Al margen del método de estimación elegido las propiedades de H pueden ser resumidas como se muestra a continuación:
- 0 < H < 1
- H > 0,5 proceso persistente (tendencia)
- H = 0,5 movimiento browniano (paseo aleatorio)
- H < 0,5 proceso anti-persistente (reversión a la media)
Un valor de H > 0,5 indica una serie temporal con autocorrelación positiva. Esto implica que una observación alcista o bajista en la serie temporal probablemente irá precedida de otra observación en la misma dirección. En este caso se asume que los precios se desarrollan en un proceso persistente, y como consecuencia, que probablemente resulta adecuado diseñar estrategias basadas en momento.
Un valor de H = 0,5 indica que la serie temporal se desarrolla siguiendo un movimiento browniano, es decir, un proceso aleatorio en el que no existe autocorrelación positiva ni negativa. En este tipo de series temporales se asume que no hay una característica estadística explotable para diseñar un sistema basado en ninguna de las dos categorías (reversión a la media o momento).
Un valor de H < 0,5 indica una serie temporal con autocorrelación negativa. Lo cual significa que una observación positiva probablemente precederá una observación negativa y vice-versa. En este supuesto se asume que la serie temporal tiende a revertir a la media, y por ello, que lo adecuado probablemente sea diseñar un sistema de reversión a la media.
Aplicación del Exponente de Hurst en Python
Podemos estimar el Exponente de Hurst sobre nuestra serie temporal utilizando la función publicada y popularizada en este artículo de QuantStart. Simplemente aplicaremos la función sobre el cierre de nuestro DataFrame tal y como se muestra a continuación:
Como se puede observar el resultado estimado de H es 0,44. Esto nos indica que la serie temporal sigue un proceso con autocorrelación negativa que tiende a revertir a la media. Aquí hemos configurado un rango de retardos (lags) que va desde 2 hasta 20. Ambos son valores arbitrarios que pueden ser modificados en función del marco temporal en el que queramos estimar H. Si queremos hacerlo en el corto plazo podremos utilizar un rango de retardos ceñido, tal y como estamos mostrando aquí. Por el contrario, si queremos estimar H en el corto o medio plazo podremos incrementar el rango de valores acordemente.
Por otro lado, aquí hemos aplicado la función para la estimación de H utilizando todas las observaciones de nuestra serie temporal. Esto nos arroja un único valor de H. Sin embargo, es importante tener en cuenta que la estimación de H varía a lo largo del tiempo a medida que cambian las propiedades de la serie temporal. Para analizar cómo varía el Exponente de Hurst a lo largo del histórico lo que he hecho aquí es dividir la serie temporal en bloques de 253 datos (valor arbitrario) y aplicar la estimación de H en cada bloque de datos. El bloque de código para realizar esto es el siguiente:
Este código produce el siguiente gráfico:
Interpretación de los resultados
Tras dividir nuestra serie temporal en bloques de 253 datos hemos obtenido 27 bloques de datos, y por tanto, 27 observaciones de la estimación de H. Como podemos observar el rango de observaciones va desde 0.25 hasta las proximidades de 0.5. En concreto solo una de las observaciones supera ligeramente el valor de 0.5. La media aritmética de todas las observaciones es 0.40. Valor que evidencia que la serie temporal del SPY en barras diarias, y con este rango de retardos, es anti-persistente con autocorrelación negativa. Por lo tanto, la estimación de H a lo largo de este análisis nos indica que si queremos diseñar un sistema en el corto plazo sobre esta serie podríamos utilizar un modelo de reversión a la media.
El Exponente de Hurst es método estadístico que nos ayuda identificar el carácter persistente de nuestra serie temporal. Es un método que puede ser muy útil cuando es utilizado en conjunción con otras herramientas analíticas, aunque no es recomendable utilizarlo de manera aislada. Este método estadístico no hace asunciones sobre la estacionalidad de la serie, y por ello, a menudo se realiza de manera complementaria a la prueba de Dickey Fuller Aumentada para obtener información sobre el comportamiento de la serie temporal.
En el siguiente artículo realizaremos un último análisis sobre nuestra serie temporal que nos ayudará a determinar, de un modo a menudo concluyente, si debemos abordar el diseño de nuestra estrategia de un modo tendencial o de reversión a la media.
Si te gustaría estar informado de las novedades de QuantSpace suscríbete a nuestro boletín de noticias.