Equivalentie van AR(1) en MA(oneindig)
Om de relatie tussen MA- en AR-modellen beter te begrijpen, laat je zien dat een AR(1)-model equivalent is aan een MA(\(\small \infty\))-model met de juiste parameters.
Je simuleert een MA-model met parameters \(\small 0{,}8, 0{,}8^2, 0{,}8^3, \ldots \) voor een groot aantal (30) vertragingen en laat zien dat het dezelfde autocorrelatiefunctie heeft als een AR(1)-model met \(\small \phi=0{,}8\).
Let op: om een getal x tot de macht n te verheffen, gebruik je de notatie x**n.
Deze oefening maakt deel uit van de cursus
Tijdreeksanalyse in Python
Oefeninstructies
- Importeer de modules uit statsmodels om data te simuleren en de ACF te plotten
- Gebruik een list comprehension om een lijst te bouwen met exponentieel afnemende MA-parameters: \(\small 1, 0{,}8, 0{,}8^2, 0{,}8^3, \ldots\)
- Simuleer 5000 observaties van het MA(30)-model
- Plot de ACF van de gesimuleerde reeks
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()