Simular series temporales AR(1)
Simularás y trazarás unas cuantas series temporales AR(1), cada una con un parámetro diferente, (\ pequeño \phi), utilizando el módulo arima_process
de statsmodels. En este ejercicio, examinarás un modelo AR(1) con una gran (|pequeña \phi\) positiva y una gran (|pequeña \phi) negativa, pero siéntete libre de jugar con tus propios parámetros.
Hay algunas convenciones al utilizar el módulo arima_process
que requieren alguna explicación. En primer lugar, estas rutinas se hicieron de forma muy general para manejar tanto modelos AR como MA. A continuación trataremos los modelos MA, así que de momento ignora la parte MA. En segundo lugar, al introducir los coeficientes, debes incluir el coeficiente de desfase cero de 1, y el signo de los demás coeficientes es opuesto al que hemos estado utilizando (para ser coherentes con la literatura sobre series temporales en el procesamiento de señales). Por ejemplo, para un proceso AR(1) con \ (\ pequeño \phi=0,9), la matriz que representa los parámetros AR sería ar = 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 AR simulados:
- Dejemos que
ar1
represente una matriz de los parámetros AR [1, \(\small -\phi\)] como se ha explicado anteriormente. Por ahora, la matriz de parámetros MA,ma1
, contendrá sólo el coeficiente de retardo cero de uno. - Con los parámetros
ar1
yma1
, crea una instancia de la claseArmaProcess(ar,ma)
llamadaAR_object1
. - Simula 1000 puntos de datos del objeto que acabas de crear,
AR_object1
, utilizando el método.generate_sample()
. Traza los datos simulados en una subparcela.
- Dejemos que
- Repite la operación para el otro parámetro AR.
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: AR parameter = +0.9
plt.subplot(2,1,1)
ar1 = np.array([1, ____])
ma1 = np.array([1])
AR_object1 = ArmaProcess(____, ____)
simulated_data_1 = AR_object1.generate_sample(nsample=1000)
plt.plot(simulated_data_1)
# Plot 2: AR parameter = -0.9
plt.subplot(2,1,2)
ar2 = np.array([1, ____])
ma2 = np.array([1])
AR_object2 = ArmaProcess(____, ____)
simulated_data_2 = AR_object2.generate_sample(nsample=1000)
plt.plot(simulated_data_2)
plt.show()