0

我正在使用 R 中的预测包来实现 ARIMA 模型。我在拟合模型和产生的残差时遇到问题。

这是一个适合训练数据的 ARIMA 模型:

m1_shattuck_train <- Arima(training_set_shattuck, order = c(0,1,1), seasonal = list(order = c(0,1,1), period = 7))

然后在我在测试集上测试了几个模型之后,假设上面的模型表现最好,所以我将它拟合到整个数据上:(time_shattuck 是整个数据集)

m1_shattuck_full <- Arima(time_shattuck, model = m1_shattuck_train)

这样做时,我得到的 Ljung-Box 检验的 p 值极低,表明残差中的序列相关性,这在 ACF 图中根本不明显。

然而,如果我这样做:

m1_shattuck_full <- Arima(time_shattuck, order = c(0,1,1), seasonal = list(order = c(0,1,1), period = 7))

我得到不同的预测数字,p 值变高。在这两种情况下都应用了相同的 ARIMA 模型。有谁知道为什么结果不同?谢谢

4

1 回答 1

1

您正在拟合相同的模型,但每个拟合模型的系数会有所不同,因为它们的输入数据不同。我没有你的数据,所以我将使用AirPassengers数据集。

library(forecast)

data("AirPassengers")

fit_same_model <- function(x) {
  Arima(x, order = c(0, 1, 1), seasonal = list(order = c(0, 1, 1), period = 12))
}

fit_same_model(AirPassengers)
# Series: x 
# ARIMA(0,1,1)(0,1,1)[12] 
# 
# Coefficients:
#           ma1     sma1
#       -0.3087  -0.1074
# s.e.   0.0890   0.0828
# 
# sigma^2 estimated as 137.5:  log likelihood=-507.5
# AIC=1021   AICc=1021.19   BIC=1029.63

training <- window(AirPassengers, end = c(1955, 12))
fit_same_model(training)
# Series: x 
# ARIMA(0,1,1)(0,1,1)[12] 
# 
# Coefficients:
#           ma1     sma1
#       -0.2436  -0.2393
# s.e.   0.1308   0.1161
# 
# sigma^2 estimated as 97.62:  log likelihood=-262.74
# AIC=531.48   AICc=531.84   BIC=538.27

两种模型都是 ARIMA(0, 1, 1)(0, 1, 1)[12],但您可以看到它们在拟合方式上的差异。

于 2018-01-31T17:15:28.687 回答