Zacznij terazZacznij za darmo

Czy mamy pewność, że ta akcja wykazuje powrót do średniej?

W poprzednim rozdziale zobaczyłeś, że autokorelacja tygodniowych zwrotów akcji MSFT wyniosła -0,16. Wydaje się to dużą wartością – ale czy jest ona istotna statystycznie? Innymi słowy, czy można powiedzieć, że prawdopodobieństwo zaobserwowania tak dużej ujemnej autokorelacji, gdyby prawdziwa autokorelacja wynosiła zero, jest mniejsze niż 5%? Czy autokorelacje przy innych opóźnieniach również różnią się istotnie od zera?

Nawet jeśli prawdziwe autokorelacje są zerowe dla wszystkich opóźnień, w skończonej próbie zwrotów estymowane autokorelacje nie będą dokładnie równe zeru. Odchylenie standardowe próbkowej autokorelacji wynosi \(\small 1/\sqrt{N}\), gdzie \(\small N\) to liczba obserwacji. Jeśli więc \(\small N=100\), odchylenie standardowe ACF wynosi 0,1 – a ponieważ 95% rozkładu normalnego mieści się między +1,96 a -1,96 odchylenia standardowego od średniej, 95-procentowy przedział ufności to \(\small \pm 1.96/\sqrt{N}\). Przybliżenie to jest trafne tylko wtedy, gdy wszystkie prawdziwe autokorelacje są równe zero.

Obliczysz rzeczywisty i przybliżony przedział ufności dla ACF, a następnie porównasz go z autokorelacją dla opóźnienia pierwszego, wynoszącą -0,16, uzyskaną w poprzednim rozdziale. Tygodniowe zwroty Microsoftu są wczytane do ramki danych o nazwie returns.

To ćwiczenie jest częścią kursu

Analiza szeregów czasowych w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Oblicz ponownie autokorelację tygodniowych zwrotów z serii 'Adj Close' w ramce danych returns.
  • Wyznacz liczbę obserwacji w ramce danych returns za pomocą funkcji len().
  • Wyznacz przybliżony 95-procentowy przedział ufności dla estymowanej autokorelacji. Funkcja sqrt() z modułu math jest już zaimportowana i możesz jej użyć.
  • Wykreśl funkcję autokorelacji returns przy użyciu plot_acf zaimportowanego ze statsmodels. Ustaw alpha=0.05 dla przedziałów ufności (to wartość domyślna) oraz lags=20.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod