IniziaInizia gratis

Simula serie storiche AR(1)

Simulerai e visualizzerai alcune serie storiche AR(1), ciascuna con un parametro diverso, \(\small \phi\), usando il modulo arima_process di statsmodels. In questo esercizio esaminerai un modello AR(1) con \(\small \phi\) fortemente positivo e uno con \(\small \phi\) fortemente negativo, ma sentiti libero di provare anche altri parametri.

Ci sono alcune convenzioni nell’uso del modulo arima_process che richiedono una spiegazione. Per prima cosa, queste routine sono state progettate in modo molto generale per gestire sia modelli AR sia MA. Tratteremo i modelli MA tra poco, quindi per ora ignora la parte MA. In secondo luogo, quando inserisci i coefficienti, devi includere il coefficiente a ritardo zero pari a 1, e il segno degli altri coefficienti è opposto a quello che abbiamo usato finora (per coerenza con la letteratura sulle serie temporali nell’elaborazione dei segnali). Ad esempio, per un processo AR(1) con \(\small \phi=0.9\), l’array che rappresenta i parametri AR sarebbe ar = np.array([1, -0.9])

Questo esercizio fa parte del corso

Analisi delle serie temporali in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Importa la classe ArmaProcess dal modulo arima_process.
  • Traccia i processi AR simulati:
    • Lascia che ar1 rappresenti un array dei parametri AR [1, \(\small -\phi\)] come spiegato sopra. Per ora, l’array dei parametri MA, ma1, conterrà solo il coefficiente a ritardo zero pari a uno.
    • Con i parametri ar1 e ma1, crea un’istanza della classe ArmaProcess(ar,ma) chiamata AR_object1.
    • Simula 1000 punti dati dall’oggetto appena creato, AR_object1, usando il metodo .generate_sample(). Traccia i dati simulati in un sottografico.
  • Ripeti per l’altro parametro AR.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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()
Modifica ed esegui il codice