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
Instrucciones de ejercicio
- Importa la clase
ArmaProcess
en el móduloarima_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
yma1
, crea una instancia de la claseArmaProcess(ar,ma)
llamadaMA_object1
. - Simula 1000 puntos de datos del objeto que acabas de crear,
MA_object
1, utilizando el método.generate_sample()
. Traza los datos simulados en una subparcela.
- Dejemos que
- 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()