模拟季节性ARIMA模型的问题

jon*_*n c 6 r forecasting

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

simulate(model_temp)
Run Code Online (Sandbox Code Playgroud)

model_temparima()函数应用于我观察到的时间序列的结果在哪里,顺便提一下,我将模型指定为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) 
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么会这样(以及如何避免这个问题)?

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

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

感谢您的任何帮助,

乔纳森

Vin*_*ynd 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
Run Code Online (Sandbox Code Playgroud)

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

simulate(fit, future=FALSE) # Does not fail
Run Code Online (Sandbox Code Playgroud)

要从任意模型进行仿真,可以尝试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)
Run Code Online (Sandbox Code Playgroud)