[英]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
的列表。 對給出HW
的L
每個分量應用指數平滑。 然后繪制每個。 注意ts
對象不能直接表示Date
類,因此我們省略了X軸,並在pltHW
中pltHW
繪制了它。
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.