更新:
事实证明,Arima函数有一个提供旧模型的参数:
adj_s <- Arima(series,model=arima_s)
两种方法的最终结果可能相同,但我建议使用第二种方法,因为它显然经过更彻底的测试。
**旧答案:**碰巧,我最近遇到了类似的问题。这是采用现有 arima 模型并将其应用于新数据的函数。
adjust.amodel <- function(object,extended) {
km.mod <- makeARIMA(object$model$phi,object$model$theta,object$model$Delta)
km.res <- KalmanRun(extended,km.mod)
object$x <- extended
object$residuals <- ts(km.res$resid,start=start(extended),end=end(extended),frequency=frequency(extended))
object$model <- km.mod
object
}
在您的情况下,您应该如何使用它:
series[31] <- 65
adj_arima_s <- adjust.amodel(arima_s,series)
simulate(adj_arima_s, nsim=50, future=TRUE)
但通常的警告适用。你需要有充分的理由这样做。如果数据发生变化,这意味着模型应该发生变化,所以你所做的就是忽略新信息并坚持旧模型,这可能是错误的。您可以将此与通过从蓝色空气中提取模型系数来生成模型拟合进行比较。尽管系数具有统计验证,但它来自旧数据,因此对结果的解释应考虑到这一点。