Aan de slagGa gratis aan de slag

Zijn we zeker dat dit aandeel mean-reverting is?

In het vorige hoofdstuk zag je dat de autocorrelatie van de wekelijkse rendementen van MSFT -0,16 was. Die autocorrelatie lijkt groot, maar is die statistisch significant? Met andere woorden: kun je zeggen dat de kans kleiner is dan 5% dat we zo’n grote negatieve autocorrelatie zouden waarnemen als de werkelijke autocorrelatie nul is? En zijn er autocorrelaties op andere lags die significant van nul verschillen?

Zelfs als de werkelijke autocorrelaties op alle lags nul zijn, zul je in een eindige steekproef van rendementen niet exact nul als schatting zien. Sterker nog, de standaardafwijking van de steekproefautocorrelatie is \(\small 1/\sqrt{N}\), waarbij \(\small N\) het aantal waarnemingen is. Als \(\small N=100`, is de standaardafwijking van de ACF bijvoorbeeld 0,1, en omdat 95% van een normale verdeling tussen +1,96 en -1,96 standaardafwijkingen van het gemiddelde ligt, is het 95%-betrouwbaarheidsinterval \)\small \pm 1.96/\sqrt{N}$. Deze benadering geldt alleen wanneer de werkelijke autocorrelaties allemaal nul zijn.

Je gaat het werkelijke en het benaderde betrouwbaarheidsinterval voor de ACF berekenen en dit vergelijken met de lag-één-autocorrelatie van -0,16 uit het vorige hoofdstuk. De wekelijkse rendementen van Microsoft zijn vooraf ingeladen in een DataFrame genaamd returns.

Deze oefening maakt deel uit van de cursus

Tijdreeksanalyse in Python

Cursus bekijken

Oefeninstructies

  • Bereken de autocorrelatie van de wekelijkse rendementen in de Series 'Adj Close' in het returns-DataFrame opnieuw.
  • Bepaal het aantal waarnemingen in het returns-DataFrame met de functie len().
  • Benader het 95%-betrouwbaarheidsinterval van de geschatte autocorrelatie. De wiskundefunctie sqrt() is geïmporteerd en kun je gebruiken.
  • Plot de autocorrelatiefunctie van returns met plot_acf die is geïmporteerd uit statsmodels. Zet alpha=0.05 voor de betrouwbaarheidsintervallen (dat is de standaard) en lags=20.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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()
Code bewerken en uitvoeren