模拟季节性ARIMA模型的问题

时间:2012-03-05 02:46:46

标签: r forecasting

我试图通过以下命令使用R中的预测包从季节性arima模型生成模拟:

simulate(model_temp)

其中model_temp是将arima()函数应用于我观察到的时间序列的结果,顺便提一下,我将模型指定为ARIMA(2,1,2)(0 ,1,2)[12]模型。

然而,当我尝试这个时,我收到以下错误:

Error in diffinv.vector(x, lag, differences, xi) :
  NA/NaN/Inf in foreign function call (arg 1) 

有人可以解释为什么会出现这种情况(以及如何避免这个问题)?

我应该进一步补充一点,我知道我应用的模型和model_temp的拟合模型不是生成该系列的模型,但是,我仍然希望从该模型生成模拟(或任何其他模型)。

最后,是否可以通过指定ar,d,ma,sar,sd,sma和sigma参数从而无需首先创建正确ARIMA类型的对象来从季节性ARIMA模型生成模拟?

感谢您的帮助,

乔纳森

1 个答案:

答案 0 :(得分:5)

如果您缺少值,则会发生这种情况 如下例所示。

library(forecast)
x <- WWWusage
x[10] <- NA
fit <- Arima(x,c(3,1,0), seasonal=list(order=c(0,1,1),period=12))
simulate(fit) # Fails

默认参数模拟条件的未来值 对数据,如果缺少某些值则失败。 如果您需要不相关的样本,可以添加future=FALSE

simulate(fit, future=FALSE) # Does not fail

要从任意模型进行模拟,您可以尝试 构建一个最小的Arima对象, 只需要所需的数据。

m <- list(
  arma=c(3,0,0,1,12,1,1),
  model=list(
    phi=c(1.17, -0.71, 0.39),
    theta=c(0,0,0,0,0,0,0,0,0,0,0,-.79)
  ),
  sigma2=11,
  x=NA
)
simulate.Arima(m, nsim=30, future=FALSE)