나는 ARIMA 모델을 원래 시계열에 맞추었고 가장 좋은 모델은 ARIMA (1, 1,0). 이제 해당 모델에서 시리즈를 시뮬레이션하고 싶습니다. 간단한 AR (1) 모델을 작성했지만 ARI (1,1,0) 모델 내에서 차이를 조정하는 방법을 이해할 수 없습니다. AR (1) 시리즈에 대한 다음 R 코드는 다음과 같습니다.
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))
위 코드에 ARI (1,1)라는 차이점을 어떻게 포함시킬 수 있습니까? 누구든지이 점에서 도움이됩니다.
답변
ARIMA를 시뮬레이션하려는 경우 R에서 arima.sim
를 사용할 수 있습니다. 직접 할 필요가 없습니다. 이렇게하면 원하는 시리즈가 생성됩니다.
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)
arima.sim
를 입력합니다. 또는 직접 수행하는 경우 아마도 찾고있는 함수는 diffinv
입니다. 지연된 차이의 역을 계산합니다.
For 재귀 시퀀스 R
에는 멋진 기능 filter
이 있습니다. 따라서 루프를 사용하는 대신
z <- rep(NA,100) z[1] <- 4.1 for (i in 2:100) z[i]=cons+phi*z[i-1]+e[i]
작성할 수 있습니다.
filter(c(4.1,2.1+e),filter=-0.7048,method="recursive")
위의 arima.sim
예와 동일한 결과를 제공합니다.
diffinv(filter(c(4.1,2.1+e),filter=-0.7048,method="recursive")[-1])