Разложение временных рядов STL на объект XTS R - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть объект xts с именем ts_group. Я sh создаю график декомпозиции на объекте xts, показывающий графики трендов, сезонности, цикличности и остаточных значений. Однако я не могу этого сделать. Пожалуйста помоги. Прочитайте несколько статей.

head(ts_group,2)
           store item total_sales   total_items
2013-01-01     1    1         328     23
2013-01-01     1    2         911     24

Мне нужны графики разложения для столбцов продаж и товаров. Также мне нужно, чтобы ось х имела время в соответствии с 2013-янв. Et c. а не период времени 1,2,3 и т. д. c. Этот вопрос содержал код для этого на обычном объекте временных рядов. Но я не могу выполнить репликацию в моем наборе данных, потому что мой объект - это объект xts

decompose.xts <-
function (x, type = c("additive", "multiplicative"), filter = NULL) 
{
  dts <- decompose(as.ts(x), type, filter)
  dts$x <- .xts(dts$x, .index(x))
  dts$seasonal <- .xts(dts$seasonal, .index(x))
  dts$trend <- .xts(dts$trend, .index(x))
  dts$random <- .xts(dts$random, .index(x))

  with(dts,
  structure(list(x = x, seasonal = seasonal, trend = trend,
    random = if (type == "additive") x - seasonal - trend else x/seasonal/trend, 
    figure = figure, type = type), class = "decomposed.xts"))
}

Код для построения графика, который принимает значения из набора данных вместо периодов времени один, 2 et c.

plot.decomposed.xts <-
function(x, ...)
{
  xx <- x$x
  if (is.null(xx))
    xx <- with(x,
      if (type == "additive") random + trend + seasonal
      else random * trend * seasonal)
  p <- cbind(observed = xx, trend = x$trend, seasonal = x$seasonal, random = x$random)
  plot(p, main = paste("Decomposition of", x$type, "time series"), multi.panel = 4,
       yaxis.same = FALSE, major.ticks = "days", grid.ticks.on = "days", ...)
}

Функции вызова:

dex <- decompose.xts(ts_group)

Error in if (frequency > 1 && abs(frequency - round(frequency)) < ts.eps) frequency <- round(frequency) : 
  missing value where TRUE/FALSE needed 

Код взят из вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...