0

我无法在 R 包中预测如何计算预测::croston 和 tsintermittent::crost。我了解 croston 的概念,例如此处发布的示例 (www.robjhyndman.com/papers/MASE.xls),但 R 包的输出会产生非常不同的结果。

我在以下代码中使用了 Excel 示例(由 R. Hyndman 编写)中的值:

library (tsintermittent)
library (forecast)
x=c(0,1,0,11,0,0,0,0,2,0,6,3,0,0,0,0,0,7,0,0,0,0) # from Hyndman Excel example
x_crost = crost(x,h=5, w=0.1, init = c(1,1) ) # from the tsintermittent package
x_croston=croston(x,h=5, alpha = 0.1) # from the forecast package
x_croston$fitted
y=data.frame(x,x_crost$frc.in,x_croston$fitted)
y
plot(x_croston)
lines(x_croston$fitted, col="blue")
lines(x_crost$frc.in,col="red")
x_crost$initial
x_crost$frc.out # forecast
x_croston$mean # forecast

Excel 示例的预测值为 1.36,crost 给出 1.58,croston 给出 1.15。为什么他们不一样?另请注意,样本内(拟合)值非常不同。

4

1 回答 1

3

对于 tsintermittent 包中的crost,您需要第二个标志来不优化初始值:init.opt=FALSE,所以命令应该是:

crost(x,w=0.1,init=c(2,2),init.opt=FALSE)

仅设置 init=c(2,2) 只会设置优化器工作的初始值。另请注意,Rob Hyndman 在他的示例中的时间序列在开始时有两个附加值(请参见 B 列),因此 x 应该是:

x=c(0,2,0,1,0,11,0,0,0,0,2,0,6,3,0,0,0,0,0,7,0,0,0,0)

运行这两个命令会产生与 excel 示例中相同的值。

于 2016-04-13T16:35:04.647 回答