arima.errors 在转换序列(R 预测包)上可能存在的错误
Possible bug with arima.errors on transformed series (R forecast package)
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)
我是不是遗漏了什么,或者这是一个错误?
这是一个错误,现已在 http://github.com/robjhyndman/forecast/ 的 github 版本上修复。
请注意,以下将产生一个 0 的时间序列:
BoxCox(y, lambda=0.5) - (coef(fit)['xreg'] * xreg + coef(fit)['intercept'])
- arima.errors(fit)
也就是说,arima.errors
是在转换后的比例,而不是原始比例。
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)
我是不是遗漏了什么,或者这是一个错误?
这是一个错误,现已在 http://github.com/robjhyndman/forecast/ 的 github 版本上修复。
请注意,以下将产生一个 0 的时间序列:
BoxCox(y, lambda=0.5) - (coef(fit)['xreg'] * xreg + coef(fit)['intercept'])
- arima.errors(fit)
也就是说,arima.errors
是在转换后的比例,而不是原始比例。