EmpezarEmpieza gratis

Simula series temporales AR(1)

Vas a simular y representar varias series temporales AR(1), cada una con un parámetro distinto, (\small \phi), utilizando el módulo arima_process de statsmodels. En este ejercicio, verás un modelo AR(1) con un (\small \phi) grande positivo y otro grande negativo, pero si quieres, prueba con tus propios parámetros.

Hay algunas convenciones al usar el módulo arima_process que conviene explicar. Primero, estas rutinas se diseñaron de forma muy general para manejar tanto modelos AR como MA. Veremos los modelos MA a continuación, así que por ahora ignora la parte MA. Segundo, al introducir los coeficientes, debes incluir el coeficiente de retardo cero igual a 1, y el signo del resto de coeficientes es el opuesto al que hemos estado usando (para ser coherentes con la literatura de series temporales en procesado de señal). Por ejemplo, para un proceso AR(1) con (\small \phi=0.9), el array 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 del ejercicio

  • Importa la clase ArmaProcess del módulo arima_process.
  • Representa los procesos AR simulados:
    • Deja que ar1 sea un array con los parámetros AR [1, \(\small -\phi\)], como se explicó arriba. Por ahora, el array de parámetros MA, ma1, contendrá solo el coeficiente de retardo cero igual a 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 a partir del objeto que acabas de crear, AR_object1, usando el método .generate_sample(). Representa los datos simulados en un subgráfico.
  • Repite el proceso para el otro parámetro AR.

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: 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