朱從坤 謝鑫鑫
(蘇州科技大學土木工程學院 蘇州 215009)
目前城市軌道交通站點客流預測方法可分為單一算法和組合算法.單一算法有時間序列模型、卡爾曼濾波模型、神經網絡算法、支持向量機等[1-4].對于組合預測算法則存在更多的嘗試可能,包磊[5]建立灰色模型與馬爾科夫鏈的組合模型預測下一時段客流量,但時間粒度為一天,未達到較小粒度客流預測的要求.翁湦元等[6]從時頻特性角度分析客流特征,將經驗模態分解法的時頻分析優勢與遺傳算法優化的神經網絡強擬合能力相結合,探究組合預測算法在高速鐵路站點客流預測中的預測效果.黃海超等[7]將變經驗模態分解與長短時記憶神經網絡組合,對軌道交通客流進行預測,預測效果較好.單一算法的改進和研究較為深入,組合算法的研究則更具靈活性.
經驗模態分解(empirical mode decomposition, EMD)能將非平穩、非線性復雜序列分解為較平穩且規律性強的若干本征模函數和殘差序列,各子序列能反應原始信號或者序列的內在特征,廣泛應用于地球物理信號、機電系統故障、語音信號以及金融類和客流量等較為宏觀的非線性時間序列的處理.羅述群等[8]利用EMD對景區人流量時間序列進行分解、預測,預測精度較好.趙陽陽等[9]將經驗模態分解與神經網絡結合預測短時地鐵客流,模型有效降低樣本噪聲對客流預測的干擾,提高了預測精度和時效性.陸利軍[10]利用EMD對游客量數據與網絡搜索數據進行降噪處理,將ARIMA模型與BP神經網絡進行組合預測客流量,預測效果較好.
K近鄰(k-nearest neighbor,KNN)作為非參數回歸方法的一種,不對數據做任何嚴格處理,僅依賴現有數據序列決定預測值的輸出,無需任何先驗知識且參數少.郭晗等[11]在軌道交通客流預測中研究了K近鄰算法中狀態向量的選擇,結果表明以預測時段前m個時段的歷史數據作為狀態向量具有較好的預測效果,而相鄰站點歷史客流數據由于其相對獨立,不宜作為狀態向量.劉美琪等[12]對比不同預測算法在軌道交通進站客流預測上的效果,發現K近鄰的總體預測精度最高,貝葉斯組合預測算法次之,基于偏差修正系數的卡爾曼濾波模型在早晚高峰時的適用性較差.
綜上所述,經驗模態分解能將非平穩、非線性序列平穩化分解,K近鄰算法無復雜參數,且有較強的數據挖掘能力,為此本文擬探討經驗模態分解與K近鄰的組合算法(EMD-KNN)在軌道交通站點進站客流時間序列預測中的應用效果.
經驗模態分解步驟為
步驟1找出序列x(t)所有的極大值和極小值點.
步驟2用三次樣條曲線擬合出上下極值點的包絡線emax(t)和emin(t),并求上下包絡線均值m1(t),在x(t)中減去m1(t),得到新的序列h1(t).
h1(t)=x(t)-m1(t)
(1)
若h1(t)不滿足本征模函數的確認要求,則將h1(t)作為新的原始序列x1(t),重復步驟1~2,直至得到的某個hk(t)滿足本征模函數預設要求.本征模函數需滿足兩個條件:①該函數hk(t)的過零點數和極值點數最多差1;②局部極大值點和極小值點形成的兩條包絡線的平均值趨近于零.
步驟3令得到的第一個滿足本征模函數要求的hk(t)記為IMF1,將IMF1從原始序列x(t)扣除得到序列r1(t),作為新的原始序列,重復步驟1~2,直至得到的某個rn(t)為單調函數或簡單趨勢函數,將其作為殘差序列.
原始序列被分解為若干個IMF分量和殘差序列R,即
(2)
1.2.1KNN原理
考慮到軌道交通站點預測時段客流量與相鄰時段客流量具有相關性,可選取預測時段前q個時段的客流量作為狀態向量(即認為該q個時段的客流量與預測時段客流量密切相關),利用狀態向量在歷史數據中進行匹配,得到與預測時段客流量最為接近的K組歷史數據,對這K組預測時段歷史數據進行處理得到預測結果.其中,K值可由樣本測試法確定;q值由日時間序列q階自相關系數確定,通過計算眾多歷史序列不同階自相關系數ρx,q,統計各階ρx,q≥0.3的序列個數占總歷史序列數的占比情況,取占比較大的階數為q.序列q階自相關系數為
(3)
1.2.2K近鄰預測方法
傳統K近鄰預測算法是將K個近鄰的客流數據算術平均值作為預測值,然而匹配到的近鄰對象與預測對象距離不盡相同,其對預測對象值的貢獻也是不同的,因此有必要基于近鄰對象與預測對象距離越小權重越大的原則,對K個近鄰對象設置權重,通過加權平均得到預測值.
若客流量預測日為O,預測時段為t,由狀態向量匹配到的K個近鄰對象的日期分別為D1,D2,…,Dk,則預測算法為
(4)
(5)
式中:PO,t為預測日O在時段t的小時進站客流量預測值;αk為近鄰Dk的預測權重值,各權重值之和為1;dk為預測日O的狀態向量與近鄰日Dk的狀態向量之間的歐式距離;Hk,t為近鄰日Dk在時段t的歷史客流量值.
EMD-KNN組合算法流程見圖1.
圖1 EMD-KNN組合算法流程圖
選取蘇州軌道交通1號線換乘站點廣濟南路站進站客流為分析實例,客流歷史數據統計自2020年1月1日—6月22日,時間粒度為1 h,7時的客流量定義為06:00—07:00的小時客流量,以此類推,每日共17個時段.圖2為小時進站客流量時序圖.
圖2 2020年1月1日—6月22日廣濟南路站小時進站客流時序圖
由圖2可知:客流量在1月上旬較為正常,但受到新冠肺炎疫情相關交通管制措施的影響,1月中下旬出現斷崖式減少,低位客流量持續一個多月;受復工復產影響,2月中下旬至5月,客流量緩慢爬升;6月客流量逐漸恢復,但較疫情前依然略低.宏觀上,客流量時序呈非線性變化趨勢;中觀層面,以周為單位,客流量呈現明顯的周期性,各工作日客流量普遍高于非工作日.
疫情前后日小時變化曲線有明顯差異,見圖3.疫情前,1月3日為工作日,客流時間序列呈現明顯早晚高峰特征;1月11日非工作日,無明顯早晚高峰.2月為疫情嚴防期,其中2月21日工作日出現不明顯的早晚高峰,2月22日非工作日無早晚高峰.由于疫情得到有效控制,5月5日非工作日客流量較2月有較大提高,且隨著復工復產,5月8日工作日客流量小時變化特征接近疫情前.總體上,站點進站客流量小時序列呈非線性、非平穩,同時具有周期性變化的特征.
圖3 廣濟南路站疫情前后小時客流變化對比
利用計量經濟統計軟件Eviews,對2020年1月1日—6月22日的站點小時進站客流序列進行BP結構性多斷點檢驗,檢驗結果見表1.
由表1可知:在0.05顯著性水平下,斷點檢驗“0vs1”、“1vs2”、“2vs3”的F值大于臨界值,拒絕了1、2、3三個斷點差異顯著為0的假設;斷點檢驗“3vs4”的F值小于臨界值,無法拒絕原假設.由此判斷3個結構斷點位置大致為1月23日、3月11日和5月2日,各斷點時間基本與地方政府采取疫情交通管制措施和復工復產時間相一致.三個結構斷點將時間序列分為T1、T2、T3和T4四個子序列段,見圖4.
表1 BP結構斷點檢測結果
圖4 2020年1月1日—6月22日客流時間序列結構斷點分段圖
以2020年6月19 —22日4 d的小時進站客流量為預測對象,選取客流變化趨勢與預測日最為接近的T4序列作為歷史數據序列.
基于Matlab平臺編寫經驗模態分解運算程序,對歷史數據序列進行經驗模態分解,得到8個本征模函數IMF1-IMF8,以及一個殘差序列R,見圖5.
圖5 2020年5月2日—6月18日客流時序經驗模態分解結果
由圖5可知:本征模函數IMF1-IMF8波動頻率依次降低,波動周期逐漸增大,最終的殘差序列波動頻率最低,是原始序列的總體發展趨勢.
計算各IMF和殘差序列與原始序列的相關性系數、方差占比、樣本熵、周期等統計指標,結果見表2.
表2 各分量統計指標
由表2可知:IMF1~IMF8的平均周期逐漸增大,IMF3平均周期為16.65,表達每日統計的17個時段的周期尺度, IMF2為半日的周期尺度,IMF6為一周的周期尺度.IMF分量的周期尺度能明顯反應原始序列部分尺度特征.
Pearson相關系數和Kendall系數衡量兩序列之間的相關性.IMF1~IMF3與原始序列的Pearson相關系數及Kendall系數均顯著大于其它分量,IMF1~IIMF3包含了原始序列的較多特征.樣本熵表征序列的復雜程度,IMF1~IIMF3的樣本熵遠大于后續IMF分量,表明IMF1~IIMF3分量序列本身也具有較高復雜性.
IMF1~IIMF3的方差占比遠大于后續分量,表明這三個分量反應了大部分原始序列波動情況;殘差序列方差占比僅為1.35%,表明原始序列總體走向趨勢較穩定.
由于經驗模態分解本身會存在分解誤差,為避免分解序列過多導致的誤差累積,綜合考慮IMF1~IIMF3組合為高頻序列,IMF4~IIMF8組合成低頻序列,殘差序列單獨為趨勢序列.組合后的高、低頻序列和趨勢序列見圖6,相關統計指標見表2.由表2可知:高、低頻序列各相關系數明顯增大,表明原始序列大部分的波動特征可以被高、低頻序列表達.
圖6 高、低頻及趨勢序列分組結果
統計2020年5月2日—6月18日期間,站點每日時間序列1~4階自相關系數ρ≥0.3的日序列占比情況,結果發現日時間序列滯后2個時段的統計占比為94.83%,滯后3個時段的統計占比僅為1.72%,可認為預測時段前2個時段的進站客流量與預測時段具有良好的相關性,以預測時段前的2個時段客流量作為狀態向量.
以2020年6月15—16日小時進站客流量作為確定K值的測試樣本,以2020年5月2日—6月14日的客流量作為歷史數據序列,取預測時段前兩個時段客流量作為狀態向量,狀態向量的匹配距離采用歐氏距離,計算不同K值下測試樣本的平均絕對百分比誤差,結果見圖7.
圖7 不同K值下測試樣本誤差統計
由圖7可知:對于6月15日測試樣本,K值取1~4時,平均絕對百分比誤差從16.98%降至11.20%,K值取4~8時,平均絕對百分比誤差僅降低0.39%;對于6月16日測試樣本,K值取4~8時,平均絕對百分比誤差僅降低0.84%.說明較大的K值對于提高預測精度并無明顯作用,因此取K值為4,既能保證較好的預測精度,又可提高計算效率.
分別采用EMD-KNN組合算法、單一KNN算法和ARIMA模型對6月19—22日的廣濟南路站小時進站客流進行預測,其中19日、22日為工作日,20、21日為非工作日,預測結果見圖8.
圖8 EMD-KNN/KNN/ARIMA預測結果
由圖8可知:EMD-KNN組合算法與單一KNN算法在預測結果的變化趨勢上與真實值高度一致,而ARIMA模型僅在19日預測趨勢與實際值相似,其余3 d的預測趨勢相差甚遠.20日為非工作日,ARIMA預測結果卻出現早晚高峰,21和22日預測結果與實際值存在較大偏差,這是因為ARIMA模型周期性參數設定較為固定,導致難以區分工作日與非工作日的變化規律,尤其當出現節假日調休時,預測誤差會更大.
利用平均絕對誤差(MAE)、平均絕對百分比誤差(MAPE)和均方根誤差(RMSE)三個指標反映預測精度,各指標匯總見表3.
表3 三種算法預測精度匯總表
由表3可知:EMD-KNN、KNN和ARIMA在四天預測日的平均絕對百分比誤差均值分別為8.74%、12.03%、20.74%,與KNN算法、ARIMA模型相比,EMD-KNN組合算法精度更高,更加適合不區分工作日和非工作日的小時客流時間序列預測,全日預測趨勢與真實值趨勢高度匹配.
1) EMD-KNN組合算法與KNN算法均能有效捕捉全日客流變化趨勢,在預測時間粒度為1h以及不區分工作日和非工作日情況下,EMD-KNN組合算法預測精度優于KNN算法,精度能保持在90%左右,后續可進一步討論不同時間粒度下的預測效果.
2) 由于研究站點本身為通勤類換乘站點,其工作日客流特征較非工作日更明顯,因此存在工作日預測效果相對優于非工作日,后續可進一步研究EMD-KNN組合算法在不同類型站點的適用性.
3) 本時間序列預測中,ARIMA模型預測精度不高,這是由于該模型周期性參數設定較為固定,較難區分工作日與非工作日的變化規律,以及調休等因素帶來的影響.