似乎arima.errors()忽略了可能已包含在模型中的任何Box-Cox变换。这是一个简单的例子。
library(forecast)
set.seed(1)
xreg <- ts(4 + rnorm(150))
transformed <- 2 + 0.4 * xreg + arima.sim(list(ar=0.6, ma=c(-0.2, 0.3)), n=150,
n.start=50)
y <- InvBoxCox(transformed, lambda=0.5)
fit <- auto.arima(y, xreg=xreg, lambda=0.5, stepwise=F, approx=F)
特别是,这似乎应该产生0的时间序列:
InvBoxCox(BoxCox(y, lambda=0.5) - (coef(fit)['xreg'] * xreg + coef(fit)['intercept']),
lambda=0.5) - arima.errors(fit)
但这不应该:
y - (coef(fit)['xreg'] * xreg + coef(fit)['intercept']) - arima.errors(fit)
我错过了什么,或者这是一个错误?
答案 0 :(得分:0)
这是一个错误,现已在http://github.com/robjhyndman/forecast/的github版本上修复。
请注意,以下内容将生成0的时间序列:
BoxCox(y, lambda=0.5) - (coef(fit)['xreg'] * xreg + coef(fit)['intercept'])
- arima.errors(fit)
也就是说,arima.errors
在变换后的刻度上,而不是原始刻度。