Aan de slagGa gratis aan de slag

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

Cursus bekijken

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()
Code bewerken en uitvoeren