R:反转时间序列对象中的数据

我想出了一个用时间序列来倒退(即预测过去)的方法。 现在我只是在编程中苦苦挣扎。

我想扭转时间序列数据,以便我可以预测过去。 我该怎么做呢?

说原来的时间序列对象是这样的:

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2008 116 99 115 101 112 120 120 110 143 136 147 142 2009 117 114 133 134 139 147 147 131 125 143 136 129 

我希望看起来像这样的“倒退”:

  Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2008 129 136 143 125 131 147 147 139 134 133 114 117 2009 142 147 136 143 110 120 120 112 101 115 99 116 

请注意,我并没有忘记改变这些年份 – 我基本上是对数据进行镜像/反转,保持数年,然后进行预测。

我希望这可以在R? 还是应该出口,并以某种方式在Excel中执行?

尝试这个:

 tt <- ts(1:24, start = 2008, freq = 12) tt[] <- rev(tt) 

添加。 这也可以,不会修改tt

 replace(tt, TRUE, rev(tt)) 

你可以将matrix强制为一个向量,将其逆转,然后再将其作为matrix。 这是一个例子:

 mat <- matrix(seq(24),nrow=2,byrow=TRUE) > mat [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [1,] 1 2 3 4 5 6 7 8 9 10 11 12 [2,] 13 14 15 16 17 18 19 20 21 22 23 24 > matrix( rev(mat), nrow=nrow(mat) ) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [1,] 24 23 22 21 20 19 18 17 16 15 14 13 [2,] 12 11 10 9 8 7 6 5 4 3 2 1 

我在http://www.r-bloggers.com/backcasting-in-r/find了Hyndman的这篇文章,基本上是在他的解决scheme中粘贴,在我看来,这个解决scheme可以为你提供一个完整的答案&#x3002;

 library(forecast) x <- WWWusage h <- 20 f <- frequency(x) # Reverse time revx <- ts(rev(x), frequency=f) # Forecast fc <- forecast(auto.arima(revx), h) plot(fc) # Reverse time again fc$mean <- ts(rev(fc$mean),end=tsp(x)[1] - 1/f, frequency=f) fc$upper <- fc$upper[h:1,] fc$lower <- fc$lower[h:1,] fc$x <- x # Plot result plot(fc, xlim=c(tsp(x)[1]-h/f, tsp(x)[2]))