R Arima 预测均值反向转换

R Arima forecast mean back-transformation

我正在估计一个对数线性 Arima 模型,我想使用 https://www.r-bloggers.com/forecasting-from-log-linear-regressions/ 中的精确方法反向转换拟合值。我用四种方法计算残差标准误差,得到四种不同的答案。有人可以解释一下我应该使用哪一个是正确的吗?

library(forecast)

model <- Arima(log(AirPassengers), order = c(0, 1, 3), include.constant = TRUE, lambda = NULL)

resids <- residuals(model)

sqrt(mean(resids^2))

sqrt(var(resids))

sum(resids^2) / (length(resids) - 4)

model$sigma2

你想计算的是我认为的残差标准误差(RSE)。因此,您必须计算残差平方和 (RSS) 并将其除以 "n-m",其中 "n" 是残差的数量,"m" 是估计参数的数量。 model$sigma2 给你正确答案。当您自己计算 RSE 时,您只是错误地使用了“4”而不是“5” sum(resids^2) / (length(resids) - 4)。 如果将 RSS 除以 (length(resids)-5),您将得到与 model$sigma2 相同的结果。您估计了 3 个 MA 参数,1 个常量和 1 个漂移参数,总共 5 个。

这是解决方案sum(resids^2) / (length(resids) - 5)

使用sqrt(mean(resids^2))你只是计算残差平方的均值的平方根,这显然接近RSE,但使用了错误的标准化导致它与sqrt(sum(resids^2) / (length(resids)))相同。

使用 sqrt(var(resids)) 计算残差的标准差 (sd(resids)) 为 sqrt(sum((resids-mean(resids))^2)/(length(resids)-1))。这是残差的标准差,而不是模型的残差标准差。请注意,R 通过除以“...-1”来使用经验方差,而不是除以“...-1”的理论方差。

如果您需要进一步的解释,请查看文件中第 66 页左右的 "An introduction to statistical learning",在 pdf 中为第 75 页。