Echivalența dintre AR(1) și MA(infinit)
Pentru a înțelege mai bine relația dintre modelele MA și modelele AR, vei demonstra că un model AR(1) este echivalent cu un model MA(\(\small \infty\)) cu parametrii corespunzători.
Vei simula un model MA cu parametrii \(\small 0.8, 0.8^2, 0.8^3, \ldots\) pentru un număr mare (30) de lag-uri și vei arăta că are aceeași Funcție de Autocorelare ca un model AR(1) cu \(\small \phi=0.8\).
Notă: pentru a ridica un număr x la puterea unui exponent n, folosește formatul x**n.
Acest exercițiu face parte din cursul
Analiza seriilor de timp în Python
Instrucțiuni pentru exercițiu
- Importă modulele pentru simularea datelor și reprezentarea grafică a ACF din statsmodels
- Folosește un list comprehension pentru a construi o listă cu parametri MA cu descreștere exponențială: \(\small 1, 0.8, 0.8^2, 0.8^3, \ldots\)
- Simulează 5000 de observații ale modelului MA(30)
- Reprezintă grafic ACF-ul seriei simulate
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()