Prophet:Facebook 簡單高效的時(shí)間序列模型
3.1 趨勢模型
首先是趨勢模型 g(t)。
在 Prophet 算法里,趨勢模型有兩個(gè)選擇,一個(gè)是基于飽和增長模型 (saturating growth model),另一個(gè)是基于分段線性函數(shù) (piecewise linear model)。
3.1.1 飽和增長模型
Prophet 使用如下形式的飽和增長模型:
其中,C 為承載能力(如可上網(wǎng)人數(shù)、可處理事件等),k 為增長率,m 為偏移參數(shù)。
當(dāng) C=1,k=1,m=0 時(shí)就是大家常見的 Sigmoid 函數(shù)的形式。
在現(xiàn)實(shí)生活中,承載能力、增長率和偏移參數(shù)并不是一成不變的,所以作者將其轉(zhuǎn)換為隨時(shí)間變化的函數(shù):
除此之外,現(xiàn)實(shí)中的時(shí)間序列其走勢也不是不變的,在某些特定的時(shí)候會發(fā)生改變,這就需要用戶去研究變點(diǎn)檢測 (change points)。
在 Prophet 中,變點(diǎn)的位置是需要設(shè)置的,每一段的趨勢和走勢也會隨著變點(diǎn)的設(shè)置而改變。目前有兩種方法去設(shè)置變點(diǎn),一種是人工指定的方式,另一種是通過算法來自動選擇。
假設(shè)現(xiàn)在有 S 個(gè)變點(diǎn),變點(diǎn)的時(shí)間戳為
,
,
每個(gè)變點(diǎn)都會出現(xiàn)增長率的變化 。如果初始增長率為 k 的話,那么時(shí)間戳 t 上的增長率為:
其中
為指示函數(shù):
一旦初始增長率 k 確定,那么偏移參數(shù) m 也會隨之確定。
既然是分段函數(shù),我們也需要處理好分段邊界:
所以分段邏輯回歸模型為:
此外我們含有一個(gè)重要參數(shù) C(t),該參數(shù)需要用戶根據(jù)市場規(guī)模來進(jìn)行調(diào)整。
3.1.2 分段線性模型我們再來看一下分段線性函數(shù),根據(jù)
給出基本模型:
其中 k 表示增長率,
表示增長率的變化量,m 為偏移參數(shù),
值得注意的是,分段線性函數(shù)并沒有表示承載能力的
參數(shù)。
3.1.3 序列中的變點(diǎn)變點(diǎn)可以由分析師人工設(shè)定,相應(yīng)的參數(shù)有變點(diǎn)的位置、個(gè)數(shù)、增長的變化率。
當(dāng)然,也可以根據(jù)候選對象進(jìn)行自動選擇。自動選擇主要是利用了先驗(yàn)知識
,參數(shù)
控制模型變換的靈活性,當(dāng)
趨于 0 時(shí),增長函數(shù)將蛻變?yōu)?Logistic 函數(shù)或者線性函數(shù)。默認(rèn)情況下,Prophet 會在時(shí)間序列前 80% 的范圍里,通過等份的方法找到 25 個(gè)變點(diǎn),而變點(diǎn)的增長率滿足 Laplace 分布
3.1.4 趨勢預(yù)測現(xiàn)在,歷史 T 個(gè)數(shù)據(jù)點(diǎn)中有 S 個(gè)變點(diǎn),且對應(yīng)的增長率的變化量服從
,但預(yù)測未來也需要考慮未來的變點(diǎn)位置。
作者通過歷史數(shù)據(jù)推斷出方差,從而替換
來模擬未來的速率變化。在一個(gè)完全貝葉斯框架下,可以通過先驗(yàn)知識來獲得它的后驗(yàn)概率,或者我們也可以用最大似然估計(jì)來評估速率尺度參數(shù):
。
未來變點(diǎn)位置將通過隨機(jī)抽樣的方法使變點(diǎn)的平均頻率與歷史數(shù)據(jù)相匹配:
因此,我們保證了未來和歷史具有相同平均頻率和變點(diǎn)變化率,從而衡量預(yù)測未來趨勢中的不確定性,一旦從數(shù)據(jù)中推斷出了 λ ,我們便可以使用生成模型來模擬未來可能的趨勢,并使用模擬的趨勢來計(jì)算不確定區(qū)間。
3.2 季節(jié)性模型
季節(jié)性(這里指周期性)是大部分時(shí)間序列都會考慮其中的,因?yàn)闀r(shí)間序列通常會隨著天、周、月、年等的變化而呈現(xiàn)周期性變化。為了擬合和預(yù)測這些數(shù)據(jù),作者制定了季節(jié)模型。
作者利用傅立葉級數(shù)來提供一個(gè)靈活的周期性影響:
其中,P 為周期(一年 P=365.25,一個(gè)星期 P=7);N 為經(jīng)驗(yàn)所得(年 N=10,周N=3)。
我們另傅立葉級數(shù)的參數(shù)為
,則可以用這個(gè)來構(gòu)造一個(gè)季節(jié)性向量矩陣。
例如當(dāng) N=10 時(shí):
季節(jié)項(xiàng)表示為:
作者用標(biāo)準(zhǔn)化
對參數(shù)
進(jìn)行初始化, σ 為可設(shè)置參數(shù),值越大,季節(jié)效應(yīng)越明顯;值越小,季節(jié)效應(yīng)越不明顯。

發(fā)表評論
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個(gè)字
最新活動更多
-
10月23日火熱報(bào)名中>> 2025是德科技創(chuàng)新技術(shù)峰會
-
10月23日立即報(bào)名>> Works With 開發(fā)者大會深圳站
-
10月24日立即參評>> 【評選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評選
-
11月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會
-
12月18日立即報(bào)名>> 【線下會議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會
-
精彩回顧立即查看>> 【限時(shí)福利】TE 2025國際物聯(lián)網(wǎng)展·深圳站
推薦專題