如何解釋 TBATS 模型結果和模型診斷
我有一個半小時的需求數據,這是一個多季節的時間序列。我在 R
tbats
中的forecast
package 中使用,得到如下結果:TBATS(1, {5,4}, 0.838, {<48,6>, <336,6>, <17520,5>})
是不是表示序列不一定要用Box-Cox變換,誤差項是ARMA(5, 4),用6、6、5項來解釋季節性?阻尼參數 0.8383 是什麼意思,它也用於轉換嗎?
下面是模型的分解圖:
我想知道該模型的作用
level
和slope
說明。“斜率”說明了趨勢,但是呢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。