我目前正在使用多种算法来预测R中具有间歇历史的时间序列,theta算法是其中之一。我正在使用R中的thetaf
函数。已附上以下代码:
a <- c(0,0,0,0,0,0,0,0,0,31,1682.19888717173,1682.19888717173,138.046666666667,286,192.716666666667,0.9,0.206666666666667,0,0,0,0,96,1774.94938783069,1671.25,141.3,196,25,0.0466666666666667,9.02666666666667,3.08666666666667,6,1.06,1,1.34666666666667,1862.04,1922.55311169419,18,267,22,44,761.11,29,13,1129.67333333333,119.586666666667,34,1429,1284.22333333333);
flag <- c(0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
b <- as.data.frame(a)
b$Flag=flag
c <- subset(b,cumsum(b$Flag)==1)
c <- subset(c,cumsum(c$a)>0)
d <- ts(c$a, frequency = 12)
ThetaF <- thetaf(d, h = 24)$mean
该模型对11月和12月的预测非常高。历史上11月和12月的数据点很高(约1.5K),但预测远未达到,11月和12月的预测值超过400 K。如有帮助,将不胜感激。提前感谢!
1条答案
按热度按时间o8x7eapl1#
下面是theta方法如何处理这样的季节性数据。
让我们来看看这个特定的序列会发生什么。首先,看看分解。
请注意季节性分量的值变化非常大(二月/三月高于5,但其他几个月接近零)。
季节性分量应用于季节性调整数据。由于季节性分量奇怪,季节性调整数据在去年有一个奇怪的跳跃,这夸大了预测。奇怪的跳跃也夸大了拟合趋势线的斜率,使季节性调整的预测更糟。然后你重新季节性调整结果,你会得到这个。
底线是theta方法对极端的季节性模式并不特别稳健。你最好使用不同的模型族。这里有一个使用ETS模型的例子,它对这个数据集非常有效。
创建于2023年1月4日,使用reprex v2.0.2