Simular AR(1) Série temporal
Você simulará e plotará algumas séries temporais AR(1), cada uma com um parâmetro diferente, \(\small \phi\), usando o módulo arima_process
em statsmodels. Neste exercício, você analisará um modelo AR(1) com um grande \(\small \phi\) positivo e um grande \(\small \phi\) negativo, mas sinta-se à vontade para brincar com seus próprios parâmetros.
Há algumas convenções ao usar o módulo arima_process
que exigem algumas explicações. Primeiro, essas rotinas foram criadas de forma muito geral para lidar com os modelos AR e MA. Abordaremos os modelos MA a seguir, portanto, por enquanto, ignore a parte MA. Em segundo lugar, ao inserir os coeficientes, você deve incluir o coeficiente de atraso zero de 1, e o sinal dos outros coeficientes é oposto ao que temos usado (para ser consistente com a literatura de séries temporais no processamento de sinais). Por exemplo, para um processo AR(1) com \(\small \phi=0.9\), a matriz que representa os parâmetros AR seria ar = np.array([1, -0.9])
Este exercício faz parte do curso
Análise de séries temporais em Python
Instruções do exercício
Importe a classe
ArmaProcess
no móduloarima_process
.Trace os processos simulados em AR:
Deixe que
ar1
represente uma matriz dos parâmetros de AR [1, \(\small -\phi\)] conforme explicado acima. Por enquanto, a matriz de parâmetros MA,ma1
, conterá apenas o coeficiente de defasagem zero de um.Com os parâmetros
ar1
ema1
, crie uma instância da classeArmaProcess(ar,ma)
chamadaAR_object1
.Simule 1.000 pontos de dados do objeto que você acabou de criar,
AR_object1
, usando o método.generate_sample()
. Plote os dados simulados em um subplot.
Repita o procedimento para o outro parâmetro AR.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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()