2016-04-11 3 views
0

J'essaie de comprendre les spécificités de la façon dont "crost {tsintermittent}" et "croston {forecast}" calculent les valeurs dans l'échantillon (formation). Ils semblent donner des résultats similaires mais différents. (Voir l'exemple de code ci-dessous) Je ne suis pas sûr si les deux calculs sont différents ou si je ne compare pas les mêmes résultats (chaque paquet utilise une terminologie différente).Comment calcule-t-on la méthode de Croston

library (tsintermittent) 
library (forecast) 
# create an intermittent time-series 
x = c(5,5,5,5,5,5,6,8,0,8,0,8,0,0,4,0,0,6,7,0,0,0,9,0,11,0,0) 
x_crost = crost(x,h=5) # from the tsintermittent package 
x_croston=croston(x,h=5) # from the forecast package 
x_croston$fitted 
y=data.frame(x,x_crost$frc.in,x_croston$fitted) 
y # viex_croston results 
plot(x_croston) 
lines(x_croston$fitted, col="red") 
lines(x_crost$frc.in,col="blue") 

Répondre

1

L'un utilise des paramètres optimisés, l'autre non. forecast::croston adapte deux modèles ETS (A, N, N) aux séries de demandes non nulles et les temps entre demandes non nulles, avec un paramètre de lissage commun (alpha=0.1 est la valeur par défaut), et les états initiaux sont définis sur les premières valeurs de chaque séries. tsintermittent::crost correspond aux deux mêmes modèles, mais optimise la valeur du paramètre de lissage et des valeurs initiales (en utilisant le taux absolu moyen par défaut).

+0

Merci Rob. En fait, je viens de découvrir la même chose avec mes tests. J'étais sur le point de répondre à ma propre question, mais tu m'as battu. Vous avez également répondu à ma question suivante sur les raisons pour lesquelles les valeurs initiales sont différentes. Merci encore! – Paul