Prophet:Facebook 簡單高效的時間序列模型
3.1 趨勢模型
首先是趨勢模型 g(t)。
在 Prophet 算法里,趨勢模型有兩個選擇,一個是基于飽和增長模型 (saturating growth model),另一個是基于分段線性函數 (piecewise linear model)。
3.1.1 飽和增長模型
Prophet 使用如下形式的飽和增長模型:
其中,C 為承載能力(如可上網人數、可處理事件等),k 為增長率,m 為偏移參數。
當 C=1,k=1,m=0 時就是大家常見的 Sigmoid 函數的形式。
在現實生活中,承載能力、增長率和偏移參數并不是一成不變的,所以作者將其轉換為隨時間變化的函數:
除此之外,現實中的時間序列其走勢也不是不變的,在某些特定的時候會發生改變,這就需要用戶去研究變點檢測 (change points)。
在 Prophet 中,變點的位置是需要設置的,每一段的趨勢和走勢也會隨著變點的設置而改變。目前有兩種方法去設置變點,一種是人工指定的方式,另一種是通過算法來自動選擇。
假設現在有 S 個變點,變點的時間戳為

,

,

每個變點都會出現增長率的變化 。如果初始增長率為 k 的話,那么時間戳 t 上的增長率為:

其中

為指示函數:

一旦初始增長率 k 確定,那么偏移參數 m 也會隨之確定。
既然是分段函數,我們也需要處理好分段邊界:

所以分段邏輯回歸模型為:

此外我們含有一個重要參數 C(t),該參數需要用戶根據市場規模來進行調整。
3.1.2 分段線性模型我們再來看一下分段線性函數,根據

給出基本模型:

其中 k 表示增長率,

表示增長率的變化量,m 為偏移參數,

值得注意的是,分段線性函數并沒有表示承載能力的

參數。
3.1.3 序列中的變點變點可以由分析師人工設定,相應的參數有變點的位置、個數、增長的變化率。
當然,也可以根據候選對象進行自動選擇。自動選擇主要是利用了先驗知識

,參數

控制模型變換的靈活性,當

趨于 0 時,增長函數將蛻變為 Logistic 函數或者線性函數。默認情況下,Prophet 會在時間序列前 80% 的范圍里,通過等份的方法找到 25 個變點,而變點的增長率滿足 Laplace 分布

3.1.4 趨勢預測現在,歷史 T 個數據點中有 S 個變點,且對應的增長率的變化量服從

,但預測未來也需要考慮未來的變點位置。
作者通過歷史數據推斷出方差,從而替換

來模擬未來的速率變化。在一個完全貝葉斯框架下,可以通過先驗知識來獲得它的后驗概率,或者我們也可以用最大似然估計來評估速率尺度參數:

。
未來變點位置將通過隨機抽樣的方法使變點的平均頻率與歷史數據相匹配:

因此,我們保證了未來和歷史具有相同平均頻率和變點變化率,從而衡量預測未來趨勢中的不確定性,一旦從數據中推斷出了 λ ,我們便可以使用生成模型來模擬未來可能的趨勢,并使用模擬的趨勢來計算不確定區間。
3.2 季節性模型
季節性(這里指周期性)是大部分時間序列都會考慮其中的,因為時間序列通常會隨著天、周、月、年等的變化而呈現周期性變化。為了擬合和預測這些數據,作者制定了季節模型。
作者利用傅立葉級數來提供一個靈活的周期性影響:

其中,P 為周期(一年 P=365.25,一個星期 P=7);N 為經驗所得(年 N=10,周N=3)。
我們另傅立葉級數的參數為

,則可以用這個來構造一個季節性向量矩陣。
例如當 N=10 時:

季節項表示為:

作者用標準化

對參數

進行初始化, σ 為可設置參數,值越大,季節效應越明顯;值越小,季節效應越不明顯。
請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
-
11月7日立即參評>> 【評選】維科杯·OFweek 2025(第十屆)物聯網行業年度評選
-
11月20日立即報名>> 【免費下載】RISC-V芯片發展現狀與測試挑戰-白皮書
-
即日-11.25立即下載>>> 費斯托白皮書《柔性:汽車生產未來的關鍵》
-
11月27日立即報名>> 【工程師系列】汽車電子技術在線大會
-
11月28日立即下載>> 【白皮書】精準洞察 無線掌控——283FC智能自檢萬用表
-
12月18日立即報名>> 【線下會議】OFweek 2025(第十屆)物聯網產業大會


分享













