ComenzarEmpieza gratis

Simular series temporales MA(1)

Simularás y trazarás unas cuantas series temporales MA(1), cada una con un parámetro diferente, (\ pequeño \theta), utilizando el módulo arima_process de statsmodels, igual que hiciste en el capítulo anterior para los modelos AR(1). Examinarás un modelo MA(1) con una gran (\eta pequeña) positiva y una gran (\eta pequeña) negativa.

Como en el último capítulo, al introducir los coeficientes, debes incluir el coeficiente de desfase cero de 1, pero a diferencia del último capítulo sobre los modelos AR, el signo de los coeficientes MA es el que cabría esperar. Por ejemplo, para un proceso MA(1) con (pequeña \theta=-0,9), la matriz 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 de ejercicio

  • Importa la clase ArmaProcess en el módulo arima_process.
  • Traza los procesos MA(1) simulados
    • Dejemos que ma1 represente una matriz de los parámetros MA [1, \(\small \theta\)] como se ha explicado anteriormente. La matriz de parámetros AR sólo contendrá el coeficiente de retardo cero de 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 del objeto que acabas de crear, MA_object1, utilizando el método .generate_sample(). Traza los datos simulados en una subparcela.
  • Repite la operación para el otro parámetro MA.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# 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