【问题标题】:Issues with simulating a seasonal ARIMA model模拟季节性 ARIMA 模型的问题
【发布时间】:2012-03-05 02:46:45
【问题描述】:

我正在尝试通过以下命令使用 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 模型生成模拟?

感谢您的帮助,

乔纳森

【问题讨论】:

    标签: r forecasting


    【解决方案1】:

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

    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)
    

    【讨论】:

    • 使用simulatearima.sim有区别吗?
    • @tyranitar:主要区别在于future 参数:simulate 可以根据已经观察到的数据生成数据,即从数据的延续中抽取样本。但是如果没有观察到的数据,他们应该给出相同的结果:simulate 只是调用arima.sim
    猜你喜欢
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2018-08-24
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    相关资源
    最近更新 更多