Równoważność modelu AR(1) i MA(nieskończoność)
Aby lepiej zrozumieć zależność między modelami MA a modelami AR, pokażesz, że model AR(1) jest równoważny modelowi MA(\(\small \infty\)) z odpowiednimi parametrami.
Symulujesz model MA z parametrami \(\small 0.8, 0.8^2, 0.8^3, \ldots\) dla dużej liczby opóźnień (30) i sprawdzisz, że ma on taką samą funkcję autokorelacji (ACF) jak model AR(1) z parametrem \(\small \phi=0.8\).
Uwaga: aby podnieść liczbę x do potęgi wykładnika n, użyj zapisu x**n.
To ćwiczenie jest częścią kursu
Analiza szeregów czasowych w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj moduły do symulowania danych i wykreślania ACF ze statsmodels
- Użyj wyrażenia listowego, aby zbudować listę z wykładniczo malejącymi parametrami MA: \(\small 1, 0.8, 0.8^2, 0.8^3, \ldots\)
- Zasymuluj 5000 obserwacji modelu MA(30)
- Wykreśl ACF zasymulowanej serii
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# import the modules for simulating data and plotting the ACF
from statsmodels.tsa.arima_process import ArmaProcess
from statsmodels.graphics.tsaplots import plot_acf
# Build a list MA parameters
ma = [___ for i in range(30)]
# Simulate the MA(30) model
ar = np.array([1])
AR_object = ArmaProcess(ar, ___)
simulated_data = ___.generate_sample(nsample=5000)
# Plot the ACF
plot_acf(___, lags=30)
plt.show()