R

如何解釋 TBATS 模型結果和模型診斷

  • July 5, 2016

我有一個半小時​​的需求數據,這是一個多季節的時間序列。我在 Rtbats中的forecastpackage 中使用,得到如下結果:

TBATS(1, {5,4}, 0.838, {<48,6>, <336,6>, <17520,5>}) 

是不是表示序列不一定要用Box-Cox變換,誤差項是ARMA(5, 4),用6、6、5項來解釋季節性?阻尼參數 0.8383 是什麼意思,它也用於轉換嗎?

下面是模型的分解圖:

在此處輸入圖像描述

我想知道該模型的作用levelslope說明。“斜率”說明了趨勢,但是呢level?如何為session 1和獲得更清晰的圖session 2,它們分別是每日和每週的季節性。

我還知道如何進行模型診斷tbats以評估模型,除了 RMSE 值。正常的方法是檢查錯誤是否是白噪聲,但這裡的錯誤應該是ARMA系列。我繪製了錯誤的“acf”和“pacf”,我認為它看起來不像 ARMA(5,4)。這是否意味著我的模型不好?

acf(resid(model1),lag.max = 1000)
pacf(resid(model1),lag.max=1000)

在此處輸入圖像描述

最後一個問題,RMSE是使用擬合值和真值計算的。如果我使用預測值fc1.week$mean和真實值來評估模型怎麼辦,它仍然被稱為RMSE?或者,這個還有別的名字嗎?

fc1.week <-forecast(model1,h=48*7)
fc1.week.demand<-fc1.week$mean

在 的幫助頁面中?tbats,我們發現:

擬合模型指定為 TBATS(omega, p,q, phi, …,),其中 omega 是 Box-Cox 參數,phi 是阻尼參數;誤差被建模為 ARMA(p,q) 過程,m1,…,mJ 列出了模型中使用的季節性週期,k1,…,kJ 是用於每個季節性的傅里葉項的相應數量。

所以:

  • omega = 1,這意味著確實沒有Box-Cox 變換
  • phi = 0.838,意味著趨勢將受到抑制。(說實話,我不知道有沒有或者對應於總阻尼。最好玩一點模擬數據。)請參閱use.damped.trend參數tbats()
  • 您有三個不同的季節週期,一個長度為 48 = 242(每天),一個長度為 336 = 7242(每週),一個長度為 17520 = 36524*2(每年)。tbats使用六個傅立葉項擬合第一個,第二個再次使用六個,最後一個使用五個。

De Livera, Hyndman & Snyder (2011, JASA )的原始 TBATS 論文當然很有用。

下一個:

  • “級別”是時間序列的本地級別。
  • “趨勢”是局部趨勢。

這些類似於使用 lowess (STL) 的更常見的季節趨勢分解。看一下stl()命令。

要獲得更清晰的第 1 季和第 2 季圖,您可以查看 TBATS 模型的各個組件的數值。看str(tbats.components(model1))summary(tbats.components(model1))tbats.components()為您提供多個時間序列 ( mts) 對象,該對象本質上是一個矩陣 - 其中一列將為您提供每個季節性分量。

residuals()應該像它在 R 中的任何地方一樣工作;也就是說,它應該返回最終的殘差。這些確實應該是白噪聲,因為它們是應用 ARMA(5,4)*後的殘差。*您的 ACF 中的峰值似乎是有規律的 - 看起來還有一些剩餘的季節性。你能推斷出它們的周期性嗎?(滯後以最長季節性週期的倍數計算並沒有真正幫助。)

最後,是的,均方根誤差(一種常見的點預測準確度度量)具有相同的首字母縮略詞 out-of sample:RMSE。

引用自:https://stats.stackexchange.com/questions/222199

comments powered by Disqus