Simuleer MA(1)-tijdreeksen
Je gaat enkele MA(1)-tijdreeksen simuleren en plotten, elk met een andere parameter, \(\small \theta\), met behulp van de arima_process-module in statsmodels, net als in het vorige hoofdstuk voor AR(1)-modellen. Je bekijkt een MA(1)-model met een grote positieve \(\small \theta\) en een grote negatieve \(\small \theta\).
Net als in het vorige hoofdstuk moet je bij het invoeren van de coëfficiënten de nul-lagcoëfficiënt van 1 opnemen, maar anders dan in het hoofdstuk over AR-modellen is het teken van de MA-coëfficiënten zoals je zou verwachten. Bijvoorbeeld, voor een MA(1)-proces met \(\small \theta=-0.9\) is de array die de MA-parameters weergeeft ma = np.array([1, -0.9])
Deze oefening maakt deel uit van de cursus
Tijdreeksanalyse in Python
Oefeninstructies
- Importeer de klasse
ArmaProcessuit dearima_process-module. - Plot de gesimuleerde MA(1)-processen
- Laat
ma1een array zijn van de MA-parameters [1, \(\small \theta\)], zoals hierboven uitgelegd. De AR-parameterarray bevat alleen de lag-nulcoëfficiënt van 1. - Maak met parameters
ar1enma1een instantie van de klasseArmaProcess(ar,ma)met de naamMA_object1. - Simuleer 1000 datapunten uit het object dat je zojuist hebt gemaakt,
MA_object1, met behulp van de methode.generate_sample(). Plot de gesimuleerde data in een subplot.
- Laat
- Herhaal dit voor de andere MA-parameter.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# import the module for simulating data
from statsmodels.tsa.arima_process import ArmaProcess
# Plot 1: MA parameter = -0.9
plt.subplot(2,1,1)
ar1 = np.array([1])
ma1 = np.array([1, ____])
MA_object1 = ArmaProcess(____, ____)
simulated_data_1 = MA_object1.generate_sample(nsample=1000)
plt.plot(simulated_data_1)
# Plot 2: MA parameter = +0.9
plt.subplot(2,1,2)
ar2 = np.array([1])
ma2 = np.array([1, ____])
MA_object2 = ArmaProcess(____, ____)
simulated_data_2 = MA_object2.generate_sample(nsample=1000)
plt.plot(simulated_data_2)
plt.show()