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
Instrucciones del ejercicio
- Importa la clase
ArmaProcessdel móduloarima_process. - Representa los procesos MA(1) simulados
- Deja que
ma1represente 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
ar1yma1, crea una instancia de la claseArmaProcess(ar,ma)llamadaMA_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.
- Deja que
- 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()