首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每日时间序列预测,每周和年度周期

每日时间序列预测,每周和年度周期
EN

Stack Overflow用户
提问于 2016-02-26 10:50:25
回答 1查看 612关注 0票数 2

我的目标是预测每日在两个不同渠道登记的人数。

周的季节性很强,尤其是周末,而且每年都会受到影响。此外,我有几个特别的活动日,这与其他日子有很大的不同。

首先,我在这两个通道上应用了TBATS模型。

代码语言:javascript
复制
x.msts <- msts(Channel1_reg,seasonal.periods=c(7,365.25))
# fit model
fit <- tbats(x.msts)
fit
plot(fit)
forecast_channel1 <- forecast(fit,h=30)

第一频道:

代码语言:javascript
复制
TBATS(0, {2,3}, -, {<7,3>, <365.25,2>})

Call: tbats(y = x.msts)

Parameters
  Lambda: 0
  Alpha: 0.0001804516
  Gamma-1 Values: -1.517954e-05 1.004701e-05
  Gamma-2 Values: -3.059654e-06 -2.796211e-05
  AR coefficients: 0.249944 0.544593
  MA coefficients: 0.215696 -0.361379 -0.21082

第二频道:

代码语言:javascript
复制
BATS(0, {2,2}, 0.929, -)

Call: tbats(y = y.msts)

Parameters
  Lambda: 0
  Alpha: 0.1652762
  Beta: -0.008057904
  Damping Parameter: 0.928972
  AR coefficients: -0.586163 -0.676921
  MA coefficients: 0.924758 0.743675

如果我预测第二个频道,我只能得到空白值,而不是任何预测。

  1. 你能帮帮忙吗?为什么会这样?
  2. 你有什么建议,如何在特定的事件天建立这个模型吗?

谢谢大家!

EN

回答 1

Stack Overflow用户

发布于 2016-02-28 22:32:43

tbatsbats有时是不稳定的,您的第二个模型显示了无限的预测。已经有一些关于类似问题的错误报告。

在任何情况下,由于您希望使用事件信息,您将更好地构建带有ARMA错误的调和回归模型。

例如,假设您的事件信息被记录为虚拟变量event1。然后,可以按以下方式对模型进行拟合:

代码语言:javascript
复制
harmonics <- fourier(x.msts, K=c(2,2))
fit1 <- auto.arima(x.msts, lambda=0, 
   xreg=cbind(harmonics,event1), seasonal=FALSE)
f1 <- forecast(fit1, 
   xreg=cbind(fourierf(x.msts, K=c(2,2), h=200), rep(0,200)))

这假设事件不会在接下来的200天内发生(因此是200天)。我使用2级谐波已经有几周和几年了。调整这些以最小化模型的AICc。

这个模型实际上非常类似于您正在拟合的TBATS模型,只不过lambda值是指定的,而不是估计的,季节性是随着时间而固定的,而不是允许演化的。其优点是谐波回归模型趋于更稳定,并允许包含协变量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35649734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档