R-forecast-動態諧波迴歸原理

——整理的動態諧波迴歸的一些資料,可能有片面的,僅供參考

1. R中的動態迴歸模型(Dynamic Regression Models)

對一個時間序列{y(n)},設{x(n)}是{y(n)}的影響因素組成的時間序列,其中x(n)可以是一個向量。

動態迴歸模型的意思就是:先用一個“機器學習模型”,用{x(n)}當做輸入,{y(n)}當做目標,訓練出一個機器學習模型(R中基本都是線性函數,我看有的資料裏稱這種爲線性動態迴歸)。訓練完之後對於“機器學習模型”輸出和{y(n)}的殘差序列,再用一個“時間序列模型”去擬合這個殘差序列。於是得到一個綜合的模型。

動態迴歸模型的預測值 = 一個“機器學習模型”的預測值 + 一個“時間序列模型”的預測值

2. 動態諧波迴歸(Dynamic Harmonic Regression)

對於上述的動態迴歸模型,特別地,當{x(n)}是序列{y(n)}的傅里葉展開式中的部分傅里葉項的時候,稱爲動態諧波迴歸。

在R-forecast中,用函數{x(n)}=fourier({y(n)},K),提取{y(n)}的傅里葉展開式的前K對sin和cos項作爲特徵{x(n)}。關於fourier()函數更詳細的工作原理,請參考R-fourier()計算方法

3. 軟件實現

3.1 動態迴歸

R中forecast包中很多預測算法可以充當上述的“時間序列模型”,例如auto.arima,nnetar等。預測函數參數中帶有xreg參數的就是可以進行動態迴歸的函數。例如auto.arima(y,xreg=x),nnetar(y,xreg=x)等。

R中forecast包中都是用線性迴歸來當做上述的“機器學習模型”。

需要說明的是,在預測未來的數據的時候,需要通過xreg參數提供未來的數據的影響因素數據。

3.2 動態諧波迴歸

特別地,當3.1中 xreg=fourier(y,K),其中K是給定的一個常數,這時就是動態諧波迴歸了。

動態諧波迴歸的xreg每一列都是週期性的,所以對於未來的xreg,可以很方便的計算出來,未來的xreg用fourier(y,K,h=24)來預測未來24個點的xreg值。

4.爲啥叫“諧波”?

簡單來說,我理解的諧波就是:週期函數傅里葉分解之後,頻率是原週期函數頻率整數倍的那些分量。百度百科-諧波

5.參考資料

相關書籍和章節

auto.arima源碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章