楊 霞,袁 丁,嚴 清,康巧琴
(四川師范大學 計算機科學學院,四川 成都 610101)
物聯(lián)網(wǎng)設(shè)備[1]用于房間監(jiān)測時可通過人體傳感器收集數(shù)據(jù),然后對傳感器數(shù)據(jù)進行分析和預測。傳感器監(jiān)測常用的監(jiān)測設(shè)備為被動紅外(PIR)運動探測器,PIR與攝像機相比,價格低廉、抗電磁干擾、更易于安裝、更加隱蔽,因此它對人來說不具有干擾性[2]。雖然攝像機能提供更準確的監(jiān)測,但攝像可能遭遇網(wǎng)絡攻擊,同時使用攝像機進行監(jiān)測價格昂貴[3]。這些優(yōu)勢使得PIR傳感器在監(jiān)測和預測方面也越來越受歡迎。但是PIR不能檢測靜止的人體,當人處于靜止狀態(tài)時,PIR不會產(chǎn)生監(jiān)測數(shù)據(jù);只有當人運動時,PIR才會產(chǎn)生數(shù)據(jù)[4],這使得PIR得到的統(tǒng)計信息誤差較大。如何通過預測算法來幫助用戶獲取更準確的房間使用情況,包括獲取靜止人體對房間的使用情況,是非常有價值的事情。預測算法在擬合模型的同時可以對未來一段時間的趨勢進行預測,對人體紅外時間序列數(shù)據(jù)的預測有利于用戶及時規(guī)劃使用方案、房間節(jié)能和提高房間的使用率。因此研究出一種準確率比較高的紅外時間序列預測模型具有十分重要的意義。
本文深入研究了Prophet模型、季節(jié)性差分自回歸滑動平均(seasonal autoregressive integrated moving average,SARIMA)模型、三次指數(shù)平滑法(Holt-winters)模型、長短時記憶網(wǎng)絡(long short-term memory,LSTM)模型,對比了不同模型的優(yōu)缺點,提出一種加權(quán)組合的Prophet-SARIMA預測模型,將預測模型用于人體紅外時間序列的統(tǒng)計分析上,該模型在人體紅外時間序列的預測上比其它預測模型更加準確。
時間序列模型非常適合對不易建立精確數(shù)學模型和具有不確定性的系統(tǒng)建模。其中Box和Jenkins提出的求和自回歸移動平均模型(autoregressive integrated moving ave-rage,ARIMA)[5]是非常經(jīng)典的模型。ARIMA模型從時間序列自身出發(fā),建立相應的模型進行分析,該方法計算簡單、操作方便、定義了過去數(shù)據(jù)與現(xiàn)在數(shù)據(jù)的關(guān)系[6],但ARIMA模型對于既有季節(jié)性又有長期趨勢的時間序列,不足以提取其中的季節(jié)信息[7]。因此,為了能夠?qū)竟?jié)性組件建模,又提出了季節(jié)性差分自回歸滑動平均模型SARIMA模型[8]。該方法在ARIMA模型的基礎(chǔ)上,充分考慮了周期性特征,并且使用外部信息來增強模型的預測能力,時間推理能力強[9,10]。
時間序列最常用的機器學習的模型是:Hochreiter提出的長期短期記憶網(wǎng)絡(LSTM)方法[11]。LSTM算法作為一類特殊設(shè)計的循環(huán)神經(jīng)網(wǎng)絡結(jié)構(gòu),可以學習時間序列中隱含的長期有用信息,并能實現(xiàn)樣本輸入和輸出的非線性關(guān)系,對噪聲具有較強的魯棒性和容錯能力,但是該方法的參數(shù)復雜,訓練難度較大、時間長且容易失敗[12-14]。
Taylor[15]等提出的Prophet預測模型,不同于傳統(tǒng)的時間預測模型,Prophet具有操作簡單、參數(shù)易于解釋、自動化處理、擬合速度快、自動處理缺失值和數(shù)據(jù)非等距問題、可將結(jié)果按不同維度分解的特點[16,17],同時一個有效的預測模型將同時考慮目標序列過去的行為數(shù)據(jù)和近期某些特殊點的影響,而一般的時間序列將這些特殊點視作離群點被剔除掉,忽略了其對目標序列估值的作用,Prophet模型考慮了這些特殊點對趨勢變化的影響[18,19]。但是Prophet模型沒有考慮殘差的自相關(guān)性對預測性能的影響,并一定程度上舍棄了時間維度的推理能力。
組合預測模型是由Bates和Grange等提出[20,21],組合模型可以克服單一模型造成的偏頗,基于組合思想將單一的模型通過不同的方式組合起來,使之得到的預測結(jié)果比單一模型得到的結(jié)果更加準確[22,23]。
為了充分發(fā)揮不同模型各自的優(yōu)勢,本文在Prophet模型的基礎(chǔ)上引入SARIMA模型,提出一種動態(tài)加權(quán)組合的Prophet-SARIMA預測模型。在兼顧Prophet模型的自動化、參數(shù)簡單、易于操作、考慮節(jié)假日特殊點的影響的特點的同時,解決了Prophet模型對殘差考慮的缺失,提升了Prophet模型的時間推理能力,克服了單一模型反映的規(guī)律不全面問題。動態(tài)獲取權(quán)值,通過計算得到最優(yōu)權(quán)值組合,從而大幅提升預測精度。實驗結(jié)果表明,所提出的Prophet-SARIMA組合預測模型考慮了殘差自相關(guān)性檢驗,時間推理能力更強,并且該組合預測模型的性能均優(yōu)于單項預測模型。
Prophet是Facebook公司于2017年開發(fā)的一種新的時間序列預測模型,不同于傳統(tǒng)的時間序列預測方法,Prophet本質(zhì)上是對時間序列曲線的擬合[15]。它采用廣義加性模型或乘法模型來擬合預測函數(shù),且模型預測速度快,同時Prophet還對含有異常值、節(jié)假日和趨勢變化的日常周期數(shù)據(jù)具有很強的適應性,尤其對缺失值、趨勢的轉(zhuǎn)變和大量的異常值具有很強的魯棒性[16]。Prophet模型構(gòu)建的流程如圖1所示。
圖1 模型構(gòu)建流程
Prophet模型由4部分組成,包括growth(趨勢性)、seasonality(周期性)、holidays(節(jié)假日)、error(誤差項)[17]。Prophet模型通過擬合這4項,然后將結(jié)果疊加得到預測值,加法組合的基本形式如式(1)所示,乘法組合的基本形式如式(2)所示
F(t)=g(t)+s(t)+h(t)
(1)
F(t)=g(t)*s(t)*h(t)
(2)
其中,趨勢項g(t)用于擬合時間序列的非周期持續(xù)性變化,它是整個Prophet模型的核心。從數(shù)據(jù)中選擇變化點來實現(xiàn)趨勢的變化,變化點的增長率服從δ~Laplace(0,τ) 分布,τ負責控制增長率的調(diào)節(jié)強度[18]。趨勢項g(t)有兩種表達形式,一種基于邏輯回歸函數(shù),另一種基于分段線性函數(shù)。基于邏輯函數(shù)的精確形式如下
(3)
其中, C(t) 表示隨時間變化的模型容量,k表示增長率,m表示偏移量,δ、γ表示調(diào)整量,A表示指示向量?;诜侄尉€性函數(shù)的精確形式如下
g(t)=(k+Aδ)*t+(m+Aγ)
(4)
s(t)表示周期性變化,例如:每周、每月、每年的季節(jié)性變化,采用離散傅里葉級數(shù)來建模周期性分量[19],具體表達式如下
(5)
其中,L表示季節(jié)性的周期長度;N表示模型具有的周期個數(shù)。若要擬合復雜的季節(jié)性,N的取值就要越大,得到的擬合效果就會越好,但可能會出現(xiàn)過擬合的情況。N值的確定需要參考L的具體值,如果是年周期性,可將L設(shè)置為365.25,N設(shè)置為10;如果是周季節(jié)性,可將L設(shè)為7,N設(shè)置為3。
h(t)是節(jié)假日項,每年的節(jié)假日或大事件會對時間序列產(chǎn)生趨勢很大的影響,例如每年的國慶節(jié)、春節(jié)等。因此將節(jié)假日效應納入模型,以便提升模型預測的準確率??紤]到不同時刻下的節(jié)假日影響,由于不同的節(jié)假日可作為獨立的模型,因此可通過設(shè)置時間窗的方式來模擬每個節(jié)假日前后的幾天對時間序列產(chǎn)生的影響。節(jié)假日模型具體表達形式為
(6)
Z(t)=[1(t∈M1),…,1(t∈ML)]
(7)
h(t)=Z(t)*k,k~Normal(0,γ2)
(8)
其中,Wi表示預測值受時間窗口內(nèi)的節(jié)假日的影響;i表示節(jié)假日;Mi表示時間t屬于該時間窗口,Mi是第i個虛擬變量值,1為Mi的值,如果時間變量t不屬于Mi,則值為0。模型的最后一部分為誤差項,表示模型未預測到的波動,并且假設(shè)它服從高斯分布。
Jenkins和Box于20世紀70年代初提出求和自回歸移動平均ARIMA模型,也稱為Box-Jenkins法,該模型是研究時間序列的著名方法[5]。ARIMA模型適用于平穩(wěn)時間序列,如果為非平穩(wěn)時間序列,需要先將時間序列通過差分轉(zhuǎn)化為平穩(wěn)時間序列再建模,之后再通過反變換還原時間序列。ARIMA模型包括自回歸(AR)模型和移動平均(MA)模型[6]。 ARIMA(p,d,q) 模型的數(shù)學表達形式如下所示
Yi=θ0+φ1yt-1+φ2yt-2+…+φpyt-p+εt-θ1εt-1-
θ2εt-2-…-θqεt-q
(9)
其中,yt代表不同樣本的值;εi為服從正態(tài)分布的白噪聲序列;φi(i=1,2,…,p) 和θi(i=1,2,…,q) 分別為自回歸系數(shù)、移動平均系數(shù)。p、d、q分別為ARIMA(p,d,q) 模型的自回歸階數(shù)、平穩(wěn)處理時的差分次數(shù)、移動平均階數(shù)。
將Box-Jenkins法應用于時間序列建模、預測的步驟見表1[7]。
表1 ARIMA模型建模步驟
SARIMA模型是ARIMA模型的一種變形,該模型主要針對具有季節(jié)性或周期性規(guī)律變化的時間序列[8]。SARIMA模型在ARIMA模型的基礎(chǔ)上添加了3個新的超參數(shù),以指定序列的季節(jié)性分量的自回歸、微分和移動平均值,以及季節(jié)性周期的附加參數(shù)[9]。SARIMA模型核心要點是對數(shù)據(jù)的處理,將擬合后的誤差作為分析要素,充分考慮殘差信息。SARIMA模型可表示為SARIMA(p,d,q)×(P,D,Q)S, 該模型在平穩(wěn)化處理時除了使用差分還可以使用季節(jié)性差分。SARIMA模型的數(shù)學表達式為
(10)
表2 SARIMA建模步驟
為了充分發(fā)揮Prophet模型和SARIMA模型的優(yōu)勢,提高預測的準確性,克服單一模型的偏頗,本文在Prophet模型的基礎(chǔ)上引入SARIMA模型,提出基于Prophet和SARIMA的動態(tài)加權(quán)組合預測模型。該模型既保留了Prophet模型簡單、擬合速度快、自動化建模、充分考慮節(jié)假日等特殊點對趨勢影響的優(yōu)勢,又保留了SARIMA嚴謹?shù)哪P蜋z驗與較強的推理能力,解決了Prophet對殘差自相關(guān)性檢測的缺失問題,使得模型推理能力更強。Prophet-SARIMA組合預測模型具體建模流程如圖2所示。
圖2 Prophet-SARIMA組合預測模型
首先分別使用Prophet模型和SARIMA模型,將分組得到的每小時統(tǒng)計數(shù)據(jù)進行建模,假設(shè)Prophet模型在t時刻的預測值是F(t),SARIMA模型在t時刻的預測值為R(t),t=1,2,…,N, 然后分別為兩個模型賦予動態(tài)權(quán)值ω1、ω2。最后通過計算兩個模型的加權(quán)融合后的值,最終得到Prophet-SARIMA房間使用時長預測模型。此時,Prophet-SARIMA組合預測模型可以表示為
Y(t)=ω1F(t)+ω2R(t),ω1+ω2=1,
t=1,2,…,N
(11)
Y(t)為Prophet模型與SARIMA模型的預測數(shù)據(jù)通過加權(quán)求和得出。通過計算兩種模型的最優(yōu)權(quán)值組合,得到Prophet-SARIMA組合預測模型。
組合模型最重要的就是權(quán)值的確定,為了尋找Prophet-SARIMA組合模型的最優(yōu)權(quán)值系數(shù)ω1、ω2,首先需要初始化參數(shù)ω1、ω2,使ω1、ω2滿足
ω1+ω2=1
(12)
ω1的取值范圍為[0,1]中順次遞增0.1的11個數(shù)值,ω2的取值范圍為[1,0]中順次遞減0.1的11個數(shù)值,然后將不同時刻下的權(quán)值系數(shù)ω1、ω2分別與該時刻下的Prophet模型和SARIMA模型的預測結(jié)果相乘,接下來將同一時刻的兩個預測結(jié)果求和,該和值就是組合模型的預測結(jié)果。通過迭代求解出11組中最優(yōu)的權(quán)值組合。確定權(quán)值的流程如圖3所示。
圖3 權(quán)值確定流程
Prophet-SARIMA模型的構(gòu)建步驟見表3。
表3 Prophet-SARIMA模型建模步驟
實驗數(shù)據(jù)來源于四川省某高校智能監(jiān)測平臺監(jiān)控中心產(chǎn)生的每日傳感器數(shù)據(jù),采集日期從2019年9月1日~2020年2月10日,數(shù)據(jù)真實有效。每條數(shù)據(jù)由編號、設(shè)備號、設(shè)備類型、狀態(tài)標記、和觸發(fā)時間組成,該數(shù)據(jù)集記6個月內(nèi)32間房間的實時使用情況。數(shù)據(jù)記錄從每天7∶00點開始直至23∶00結(jié)束。本文主要研究1 h的時間尺度房間使用時長預測。因此將數(shù)據(jù)集按每小時進行分組,得到16組實測數(shù)據(jù),共3 216 189條時間序列。這些數(shù)據(jù)是傳感器的實時數(shù)據(jù),每當有人進入、離開或走動時,就會觸發(fā)傳感器,傳感器就會產(chǎn)生一條數(shù)據(jù)記錄。其中一組數(shù)據(jù)格式見表4。
表4 傳感器數(shù)據(jù)采集
為了符合模型的輸入?yún)?shù)格式要求,再將以上采集的數(shù)據(jù)按房間分組并按每小時為單位重新統(tǒng)計,計算1 h內(nèi)的實際使用時長,定義1 h使用時長計算公式為
(13)
hOffi表示Off狀態(tài)對應的時間戳、hOni-1表示On狀態(tài)對應的時間戳、lengthD表示當前分組的樣本長度。以每天12時為例,重新分組統(tǒng)計得到的數(shù)據(jù)格式見表5。serial number為數(shù)據(jù)編號,ds為時間戳,y為統(tǒng)計計算得到的使用時長,單位為s。將得到的每組原始數(shù)據(jù)按3∶1劃分為訓練集與測試集,其中訓練集共2 412 141條數(shù)據(jù),測試集共804 047條數(shù)據(jù)。并指定2020年1月21日~2020年2月10日為預測區(qū)間。
表5 時長統(tǒng)計
為了評價各模型對房間使用時長的預測效果,本文使用均方誤差(RMSE)和平均絕對誤差(MAE)兩個指標作為評估指標。當RMSE與MAE越小時,模型預測效果越好,誤差越小。RMSE、MAE指標計算公式如下
(14)
(15)
其中,y(t)是t時刻對應的實測值,g(t)是t時刻對應的預測值,n是樣本數(shù)。
3.3.1 Prophet模型構(gòu)建
Prophet模型可以將時間序列經(jīng)特定的函數(shù)變換為每日、每周、每月、每年等不同時間維度的組合形式,本文按“天”為粒度來進行建模,對每天固定時間段的數(shù)據(jù)進行建模和預測。同時本文考慮了節(jié)假日對趨勢變化的影響,因此在h(t)中設(shè)置采集區(qū)間包含的主要節(jié)日,具體設(shè)置見表6。
表6 主要節(jié)假日
由于季節(jié)性不是恒定因子,而是隨著趨勢在變化,所以根據(jù)以上設(shè)置,使用默認參數(shù)配置和Prophet乘法模型建模,得到初始模型,為了更好的預測,將Prophet的重要參數(shù)通過循環(huán)迭代得出最優(yōu)解。Prophet模型最終的參數(shù)配置見表7。
表7 Prophet參數(shù)設(shè)置
Prophet模型會得到分解的增長趨勢(trend)、每周趨勢(weekly)和每天趨勢(daily),以及節(jié)假日影響(holiday)。由于空間的局限和結(jié)果的相似,本文僅展示其中一組時間序列的建模結(jié)果。圖4給出了其中一間房間的每天12時統(tǒng)計數(shù)據(jù),被Prophet乘法模型分解得到的結(jié)果。由圖4中的趨勢圖可知,房間使用時長在12月末、1月初是最長的,且使用趨勢在不斷地變化,2020年2月趨勢明顯下降,是受春節(jié)節(jié)假日效應的影響。并且從每周趨勢中可以看出,一周中周六、周天的使用時長最低,工作日的使用時長高于周末。從每日趨勢上可以看出,上午的房間使用時長高于下午和晚上。
圖4 預測結(jié)果分解
Prophet模型預測房間使用時長的結(jié)果如圖5所示。圖5中小黑點代表原使用時長數(shù)據(jù),實線代表預測值,陰影區(qū)域是80%的置信區(qū)間,沒有小黑點的陰影區(qū)域表示對房間使用時長的預測區(qū)間。此時預測值的均方誤差為18.71,平均絕對誤差為6.84。
圖5 Prophet預測結(jié)果
3.3.2 SARIMA模型構(gòu)建
使用statsmodels工具中的SARIMAX方法建立SARIMA模型。由分解法可知數(shù)據(jù)具有月度周期。由于SARIMA模型是通過尋找歷史數(shù)據(jù)之間的自相關(guān)性,來預測未來,要求數(shù)據(jù)必須是平穩(wěn)的,因此使用ADF檢驗對數(shù)據(jù)進行平穩(wěn)化判斷,ADF檢驗結(jié)果見表8。由結(jié)果可以看出P值大于0.05,說明原始序列不平穩(wěn)。因此首先需要對原始序列進行季節(jié)性差分處理,進行一階差分后,再次使用ADF檢驗判斷一階差分后的數(shù)據(jù)是否平穩(wěn)。
表8 原始序列ADF檢驗
一階差分后的ADF檢驗結(jié)果見表9。檢驗結(jié)果表明,在1%的顯著性水平下拒絕原假設(shè),說明一階差分處理后的序列是平穩(wěn)的??蛇M行SARIMA模型建模分析。
表9 一階差分序列ADF檢驗
使用處理后的序列建立SARIMA模型,為了使模型簡單化,更輕松準確地獲取參數(shù)值,使用網(wǎng)格搜索法并結(jié)合赤池信息量準則(AIC),確定階數(shù)p、q、P、Q。最終確定的模型為SARIMA(1,1,0)×(1,1,0)12。 SARIMA模型充分考慮到殘差的自相關(guān)性,在預測之前,需要對模型進行顯著性檢驗,使用殘差密度圖、QQ圖和DW檢驗來檢驗模型學習效果,判斷殘差是否存在自相關(guān)性與殘差是否滿足白噪聲。殘差密度如圖6所示,可以看出分布密度呈正態(tài)分布。如圖7所示的QQ圖可知,QQ圖呈線性分布則殘差服從正態(tài)分布,并且DW值為2.069,可知殘差不存在自相關(guān)性,并且為白噪聲序列。因此模型有效。最后使用該模型對預測區(qū)間的數(shù)據(jù)進行預測。
圖6 殘差密度
圖7 QQ圖
3.3.3 Prophet-SARIMA模型構(gòu)建
為了充分利用Prophet模型與SARIMA模型的優(yōu)勢,文本提出了基于Prophet和SARIMA模型的優(yōu)化組合模型。
在分別獲得Prophet模型和SARIMA模型的預測值后,本文使用3.2節(jié)中的評估指標來評估不同權(quán)重系數(shù)對應的Prophet-SARIMA模型預測結(jié)果的效果,將得到的11組加權(quán)預測結(jié)果記錄在表10中,根據(jù)表10可知,當權(quán)值系數(shù)ω1=0.5、ω2=0.5時,預測結(jié)果的均方誤差和平均絕對誤差均為最小,并且結(jié)果顯示,Prophet-SARIMA組合模型的預測效果均優(yōu)于Prophet和SARIMA單項模型的預測效果。
表10 不同權(quán)值對應的評估結(jié)果
為了進一步驗證本模型的性能,對另一組房間的使用時長數(shù)據(jù)進行建模并預測,將Prophet-SARIMA模型的預測結(jié)果分別與SARIMA模型、Prophet模型、LSTM模型、Holt-winters模型的預測結(jié)果進行了對比,各個模型的評估結(jié)果見表11,由表11可知,與LSTM模型、Holt-winters模型相比,Prophet-SARIMA組合預測模型的預測效果更佳,其次是LSTM模型。同時Prophet-SARIMA組合預測模型的預測效果優(yōu)于Prophet、SARIMA單項模型。因此在房間使用情況的預測方面,Prophet-SARIMA組合預測模型具有更高的準確性和更強的適用性。
表11 不同模型的評估結(jié)果對比
統(tǒng)計傳感器采集的公共場所使用時長,并分析時長數(shù)據(jù)特征,對提升公共場所使用效率和應急準備有重要的指導作用。本文提出了一種基于Prophet模型和SARIMA模型的加權(quán)組合預測模型,解決了Prophet模型對殘差自相關(guān)性檢測的缺失,提升了Prophet模型的時間推理能力。該模型充分利用Prophet模型和SARIMA模型各自的優(yōu)點,并與Prophet和SARIMA單項模型、LSTM模型、Holt-winters模型、不同權(quán)值系數(shù)下的組合模型進行了對比實驗。實驗結(jié)果表明,Prophet-SARIMA組合模型對人體紅外時間序列預測的性能明顯優(yōu)于單項的SARIMA預測模型與Prophet預測模型,同時優(yōu)于LSTM模型和Holt-winters模型。加權(quán)組合模型中權(quán)值的取值對預測結(jié)果的影響很大,如何設(shè)計算法獲取最優(yōu)權(quán)值是加權(quán)組合模型的關(guān)鍵。本文提出的Prophet-SARIMA組合預測模型,只涉及了兩種單項模型,未來將結(jié)合多個模型的優(yōu)勢進行預測,以便獲取更高的預測準確率。同時Prophet模型在非線性預測上的精度較差,而神經(jīng)網(wǎng)絡在預測非線性部分的性能更優(yōu),未來還將考慮結(jié)合神經(jīng)網(wǎng)絡的模型來進一步研究,從而尋找出更優(yōu)的建模方案。