R 中的 ARIMA 仅在训练集中
ARIMA in R only in train set
我正在尝试预测 600 次观察的时间序列的最后 12 个月(因此训练将是 1 到 588,测试将是 589 到 600)。我已经有了这些数据,但我想进行预测以获得一些误差估计。所以我用我所有的数据构建了 ARIMA 模型,但过去 12 个月是这样的:
st2 <-ts(st[1:588], start = 1965, frequency = 12)
modelst2 <- arima(st2,order = c(0,1,1),seasonal = list(order = c(0,0,2)))
我得到了这个 ARIMA 系数:
Call:
arima(x = st2, order = c(0, 1, 1), seasonal = list(order = c(0, 0, 2)))
Coefficients:
ma1 sma1 sma2
0.1067 0.1732 -0.0243
s.e. 0.0332 0.0427 0.0436
sigma^2 estimated as 4.031: log likelihood = -1242.29, aic = 2492.58
但后来我做了这个修改以“减少”代码的长度:
model <- arima(st[1:588], order=c(0,1,1), seasonal=list(order=c(0,0,2)))
令我惊讶的是 ARIMA 系数变成了这样:
Call:
arima(x = ex5[1:588], order = c(0, 1, 1), seasonal = list(order = c(0, 0, 2)))
Coefficients:
ma1 sma1 sma2
0.1699 -0.0906 0.3022
s.e. 0.1187 0.1209 0.0457
sigma^2 estimated as 3.78: log likelihood = -1223.32, aic = 2454.63
如果我使用完全相同的数据,为什么我会得到不同的系数??
谢谢!:)
通过“减少代码的长度”,您还会丢失有关在时间序列中指定的 frequency
的信息。您还可以在 arima
函数中设置 period
,这应该会产生相同的结果。
model <- arima(st[1:588], order=c(0,1,1), seasonal=list(order=c(0,0,2), period = 12))
我正在尝试预测 600 次观察的时间序列的最后 12 个月(因此训练将是 1 到 588,测试将是 589 到 600)。我已经有了这些数据,但我想进行预测以获得一些误差估计。所以我用我所有的数据构建了 ARIMA 模型,但过去 12 个月是这样的:
st2 <-ts(st[1:588], start = 1965, frequency = 12)
modelst2 <- arima(st2,order = c(0,1,1),seasonal = list(order = c(0,0,2)))
我得到了这个 ARIMA 系数:
Call:
arima(x = st2, order = c(0, 1, 1), seasonal = list(order = c(0, 0, 2)))
Coefficients:
ma1 sma1 sma2
0.1067 0.1732 -0.0243
s.e. 0.0332 0.0427 0.0436
sigma^2 estimated as 4.031: log likelihood = -1242.29, aic = 2492.58
但后来我做了这个修改以“减少”代码的长度:
model <- arima(st[1:588], order=c(0,1,1), seasonal=list(order=c(0,0,2)))
令我惊讶的是 ARIMA 系数变成了这样:
Call:
arima(x = ex5[1:588], order = c(0, 1, 1), seasonal = list(order = c(0, 0, 2)))
Coefficients:
ma1 sma1 sma2
0.1699 -0.0906 0.3022
s.e. 0.1187 0.1209 0.0457
sigma^2 estimated as 3.78: log likelihood = -1223.32, aic = 2454.63
如果我使用完全相同的数据,为什么我会得到不同的系数?? 谢谢!:)
通过“减少代码的长度”,您还会丢失有关在时间序列中指定的 frequency
的信息。您还可以在 arima
函数中设置 period
,这应该会产生相同的结果。
model <- arima(st[1:588], order=c(0,1,1), seasonal=list(order=c(0,0,2), period = 12))