ComenzarEmpieza gratis

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

Ver curso

Instrucciones de ejercicio

  • Importa la clase ArmaProcess en el módulo arima_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 y ma1, crea una instancia de la clase ArmaProcess(ar,ma) llamada AR_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.
  • 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()
Editar y ejecutar código