簡體   English   中英

多個時間序列數據的指數時間序列

[英]exponential time series for multiple time series data

我的數據有不同的起點和終點。

structure(list(item = c("Card", "Card", "Card", "Card", "Card", 
"Card", "Card", "Card", "battery", "battery", "battery", "battery", 
"battery", "laptop", "laptop", "laptop", "laptop", "laptop", 
"laptop", "laptop"), sales = c(20.4, 29, 26, 40, 35, 36, 28, 
41, 70, 75, 78, 99, 40, 100, 132, 123, 145, 125, 145, 124), Date = structure(c(17784, 
17791, 17798, 17805, 17812, 17819, 17826, 17833, 17608, 17615, 
17622, 17629, 17636, 17713, 17726, 17739, 17752, 17765, 17778, 
17791), class = "Date")), row.names = c(NA, -20L), class = "data.frame")

我試着做

ts_test <- ts(multiple_ts, frequency=52)

轉換為時間序列,但失敗了

structure(c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, 20.4, 29, 26, 40, 35, 36, 28, 41, 
70, 75, 78, 99, 40, 100, 132, 123, 145, 125, 145, 124, 17784, 
17791, 17798, 17805, 17812, 17819, 17826, 17833, 17608, 17615, 
17622, 17629, 17636, 17713, 17726, 17739, 17752, 17765, 17778, 
17791), .Dim = c(20L, 3L), .Dimnames = list(NULL, c("item", "sales", 
"Date")), .Tsp = c(1, 1.36538461538462, 52), class = c("mts", 
"ts", "matrix"))

有人可以幫助我如何將項目逐項轉換為時間序列,並將指數平滑應用於每個項目。 提前致謝!

將數據幀轉換為3列動物園對象z然后從z創建ts對象L的列表。 對給出HWL每個分量應用指數平滑。 然后繪制每個。 注意ts對象不能直接表示Date類,因此我們省略了X軸,並在pltHWpltHW繪制了它。

library(zoo)

z <- read.zoo(multiple_ts, index = "Date", split = "item")
L <- lapply(as.list(z), function(x) as.ts(na.omit(x)))
HW <- lapply(L, HoltWinters, beta = FALSE, gamma = FALSE)

# given HoltWinters object x get fitted values as zooreg object
fitHW <- function(x) {
  fitted <- fitted(x)
  zooreg(fitted[, 1], as.Date(start(fitted)), frequency = frequency(fit))
}

# plot
pltHW <- function(x, sub) {
  plot(x, sub = sub, xaxt = "n")
  fit <- fit(x)
  Axis(time(fit), side = 1)
  invisible(x)
}

par.old <- par(mfrow = c(3, 1))
junk <- Map(pltHW, HW, names(HW))
par(par.old)

屏幕截圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM