¿Estamos seguros de que esta acción es revertidora a la media?
En el capítulo anterior, viste que la autocorrelación de los rendimientos semanales de MSFT fue -0.16. Esa autocorrelación parece grande, pero ¿es estadísticamente significativa? En otras palabras, ¿puedes decir que hay menos de un 5% de probabilidad de observar una autocorrelación negativa tan grande si la autocorrelación verdadera fuera realmente cero? ¿Y hay autocorrelaciones en otros rezagos que sean significativamente distintas de cero?
Incluso si las autocorrelaciones verdaderas fueran cero en todos los rezagos, en una muestra finita de rendimientos no verás que la estimación de las autocorrelaciones sea exactamente cero. De hecho, la desviación estándar de la autocorrelación muestral es \(\small 1/\sqrt{N}\), donde \(\small N\) es el número de observaciones; así, si \(\small N=100\), por ejemplo, la desviación estándar de la ACF es 0.1, y dado que el 95% de una distribución normal cae entre +1.96 y -1.96 desviaciones estándar respecto de la media, el intervalo de confianza del 95% es \(\small \pm 1.96/\sqrt{N}\). Esta aproximación solo se cumple cuando las autocorrelaciones verdaderas son todas cero.
Calcularás el intervalo de confianza real y el aproximado para la ACF, y lo compararás con la autocorrelación de rezago uno de -0.16 del capítulo anterior. Los rendimientos semanales de Microsoft están precargados en un DataFrame llamado returns.
Este ejercicio forma parte del curso
Análisis de series temporales en Python
Instrucciones del ejercicio
- Vuelve a calcular la autocorrelación de los rendimientos semanales en la Serie
'Adj Close'del DataFramereturns. - Obtén el número de observaciones en el DataFrame
returnsusando la funciónlen(). - Aproxima el intervalo de confianza del 95% de la autocorrelación estimada. La función matemática
sqrt()ya se ha importado y se puede usar. - Traza la función de autocorrelación de
returnsusandoplot_acf, que se importó de statsmodels. Establecealpha=0.05para los intervalos de confianza (es el valor predeterminado) ylags=20.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# Import the plot_acf module from statsmodels and sqrt from math
from statsmodels.graphics.tsaplots import plot_acf
from math import sqrt
# Compute and print the autocorrelation of MSFT weekly returns
autocorrelation = returns['Adj Close'].___
print("The autocorrelation of weekly MSFT returns is %4.2f" %(autocorrelation))
# Find the number of observations by taking the length of the returns DataFrame
nobs = ___
# Compute the approximate confidence interval
conf = 1.96/___
print("The approximate confidence interval is +/- %4.2f" %(conf))
# Plot the autocorrelation function with 95% confidence intervals and 20 lags using plot_acf
plot_acf(___, alpha=0.05, ___)
plt.show()