Białego szumu nie da się prognozować
Szereg czasowy białego szumu to po prostu ciąg nieskorelowanych zmiennych losowych o identycznym rozkładzie. Stopy zwrotu z akcji są często modelowane właśnie jako biały szum. Niestety, w przypadku białego szumu nie można prognozować przyszłych obserwacji na podstawie przeszłych – autokorelacje dla wszystkich opóźnień wynoszą zero.
Wygenerujesz szereg białego szumu i wykreślisz funkcję autokorelacji, aby pokazać, że wynosi zero dla wszystkich opóźnień. Do wygenerowania losowych zwrotów możesz użyć np.random.normal(). W przypadku gaussowskiego procesu białego szumu całkowity opis procesu sprowadza się do podania średniej i odchylenia standardowego.
Wykreśl ten szereg białego szumu, żeby zobaczyć, jak wygląda, a następnie wykreśl funkcję autokorelacji.
To ćwiczenie jest częścią kursu
Analiza szeregów czasowych w Pythonie
Instrukcje do ćwiczenia
- Wygeneruj 1000 losowych zwrotów z rozkładu normalnego za pomocą
np.random.normal(), przyjmując średnią równą 2% (0,02) i odchylenie standardowe równe 5% (0,05) – argument dla średniej toloc, a dla odchylenia standardowegoscale. - Sprawdź średnią i odchylenie standardowe zwrotów, używając
np.mean()inp.std(). - Wykreśl szereg czasowy.
- Wykreśl funkcję autokorelacji za pomocą
plot_acfz argumentemlags=20.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Import the plot_acf module from statsmodels
from statsmodels.graphics.tsaplots import plot_acf
# Simulate white noise returns
returns = np.random.normal(loc=___, scale=___, size=___)
# Print out the mean and standard deviation of returns
mean = np.mean(___)
std = np.std(___)
print("The mean is %5.3f and the standard deviation is %5.3f" %(mean,std))
# Plot returns series
plt.plot(___)
plt.show()
# Plot autocorrelation function of white noise returns
plot_acf(___, lags=___)
plt.show()