R 中带和不带 NA(ARIMA 和 Forecast 包)的时间序列预测

Time series prediction with and without NAs (ARIMA and Forecast package) in R

这是我关于堆栈溢出的第一个问题。

情况:我有 2 个时间序列。两个系列具有相同的值,但第二个系列在开始时有 5 个 NA。因此,第一个系列有 105 个观察值,第二个系列有 110 个观察值。我已经使用 Arima 函数分别为两个系列安装了 ARIMA(0,1,0)。然后我使用 forecast 包来预测未来的 10 步。

问题:尽管两个系列的 ARIMA 系数相同,但投影(10 步)似乎不同。我不确定为什么会这样。有没有人遇到过这个?非常感谢任何指导。

尝试过:我尝试设置种子,手动创建索引,并使用 auto.ARIMA 进行模型拟合。但是,none 的步骤帮助我消​​除了差异。

我添加了一张图片来向您展示我所看到的。请注意,我隐藏了系列的中间部分,以便您可以看到系列的开头和结尾。黄色突出显示的单元格是 'Forecast' 包的投影输出。从 R 中提取结果后,我手动添加了索引。

Time series projected and base in excel

Rates <- read.csv("Rates_for_ARIMA.csv")

set.seed(123)

#ARIMA with NA
Simple_Arima <- Arima(
            ts(Rates$Rates1),
            order = c(0,1,0),
            include.drift = TRUE)

fcasted_Arima <- forecast(Simple_Arima, h = 10)
fcasted_Arima$mean

#ARIMA Without NA

Rates2 <- as.data.frame(Rates$Rates2)
##Remove the final spaces from the CSV
Rates2 <- Rates2[-c(106,107,108,109,110),] 

Simple_Arima2 <- Arima(
  ts(Rates2),
  order = c(0,1,0),
  include.drift = TRUE)

fcasted_Arima2 <- forecast(Simple_Arima2, h = 10)
fcasted_Arima2$mean

The link to data is here, CSV format

您能否分享您的数据和代码,以便其他人可以查看它是否存在任何问题?

我试着想出一个例子,两个系列的结果都一样,一个包含 NA,一个不包含。

library(forecast)
library(xts)

set.seed(123)
ts1 <- arima.sim(model = list(0, 1, 0), n = 105)
ts2 <- ts(c(rep(NA, 5), ts1), start = 1)

fit1 <- forecast::Arima(ts1, order = c(0, 1, 0))
fit2 <- forecast::Arima(ts2, order = c(0, 1, 0))

pred1 <- forecast::forecast(fit1, 10)
pred2 <- forecast::forecast(fit2, 10)

forecast::autoplot(pred1)
forecast::autoplot(pred2)

> all.equal(as.numeric(pred1$mean), as.numeric(pred2$mean))
[1] TRUE