预测多个季节性功能不起作用

时间:2015-12-17 13:57:14

标签: r statistics data-analysis forecasting forecastr

my new result

我有每日销售数据我正在使用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)

1 个答案:

答案 0 :(得分:0)

由于我无法使用您的数据,以下是一个使用您的方法的示例:a)使用(某些种类)季节性模拟某些数据,以及b)预测下一个时期。

A)模拟数据

使用三个分量模拟数据:正弦函数,余弦函数和随机分量。

# 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)

Seasonal Series

B)预测系列

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)

Forecast

附加说明

如果这种方法对您不起作用,则意味着您的数据可能不太适合预测......

要检查您的数据,您可以使用str(mydata)(在我的情况下为str(df)),summary(mydata)head/tail(mydata)来检查类型。

作为最后一个注释,您的dput显然有点太长了...要么发布前{100}个条目dput(head(mydata, 100)),要么将csv上传到主机并发布链接。

这是否指向正确的方向?