tsclean正在影响ts对象中的一个值

时间:2017-08-26 16:51:18

标签: r forecasting

在ts(时间序列)对象上使用“tsclean”函数时 - 只有一个值(2013年 - 12月)受到影响。不知道为什么。

正如您所见,“2013-Dec”值从29232变为51654.24。休息是不受影响的。

> myts
       Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov   Dec
2013       44568 48528 46404 47772 57600 46116 20016 36504 47052 50076 29232
2014 52956 40284 51264 45180 42552 54972 47376 25128 34776 44892 44280 41076
2015 45036 50796 49572 39710 41045 62729 44424 18000 41642 42661 38487 51590
2016 38702 44803 58228 47556 48492 56449 34925 16812 48630 46008 40140 62028
> ifelse(tsclean(myts)<0, myts, tsclean(myts))
          Jan      Feb      Mar      Apr      May      Jun      Jul      Aug      Sep      Oct      Nov      Dec
2013          44568.00 48528.00 46404.00 47772.00 57600.00 46116.00 20016.00 36504.00 47052.00 50076.00 51654.24
2014 52956.00 40284.00 51264.00 45180.00 42552.00 54972.00 47376.00 25128.00 34776.00 44892.00 44280.00 41076.00
2015 45036.00 50796.00 49572.00 39710.00 41045.00 62729.00 44424.00 18000.00 41642.00 42661.00 38487.00 51590.00
2016 38702.00 44803.00 58228.00 47556.00 48492.00 56449.00 34925.00 16812.00 48630.00 46008.00 40140.00 62028.00
> 

当我尝试将相同的值作为子集传递给tsclean时 - 它不会受到影响。

> window(myts, c(2013,12), c(2013,12))
       Dec
2013 29232

> tsclean(window(myts, c(2013,12), c(2013,12)))
       Dec
2013 29232


> ifelse(tsclean(window(myts, c(2013,12), c(2013,12)))<0, window(myts, c(2013,12), c(2013,12)), tsclean(window(myts, c(2013,12), c(2013,12))))
       Dec
2013 29232

1 个答案:

答案 0 :(得分:1)

tsclean函数返回季节性调整的时间序列,如有必要,从数据中删除季节性组件。看看每个月的最小值和最大值之间的差异,最大的差异在于12月,因为2013年12月的价值异常低,这就是功能调整这一部分的原因。 以下是R使用的函数:https://www.rdocumentation.org/packages/forecast/versions/8.1/topics/seasadj