我有每日销售数据我正在使用Rob Hyndman Sir在许多Post.my结果中显示的Tbat功能未显示增长趋势
我正在使用以下代码
mydata<-read.csv ("D:/data.csv",header=TRUE);
y <- msts(mydata$sales, seasonal.periods=c(7,365.25))
fit <- tbats(y)
fc <- forecast(fit)
plot(fc)
答案 0 :(得分:0)
由于我无法使用您的数据,以下是一个使用您的方法的示例:a)使用(某些种类)季节性模拟某些数据,以及b)预测下一个时期。
使用三个分量模拟数据:正弦函数,余弦函数和随机分量。
# 1. simulate some data:
set.seed(123) # set seed for reproducability
n <- 1000
# simulate the random components
sin.comp <- sin((1:n)/10)*10
cos.comp <- cos((1:n)/5)*5
rand.comp <- rnorm(n)
df <- data.frame(time = seq(from = as.Date("2000-01-01"), by = "day",
length.out = n),
value = sin.comp + cos.comp + rand.comp)
# plot the data
plot(x = df$time, y = df$value, main = "Seasonal Series", type = "l")
lines(x = df$time, y = sin.comp, col = "red")
lines(x = df$time, y = cos.comp, col = "blue")
lines(x = df$time, y = rand.comp, col = "green")
legend("bottomleft",
c("Series", "Sin", "Cos", "Rand"),
lty = c(1, 1),
col = c("black", "red", "blue", "green"), cex = 0.7)
y <- msts(df$value, seasonal.periods = c(7, 36)) # cut down to 36
fit <- tbats(y) #takes some time to calculate..
fc <- forecast(fit)
plot(fc)
如果这种方法对您不起作用,则意味着您的数据可能不太适合预测......
要检查您的数据,您可以使用str(mydata)
(在我的情况下为str(df)
),summary(mydata)
和head/tail(mydata)
来检查类型。
作为最后一个注释,您的dput
显然有点太长了...要么发布前{100}个条目dput(head(mydata, 100))
,要么将csv上传到主机并发布链接。
这是否指向正确的方向?