我试图通过以下命令使用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模型生成模拟?
感谢您的帮助,
乔纳森
答案 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)