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
Instruções do exercício
Importe a classe
ArmaProcess
no móduloarima_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
ema1
, crie uma instância da classeArmaProcess(ar,ma)
chamadaMA_object1
.Simule 1.000 pontos de dados do objeto que você acabou de criar,
MA_object
1, 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()