簡體   English   中英

每日時間序列預測,以及每周和每年的周期

[英]Daily timeseries forecasting, with weekly and annual cycle

我的目的是預測兩個不同渠道的每日注冊數量。

周的季節性非常強,尤其是在周末,並且還觀察到了年度影響。 此外,我有一些特殊活動日,與其他日子明顯不同。

首先,我在這兩個渠道上應用了TBATS模型。

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)

第一個頻道:

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

第二頻道:

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. 您對如何在特定活動日內建立此模型有任何建議嗎?

謝謝你們!

tbatsbats有時不穩定,而您的第二個模型則顯示了無限的預測。 已經有一些關於類似問題的錯誤報告。

無論如何,當您要使用事件信息時,最好構建帶有ARMA錯誤的諧波回歸模型。

例如,假設您的事件信息記錄為虛擬變量event1 然后可以按以下方式擬合模型:

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 0)。 我在數周和數年中都使用了2次諧波。 調整這些值以最小化模型的AICc。

該模型實際上與您所適合的TBATS模型非常相似,不同的是, lambda值是指定的而不是估計的,並且季節性隨時間是固定的而不是允許發展的。 優點是諧波回歸模型趨於更穩定,並允許包含協變量。

暫無
暫無

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

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