Answers:
如果要模拟ARIMA,可以arima.sim
在R中使用,则无需手动进行。这将生成您想要的系列。
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
在R命令行中键入代码来查看如何实现此目的。另外,如果您自己执行此操作,则可能正在查找的功能是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])