Kom igångKom igång gratis

Simulera AR(1)-tidsserier

Du ska simulera och plotta ett par AR(1)-tidsserier med olika parametervärden, \(\small \phi\), med hjälp av modulen arima_process i statsmodels. I den här övningen tittar du på en AR(1)-modell med ett stort positivt \(\small \phi\) och ett stort negativt \(\small \phi\), men du är fri att experimentera med egna parametrar.

Det finns några konventioner i arima_process-modulen som behöver förklaras. För det första är rutinerna utformade för att hantera både AR- och MA-modeller. Vi går igenom MA-modeller härnäst, så ignorera den delen tills vidare. För det andra måste du, när du anger koefficienterna, inkludera lag-noll-koefficienten 1, och tecknet på övriga koefficienter är omvänt jämfört med vad vi har använt hittills – i enlighet med konventionen inom signalbehandlingens tidsserielitteratur. För en AR(1)-process med \(\small \phi=0.9\) skulle exempelvis arrayen med AR-parametrar se ut så här: ar = np.array([1, -0.9])

Den här övningen är en del av kursen

Tidsserieanalys i Python

Visa kurs

Övningsinstruktioner

  • Importera klassen ArmaProcess från modulen arima_process.
  • Plotta de simulerade AR-processerna:
    • Låt ar1 representera en array med AR-parametrarna [1, \(\small -\phi\)] enligt förklaringen ovan. För nu ska MA-parameterarryen, ma1, bara innehålla lag-noll-koefficienten ett.
    • Skapa en instans av klassen ArmaProcess(ar,ma) med parametrarna ar1 och ma1, och kalla den AR_object1.
    • Simulera 1000 datapunkter från objektet du just skapade, AR_object1, med metoden .generate_sample(). Plotta den simulerade datan i ett deldiagram.
  • Upprepa för den andra AR-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: AR parameter = +0.9
plt.subplot(2,1,1)
ar1 = np.array([1, ____])
ma1 = np.array([1])
AR_object1 = ArmaProcess(____, ____)
simulated_data_1 = AR_object1.generate_sample(nsample=1000)
plt.plot(simulated_data_1)

# Plot 2: AR parameter = -0.9
plt.subplot(2,1,2)
ar2 = np.array([1, ____])
ma2 = np.array([1])
AR_object2 = ArmaProcess(____, ____)
simulated_data_2 = AR_object2.generate_sample(nsample=1000)
plt.plot(simulated_data_2)
plt.show()
Redigera och kör kod