Simulace řady ARIMA (1,1,0)

Modely ARIMA jsem přizpůsobil původní časové řadě a nejlepším modelem je ARIMA (1, 1,0). Nyní chci simulovat sérii z tohoto modelu. Napsal jsem jednoduchý model AR (1), ale nemohl jsem pochopit, jak upravit rozdíl v modelu ARI (1,1,0). Následující kód R pro řadu AR (1) je:

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)) 

Jak do výše uvedeného kódu zahrnu rozdílový výraz ARI (1,1). Kdokoli mi v tomto ohledu pomůže.

Odpověď

Pokud chcete simulovat ARIMA, můžete použít arima.sim v R, není třeba to dělat ručně. Tím se vygeneruje řada, kterou chcete.

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) 

Kód, jak toho dosáhnout, můžete zobrazit zadáním arima.sim v příkazovém řádku R. Alternativně, pokud to uděláte sami, funkce, kterou pravděpodobně hledáte, je diffinv. Vypočítá inverzi zpožděných rozdílů.

Pro rekurzivní sekvence R má pěknou funkci filter. Takže místo použití smyčky

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

můžete psát

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

Toto poskytne stejný výsledek jako arima.sim příklad výše:

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *