Simulera MA(1)-tidsserier
Du ska simulera och plotta några MA(1)-tidsserier, var och en med en annan parameter, \(\small \theta\), med hjälp av modulen arima_process i statsmodels – precis som du gjorde i förra kapitlet för AR(1)-modeller. Du tittar på en MA(1)-modell med ett stort positivt \(\small \theta\) och ett stort negativt \(\small \theta\).
Precis som i förra kapitlet måste du inkludera lag-noll-koefficienten 1 när du anger koefficienterna. Till skillnad från AR-modellerna har MA-koefficienterna dock det tecken man förväntar sig. För en MA(1)-process med \(\small \theta=-0.9\) ser exempelvis arrayen med MA-parametrarna ut så här: ma = np.array([1, -0.9])
Den här övningen är en del av kursen
Tidsserieanalys i Python
Övningsinstruktioner
- Importera klassen
ArmaProcessfrån modulenarima_process. - Plotta de simulerade MA(1)-processerna
- Låt
ma1representera en array med MA-parametrarna [1, \(\small \theta\)] enligt beskrivningen ovan. AR-parameterarryen ska bara innehålla lag-noll-koefficienten ett. - Skapa en instans av klassen
ArmaProcess(ar,ma)med parametrarnaar1ochma1, och kalla denMA_object1. - Simulera 1 000 datapunkter från objektet du nyss skapade,
MA_object1, med metoden.generate_sample(). Plotta den simulerade datan i ett deldiagram.
- Låt
- Upprepa för den andra MA-parametern.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()