Una opción muy popular para la reversión a la media es el de Ornstein–Uhlenbeck (aquí en discretizado formulario): $$L_{t+1}-L_t=\alpha(L^*-L_t)+\sigma\epsilon_t$$
Aquí vemos que el cambio de nivel se rige por unos parámetros $\alpha$, la reversión a la media de la tasa (o velocidad), y la distancia entre la larga significa $L^*$ y el nivel real $L_t$ más un poco de ruido.
Una muy crudo, pero de manera intuitiva es estimar los parámetros de este proceso a través de una regresión lineal. Mira el siguiente artículo: http://www.fea.com/resources/a_meanrevert.pdf
Hay que ver un juguete ejemplo en la página 71: La idea es hacer una regresión donde el cambio de nivel de la serie de tiempo es el dependiente y el nivel real de la serie de tiempo es la variable independiente.
He codificado el siguiente ejemplo en R que contiene este juguete ejemplo como un comentario y el cálculo real para el VIX desde enero de 2014 hasta el día de hoy:
library(quantmod)
getSymbols("^VIX", from='2014-01-01')
level_t <- VIX$VIX.Adjusted
#level_t <- c(15,18,15.5,12,14.5,13,15,17,15.5,14)
change <- na.omit(diff(level_t))
level_t_1 <- level_t[-length(level_t)]
para <- lm(change ~ level_t_1)
summary(para)
(long_run_mean <- -para$coefficients[[1]]/para$coefficients[[2]])
(mean_reversion_speed <- -para$coefficients[[2]]*100)
(halflife <- -log(2)/para$coefficients[[2]])
Ejecutando el código da:
> (long_run_mean <- -para$coefficients[[1]]/para$coefficients[[2]])
[1] 14.61876
> (mean_reversion_speed <- -para$coefficients[[2]]*100)
[1] 9.083576
> (halflife <- -log(2)/para$coefficients[[2]])
[1] 7.630774
La interpretación es que el largo plazo significa que el VIX (estimado a partir de los respectivos plazos) es de $14.6$, es decir vuelve por alrededor de $9\%$ por VIX punto porcentual y las necesidades de alrededor de $7.5$ días para significar volver por $50\%$.