ARIMA (1,1,0) 시리즈의 시뮬레이션


11

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)를 포함시키는 방법 아무도 이런 점에서 나를 도와줍니다.

답변:


21

arima.simR에서 사용할 수있는 ARIMA를 시뮬레이션 하려면 직접 수행 할 필요가 없습니다. 원하는 시리즈가 생성됩니다.

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.simR 명령 행 에 입력하여이를 달성하는 방법의 코드를 볼 수 있습니다 . 또는 직접 수행하는 경우 찾고있는 기능은 diffinv입니다. 지연된 차이의 역수를 계산합니다.

재귀 시퀀스 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])
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.