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