繁体   English   中英

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

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

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

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

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

试过:我尝试设置种子,手动创建索引,并使用 auto.ARIMA 进行 model 拟合。 但是,这些步骤都没有帮助我调和差异。

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

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

数据链接在这里,CSV格式

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

我试图提出一个例子,并为两个系列得到了相同的结果,一个包含 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM