IniziaInizia gratis

Equivalenza tra AR(1) e MA(infinito)

Per comprendere meglio la relazione tra i modelli MA e AR, mostrerai che un modello AR(1) è equivalente a un modello MA(\(\small \infty\)) con i parametri appropriati.

Simulerai un modello MA con parametri \(\small 0.8, 0.8^2, 0.8^3, \ldots \) per un numero elevato (30) di ritardi e mostrerai che ha la stessa funzione di autocorrelazione (ACF) di un modello AR(1) con \(\small \phi=0.8\).

Nota: per elevare un numero x alla potenza di un esponente n, usa la sintassi x**n.

Questo esercizio fa parte del corso

Analisi delle serie temporali in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Importa i moduli di statsmodels per simulare i dati e tracciare l'ACF
  • Usa una list comprehension per creare un elenco di parametri MA con decadimento esponenziale: \(\small 1, 0.8, 0.8^2, 0.8^3, \ldots\)
  • Simula 5000 osservazioni del modello MA(30)
  • Traccia l'ACF della serie simulata

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# import the modules for simulating data and plotting the ACF
from statsmodels.tsa.arima_process import ArmaProcess
from statsmodels.graphics.tsaplots import plot_acf

# Build a list MA parameters
ma = [___ for i in range(30)]

# Simulate the MA(30) model
ar = np.array([1])
AR_object = ArmaProcess(ar, ___)
simulated_data = ___.generate_sample(nsample=5000)

# Plot the ACF
plot_acf(___, lags=30)
plt.show()
Modifica ed esegui il codice