Peut-on affirmer que cette action est à retour à la moyenne ?
Au chapitre précédent, vous avez vu que l’autocorrélation des rendements hebdomadaires de MSFT était de -0,16. Cette autocorrélation semble importante, mais est-elle statistiquement significative ? Autrement dit, pouvez-vous dire qu’il y a moins de 5 % de chance d’observer une autocorrélation négative aussi forte si la véritable autocorrélation était nulle ? Et existe-t-il des autocorrélations à d’autres retards significativement différentes de zéro ?
Même si les véritables autocorrélations étaient nulles à tous les retards, dans un échantillon fini de rendements, l’estimation des autocorrélations ne sera pas exactement nulle. En fait, l’écart-type de l’autocorrélation empirique est \(\small 1/\sqrt{N}\) où \(\small N\) est le nombre d’observations ; ainsi, si \(\small N=100\), par exemple, l’écart-type de l’ACF est 0,1, et comme 95 % d’une loi normale se situent entre +1,96 et -1,96 écarts-types autour de la moyenne, l’intervalle de confiance à 95 % est \(\small \pm 1.96/\sqrt{N}\). Cette approximation ne vaut que lorsque les vraies autocorrélations sont toutes nulles.
Vous allez calculer l’intervalle de confiance exact et approximatif pour l’ACF, et le comparer à l’autocorrélation au premier retard de -0,16 du chapitre précédent. Les rendements hebdomadaires de Microsoft sont préchargés dans un DataFrame nommé returns.
Cet exercice fait partie du cours
Analyse des séries temporelles en Python
Instructions
- Recalculez l’autocorrélation des rendements hebdomadaires de la série
'Adj Close'dans le DataFramereturns. - Trouvez le nombre d’observations dans le DataFrame
returnsen utilisant la fonctionlen(). - Approximez l’intervalle de confiance à 95 % de l’autocorrélation estimée. La fonction mathématique
sqrt()a été importée et peut être utilisée. - Tracez la fonction d’autocorrélation de
returnsavecplot_acfimporté depuis statsmodels. Définissezalpha=0.05pour les intervalles de confiance (c’est la valeur par défaut) etlags=20.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()