IniziaInizia gratis

Simula serie temporali MA(1)

Simulerai e traccerai alcune serie temporali MA(1), ciascuna con un parametro \(\small \theta\) diverso, usando il modulo arima_process di statsmodels, proprio come hai fatto nel capitolo precedente per i modelli AR(1). Esaminerai un modello MA(1) con \(\small \theta\) grande e positivo e uno con \(\small \theta\) grande e negativo.

Come nel capitolo precedente, quando inserisci i coefficienti, devi includere il coefficiente a ritardo zero pari a 1, ma a differenza del capitolo sugli AR, il segno dei coefficienti MA è quello atteso. Ad esempio, per un processo MA(1) con \(\small \theta=-0.9\), l’array che rappresenta i parametri MA sarà ma = 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 MA(1) simulati
    • Fai sì che ma1 rappresenti un array dei parametri MA [1, \(\small \theta\)] come spiegato sopra. L’array dei parametri AR 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 MA_object1.
    • Simula 1000 punti dati dall’oggetto appena creato, MA_object1, usando il metodo .generate_sample(). Traccia i dati simulati in un subplot.
  • Ripeti per l’altro parametro MA.

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