ComeçarComece de graça

Simular MA(1) Série temporal

Você simulará e plotará algumas séries temporais de MA(1), cada uma com um parâmetro diferente, \(\small \theta\), usando o módulo arima_process em statsmodels, exatamente como você fez no último capítulo para os modelos AR(1). Você verá um modelo MA(1) com um grande \(\small \theta\) positivo e um grande \(\small \theta\) negativo.

Como no último capítulo, ao inserir os coeficientes, você deve incluir o coeficiente de atraso zero de 1, mas, diferentemente do último capítulo sobre modelos AR, o sinal dos coeficientes MA é o esperado. Por exemplo, para um processo MA(1) com \(\small \theta=-0.9\), a matriz que representa os parâmetros MA seria ma = 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 de MA(1)

    • Deixe que ma1 represente uma matriz dos parâmetros de MA [1, \(\small \theta\)] conforme explicado acima. A matriz de parâmetros AR 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 MA_object1.

    • Simule 1.000 pontos de dados do objeto que você acabou de criar, MA_object1, usando o método .generate_sample(). Plote os dados simulados em um subplot.

  • Repita o procedimento para o outro parâmetro MA.

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: MA parameter = -0.9
plt.subplot(2,1,1)
ar1 = np.array([1])
ma1 = np.array([1, ____])
MA_object1 = ArmaProcess(____, ____)
simulated_data_1 = MA_object1.generate_sample(nsample=1000)
plt.plot(simulated_data_1)

# Plot 2: MA parameter = +0.9
plt.subplot(2,1,2)
ar2 = np.array([1])
ma2 = np.array([1, ____])
MA_object2 = ArmaProcess(____, ____)
simulated_data_2 = MA_object2.generate_sample(nsample=1000)
plt.plot(simulated_data_2)

plt.show()
Editar e executar o código