EmpezarEmpieza gratis

Simula series temporales MA(1)

Vas a simular y representar varias series temporales MA(1), cada una con un parámetro distinto, \(\small \theta\), usando el módulo arima_process de statsmodels, igual que hiciste en el capítulo anterior con los modelos AR(1). Analizarás un modelo MA(1) con un \(\small \theta\) grande positivo y otro grande negativo.

Como en el capítulo anterior, al introducir los coeficientes debes incluir el coeficiente de retardo cero igual a 1, pero, a diferencia del capítulo sobre modelos AR, el signo de los coeficientes MA es el esperado. Por ejemplo, para un proceso MA(1) con \(\small \theta=-0.9\), el array que representa los parámetros MA sería ma = np.array([1, -0.9])

Este ejercicio forma parte del curso

Análisis de series temporales en Python

Ver curso

Instrucciones del ejercicio

  • Importa la clase ArmaProcess del módulo arima_process.
  • Representa los procesos MA(1) simulados
    • Deja que ma1 represente un array con los parámetros MA [1, \(\small \theta\)] como se explicó arriba. El array de parámetros AR contendrá solo el coeficiente de retardo cero igual a uno.
    • Con los parámetros ar1 y ma1, crea una instancia de la clase ArmaProcess(ar,ma) llamada MA_object1.
    • Simula 1000 puntos de datos a partir del objeto que acabas de crear, MA_object1, usando el método .generate_sample(). Representa los datos simulados en un subgráfico.
  • Repite para el otro parámetro MA.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# 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()
Editar y ejecutar código