Simulação da série ARIMA (1,1,0)

Ajustei os modelos ARIMA à série temporal original e o melhor modelo é ARIMA (1, 1,0). Agora quero simular a série desse modelo. Escrevi o modelo AR (1) simples, mas não consegui entender como ajustar a diferença dentro do modelo ARI (1,1,0). O seguinte código R para a série AR (1) é:

phi= -0.7048 z=rep(0,100) e=rnorm(n=100,0,0.345) cons=2.1 z[1]=4.1 for (i in 2:100) z[i]=cons+phi*z[i-1]+e[i] plot(ts(Y)) 

Como faço para incluir o termo de diferença ARI (1,1) no código acima. Qualquer um pode me ajudar nesse sentido.

Resposta

Se você deseja simular ARIMA, pode usar arima.sim em R, não há necessidade de fazer isso manualmente. Isso irá gerar a série que você deseja.

e <- rnorm(100,0,0.345) arima.sim(n=100,model=list(ar=-0.7048,order=c(1,1,0)),start.innov=4.1,n.start=1,innov=2.1+e) 

Você pode ver o código de como isso é feito digitando arima.sim na linha de comando R. Alternativamente, se você mesmo fizer isso, a função que você provavelmente está procurando é diffinv. Ela calcula o inverso das diferenças defasadas.

Para sequências recursivas R tem uma função interessante filter. Então, em vez de usar loop

z <- rep(NA,100) z[1] <- 4.1 for (i in 2:100) z[i]=cons+phi*z[i-1]+e[i] 

você pode escrever

filter(c(4.1,2.1+e),filter=-0.7048,method="recursive") 

Isso dará o resultado idêntico ao arima.sim exemplo acima:

diffinv(filter(c(4.1,2.1+e),filter=-0.7048,method="recursive")[-1]) 

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *