Kan vi säga att aktien är medelvärdesåtervändande?
I det förra kapitlet såg du att autokorrelationen för MSFTs veckovisa aktieavkastningar var -0,16. Det verkar vara ett stort värde – men är det statistiskt signifikant? Med andra ord: kan du säga att det är mindre än 5 % sannolikhet att vi skulle observera en så stor negativ autokorrelation om den sanna autokorrelationen faktiskt vore noll? Och finns det autokorrelationer vid andra fördröjningar som är signifikant skilda från noll?
Även om de sanna autokorrelationerna vore noll vid alla fördröjningar kommer du i ett ändligt stickprov inte att se exakt noll som skattning. Standardavvikelsen för stickprovsautokorrelationen är \(\small 1/\sqrt{N}\) där \(\small N\) är antalet observationer. Om \(\small N=100\) är standardavvikelsen för ACF alltså 0,1. Eftersom 95 % av en normalfördelning befinner sig inom ±1,96 standardavvikelser från medelvärdet, blir 95 %-konfidensintervallet \(\small \pm 1,96/\sqrt{N}\). Den här approximationen gäller bara när de sanna autokorrelationerna alla är noll.
Du ska beräkna det faktiska och det ungefärliga konfidensintervallet för ACF, och jämföra det med lag-ett-autokorrelationen på -0,16 från föregående kapitel. Microsofts veckovisa avkastningar finns förinlästa i en DataFrame som heter returns.
Den här övningen är en del av kursen
Tidsserieanalys i Python
Övningsinstruktioner
- Beräkna om autokorrelationen för de veckovisa avkastningarna i Series
'Adj Close'i DataFramereturns. - Ta reda på antalet observationer i DataFrame
returnsmed funktionenlen(). - Approximera 95 %-konfidensintervallet för den skattade autokorrelationen. Matematikfunktionen
sqrt()är redan importerad och kan användas. - Plotta autokorrelationsfunktionen för
returnsmedplot_acf, som importerats från statsmodels. Sättalpha=0.05för konfidensintervallen (det är standardvärdet) ochlags=20.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()