ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Importe a classe ArmaProcess no módulo arima_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 e ma1, crie uma instância da classe ArmaProcess(ar,ma) chamada AR_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()
Editar e executar o código