邵必林,饒 媛,何 欣
(西安建筑科技大學管理學院,陜西西安 710055)
中國作為基礎建設工程大國,城市軌道交通發展十分迅速,處于世界軌道交通發展前列。截至2020 年,中國地鐵運營線路6 280.8km,中心城市軌道交通客運量占公共交通客運總量出行率的38.7%,相較于2019 年提升4.1%。從交通運輸部的客流月報中可知,人們出行選擇公交的占比降低,地鐵客流運輸量占比逐漸增加。
地鐵相較于其他交通方式,具有速度快、客運乘載量大、準點率高的突出優勢。隨著地鐵成為日常出行的主要交通工具,人們對地鐵建設、運營及規劃提出更高的要求。在地鐵建設和運營過程中,預測客流量是一個不可或缺的工作,該結果的可靠性對地鐵的建設投資、運營效率及經濟效益起到至關重要的作用[1-2]。
現有客流量預測模型主要分為以時間序列模型為主的參數模型、以機器學習為主的非參數模型及多方法混合的組合預測模型。其中,時間序列預測模型包括自回歸模型(Auto-Regressive,AR)、移動平均模型(Moving Average,MA)、差分自回歸移動平均模型(Auto-Regressive Integrated Moving Average model,ARIMA)[3]及季節性差分自回歸移動平均模型(Seasonal Autoregressive Integrated Moving Average,SARIMA)[4]。趙鵬等[5]運用ARIMA 模型預測北京地鐵路網中的典型車站的客流量,驗證差分自回歸移動平均模型的有效性。蔡昌俊等[6]以廣州地鐵各車站進出站客流數據為例,證實ARIMA 模型的平均絕對百分誤差可保持在5%以內。李潔等[7]將預測步長作為短期客流預測的影響因素,以廣珠城際鐵路為例證實SARIMA 模型可運用于多步預測,相較于其他預測模型具有一定的優勢。孫湘海等[8]研究發現考慮交通流數據中日及周周期性的SARIMA 模型的預測效果最好。
此外,由卡爾曼濾波理論(Kalman Filtering Theory)衍生的卡爾曼濾波模型也屬于參數預測模型。朱中等[9]構建長春市重要交通通道的交通流量預測模型,模型結構簡單,僅利用歷史數據進行預測。但該模型需要設置諸多假設、映射關系等條件,在實際應用過程中的適應性較差。
非參數模型包括支持向量機(Support Vector Machines,SVM)模型、神經網絡模型等。其中,支持向量機模型屬于傳統機器學習模型,能夠擬合觀測數據中的非線性規律,該模型利用數據規律對未來數據或無法觀測的數據進行預測。付曉剛等[10]運用SVM 預測模型對春運期間的客流進行預測,驗證SVM 模型預測客流的可行性。楊軍[11]使用SVM 模型預測北京軌道交通客流,實驗結果表明SVM 模型在不同時間粒度情況下,均具有較高的預測精度。神經網絡模型模型包括BP 神經網絡(Back Propagation Neural Network,BPNN)、卷積神經網絡(Convolutional Neural Networks,CNN)、長短期記憶網絡(Long Short-Term Memory Networks,LSTM)等[12-13]。楊新苗等[14]將自適應性較強的模糊神經網絡(Fuzzy Neural Networks,FNN)引入公交線路客流的預測研究中,實驗結果表明該模型的預測精度優于常規AR、ARMA 模型。Wang 等[15]分析BP 神經網絡與鐵路客流時間序列的適用性,以此指導列車運輸組織方案。Gallo 等[16]使用人工神經網絡(Artificial Neural Network,ANN)預測地鐵客流,并使用仿真數據及那不勒斯地鐵一號線的客流進行實例測試。實驗結果表明,神經網絡模型相較于以往模型具有更高的預測精度,但神經網絡模型通常需要計算大量數據,所需時間過長,易受到數據規模、網絡深度及算法復雜度的影響。
為此,目前通常結合兩個及以上模型以精確、有效地預測地鐵客流量[17]。徐熠明等[18]結合指數平滑法與改進馬爾可夫模型預測上海市軌道交通節假日的客流量。滕靖等[19]等使用粒子群優化(Particle Swarm Optimization,PSO)算法對傳統的LSTM 模型進行優化,同時考慮天氣、日期等因素對模型預測精度造成的影響,證明混合模型的預測效果優于單一模型。翁鋼民等[20]使用PSO 算法選取支持向量回歸機(Support Vector Regression,SVR)的回歸參數,模型預測的均方差相較于SVR 提高67.3%。屈曉宜[21]結合神經網絡與集成經驗模態分解(Ensemble Empirical Mode Decomposition,EEMD),構建城市軌道交通客流預測的統計分析模型,縮短了神經網絡模型的預測時間,并將預測精度提高到90%以上。劉維源等[22]運用ARIMA模型擬合短時客流量均值,引入廣義自回歸條件異方差模型(Generalized Autoregressive Conditionally Heteroskedastic Models,GARCH)對客流方差進行擬合,相較于單一模型預測精度提高30%。綜上所述,組合模型既能充分發揮各預測模型的優點,又能提高預測精度,縮短預測時間。
然而,以上的方法均未考慮不同日期類型的地鐵客流規律。為了解決該問題,本文結合SARIMA 與SVM 模型預測不同日期類型的地鐵日客流量。其中,SARIMA 對客流數據線性部分具有良好的分析能力[23-24];支持向量機(SVM)能很好的適應非線性映射,防止模型發生過擬合,泛化錯誤率低,結果易解釋[25-26]。
自回歸模型(AR)和移動平均模型(MA)共同構成常用的時間序列預測模型——ARIMA 模型。具體的,AR 模型基于變量歷史時間數據對自身進行預測,描述的是當前值與歷史值間的關系;MA 模型通過累加AR 模型中的誤差項消除預測中發生的隨機波動。
由于AR 模型和MA 模型預測時,要求時間序列必須屬于平穩階段,然而在實際生活中獲取的時間序列通常為非平穩數據,無法適用于以上兩種模型。
由于地鐵客流數據是典型的時間序列,屬于季節性、非平穩的時間序列。為此,本文先對非平穩數據進行差分,待形成平穩時間序列后利用ARIMA 模型進行預測。
季節性時間序列指該序列存在周期性波動,需要先進行序列差分、季節差分才能輸入至ARIMA 模型中進行處理,由于處理后的ARIMA 模型包含了季節差分參數,因此將其稱為季節差分自回歸移動平均模型,即SARIMA,記為SARIMA(p,d,q)(P,D,Q)s,由式(1)—式(5)所示:


式中,p、q、d分別為非季節性自回歸階數、非季節性移動平均階數及非季節性差分次數,P、Q、D分別為季節性自回歸階數、季節性移動平均階數及季節性差分次數,s表示季節長度,εt為白噪聲序列,L為滯后算子,xt為t時刻的客流量。
SARIMA 模型的建模過程主要可分為以下4個部分:
(1)數據平穩化。觀察地鐵客流歷史數據,若存在明顯非平穩趨勢和季節性,可通過季節差分和序列差分法使序列轉化為平穩序列,或采用擴充的迪基一富勒(Augmented Dickey-Fuller,ADF)檢驗對原始時間序列進行差分,并進行平穩性檢驗以確定差分階數(d,D)。
(2)確定模型參數。利用自相關函數(Autocorrelation Function,ACF)圖和偏自相關函數(Partial autocorrelation Function,PACF)圖初步確定模型參數p、P、q、Q的取值范圍。
(3)模型檢驗。利用赤池信息準則(Akaike Information Criterion,AIC)和貝葉斯信息準則(Bayesian Information Criterion,BIC)篩選同一個樣本數據擬合參數p、P、q、Q分別在不同取值范圍內存在的SARIMA 模型,并根據最小信息準則原則選取結果最優的模型。
(4)模型預測。
SVM 是機器學習中實際效果最好的分類算法之一,屬于二分類模型,被定義為特征空間上間隔最大的線性分類器,其學習策略為間隔最大化,可轉化為一個凸二次規劃問題進行求解[27]。
SVM 設定存在分類超平面ωTx+b=0 能夠將樣本準確地劃分為兩類,與超平面平行的邊界平面如式(6)所示:

最優分類函數如式(7)所示:

式中,xi為樣本數據,ω為平面的法向量,b為參數,αi>0,i=1,2,…,n為拉格朗日系數,yi值取-1 或1。若數據不是線性可分的,則引入核函數對最優分類函數進行優化,如式(8)所示:

常見的核函數包括線性核函數、多項式核函數及徑向基核函數(Radial Basis Function Kernel)。由于徑向基函數在對面大樣本或小樣本數據、低維或高維數據、線性或非線性數據時,均具有良好的性能。并且,相較于多項式核函數,徑向基核函數的參數更少。因此,本文采用徑向基核函數進行實驗,具體表達式如式(9)所示:

根據西安4 號線7-8 月客流趨勢圖(見圖1)可見,周一—周五的地鐵客流趨勢相對穩定,在雙休日會出現異于前5 日的客流趨勢。然而,以往研究將所有日期輸入至模型中進行預測,造成預測結果較差。為此,本文將日期類型分為工作日和雙休日,工作日指周一—周五共5 天,雙休日指周六、周日2 天,并對這兩種類型分別進行實驗研究。

Fig.1 Passenger flow trend of Xi'an line 4 in July and August圖1 西安四號線7-8月客流趨勢圖
由于官方未公布完整的客流數據,導致在獲取地鐵客流信息和數據的過程中,收集到的數據存在空缺。為了解決該問題,通常利用刪除、統計填充、預測填充、插值法等方法對數據進行預處理。其中,刪除是最簡單的處理方式,但只適用于數據集中缺失較少的情況;隨機插值、牛頓插值及拉格朗日插值法是插值法填充最常用的3 種方法。由于牛頓插值法在增加額外插值點時,可利用之前的運算結果降低運算量,因此本文選取牛頓插值法對數據進行填充。
此外,節假日期間地鐵出行人次增加,但節假日的客流數據既不屬于工作日客流,也不能簡單歸于雙休日客流。于是,將節假日客流定義為異常數據,進行刪除處理。剩余客流數據按照工作日和雙休日進行劃分,將調休日客流劃分為工作日客流。
SARIMA 和SVM 的組合模型能夠擬合客流數據中線性和非線性部分。其中,地鐵客流量數據中的線性部分由SARIMA 模型進行擬合;SVM 模型則擬合SARIMA 模型殘差中的非線性部分。模型擬合結果如式(10)所示:

式中,Zt為地鐵客流量的實際值,Mt為SARIMA 模型擬合的線性部分,Nt為SVM 模型擬合的非線性部分,t=1,2,3,…,n。
SARIMA-SVM 客流量預測模型結構由圖2 所示,具體建模步驟為:
步驟1:對數據進行預處理。包括劃分工作日和雙休日客流數據、采用牛頓插值法補充數據缺失值、剔除節假日數據。
步驟2:構建SARIMA 預測模型。分別對工作日與雙休日客流數據進行建模和預測,預測結果和預測殘差{ηt}。
步驟3:構建SVM 模型。利用工作日和雙休日客流預測殘差數據分別構建SVM 模型并進行訓練,使用網格搜索算法獲取SVM 模型的最優參數,得到SVM 最優模型及SVM 模型的預測結果。
步驟4:將{ηt}導入訓練好的SVM 模型中進行殘差預測,得到預測結果
選取平均絕對誤差、均方誤差及平均絕對誤差百分比3 個指標檢驗各模型對地鐵客流量的預測效果。具體的,平均絕對誤差(Mean Absolute Error,MAE)表示實際值和預測值之間的誤差絕對值的平均值,由式(11)所示;均方誤差(Mean Square Error,MSE)表示實際值和預測值的相對誤差,由式(12)所示;平均絕對誤差百分比(Mean Absolute Percentage Error,MAPE)表示實際值跟預測值的絕對誤差,由式(13)所示。

式中,n表示樣本的數量,Zt為地鐵客流的實際值為地鐵客流的預測值。

Fig.2 SARIMA-SVM model structure圖2 SARIAM-SVM 模型結構
考慮到數據的完整性,以西安市2019 年1 月14 日—2020 年1 月13 日地鐵4 號線每日客流量為例,共收集客流數據365 條,客流量單位為萬人次/日,數據來源于西安地鐵運營分公司運營日報。經過數據處理后,共得到250 條工作日客流數據,88 條非工作日客流數據,非節假日數據338條。
3.2.1 工作日地鐵客流
(1)SARIMA 模型。將2019 年1 月14 日—2020 年1月13 日中250 條工作日客流數據作為實驗數據。在觀察客流數據圖時發現,工作日地鐵客流數據存在明顯的季節規律。因此,設置SARIMA 模型的季節參數為5。首先,經過一次季節差分及序列差分后獲得平穩的時間序列;然后,根據PACF 圖和ACF 圖選取合適的p、q、P、Q階數范圍進行試算;最后,根據信息準則最小原則進行定階。實驗最終確定p=5、q=2、P=1、Q=0,預測模型為SARIMA(5,1,2)(1,1,0,5),具體預測結果見表1、表2。
(2)SVM 模型。在2019 年1 月14 日—2020 年1 月13日的工作日客流數據中隨機抽取200 條數據作為訓練集,剩余數據作為測試集。首先,根據式(14)對數據進行歸一化處理:

式中,Zt為客流實際值,minZt為客流最小值,maxZt為客流最大值,Z't為歸一化后的客流值。
然后,利用sklearn 中的網格搜索方法GridSearchCV 尋找SVM 最優模型參數,確定最優的參數組合為懲罰參數c=0.2,核函數gamma=3.3。
最后,根據式(15)對SVM 模型預測的結果進行反歸一化:

如此,模型才能最終輸出所需要的客流預測結果,具體預測結果及指標檢驗結果見表1、表2。
(3)SARIMA-SVM 模型。在2019 年1 月14 日—2020年1 月13 日工作日客流數據中隨機抽取200 條數據作為訓練集,剩余數據作為測試集,SVM 模型參數為c=0.01,gamma=0.001。具體模型預測結果及指標檢驗結果見表1、表2。

Table 1 Forecast results of the three models in weekdays表1 工作日三種模型的預測結果 (萬人次)

Table 2 Comparison of prediction error indexes of the three models in weekdays表2 工作日三種模型的預測誤差指標比較
3.2.2 雙休日地鐵客流預測
(1)ARIMA 模型。將2019 年1 月14 日—2020 年1 月13 日中88 條雙休日客流數據作為實驗數據。在觀察雙休日的客流沒有明顯的季節變化后,只進行一次序列差分計算,即d=1。利用AIC 和BIC 準則定階后的模型為ARIMA(2,1,2),模型預測結果及指標檢驗結果見表3、表4。
(2)SVM 模型。相較于工作日SVM 預測模型,采用徑向基函數作為核函數,通過網格搜索得到的最優參數組合懲罰系數c=0.3,核函數gamma=1.1,模型預測結果及指標檢驗結果見表3、表4。
(3)ARIMA-SVM 模型。在2019 年1 月14 日—2020年1 月13 日中88 條非工作日客流數據中隨機抽取52 條數據作為訓練集,剩余數據作為測試集,且分別構建訓練集和測試集的對應序列{ηt},SVM 模型參數精選后結果為c=1,gamma=2,模型預測結果及指標檢驗結果見表3、表4。
3.2.3 不考慮日期類型的SARIMA-SVM 預測模型
將2019 年1 月14 日—2020 年1 月13 日收集到的338天數據全部作為實驗數據,直接進行建模。SVM 模型參數為c=0.01,gamma=2,模型檢驗指標見表5。
圖3、圖4 分別為工作日與雙休日時,SARIMA 模型、SVM 模型、組合模型的預測值與實際值的區別。

Table 3 Forecast results of the three models in weekends表3 雙休日三種模型的預測結果 (萬人次)

Table 4 Comparison of prediction error indexes of the three models in weekends表4 雙休日三種模型的預測誤差指標比較

Table 5 Comparison of prediction error indexes of two combined models表5 兩種組合模型的預測誤差指標比較

Fig.3 Comparison of prediction results of various models of subway passenger flow on weekdays圖3 工作日地鐵客流各模型預測結果比較

Fig.4 Comparison of prediction results of various models of subway passenger flow on weekends圖4 雙休日地鐵客流各模型預測結果比較
由表1、表2 和圖3 可見,地鐵工作日客流局部存在線性特征,整體上呈現為非線性特征;SARIMA 模型預測結果曲線與實際值曲線相近,能夠較好擬合線性特征,非線性特征通過以時間為參照的客流統計得到了一定程度的消減。
根據預測誤差指標最小原則,SVM 模型在非線性預測中展現了優秀的擬合能力,與SARIMA 模型能夠有效互補。此外,相較于單一模型,組合模型的誤差指標更小,優勢顯著。
由表3、表4 和圖4 可見,在預測雙休日客流時,組合模型相較于單個模型的MAPE 值更低;考慮日期類型的組合預測模型相較于其它模型,3 個檢測指標值均有所減少,證明劃分工作日與非工作日建模有助于提高模型預測精度。
本文分析地鐵日客流量在各日期類型中存在的不同特點,結合SARIMA 和SVM 方式擬合地鐵客流量的線性和非線性特征。通過與單一模型的比較發現,組合模型在工作日時,預測精度相較于SARIMA 模型、SVM 模型分別提高23.39%、15.43%;在雙休日時,分別提高1.62%、57.26%。實驗數據表明,SARIMA 和SVM 的組合模型預測準確率更高,基本達到交通客流的預測要求,能夠為軌道交通運營提供一定的參考。
但由于地鐵客流不僅存在周客流規律,還具有日客流規律,后續將采取更小的時間粒度對客流進行劃分與預測。此外,由于影響客流規律的因素眾多,本文僅以工作日和雙休日對數據進行劃分,尚未能完全體現客流的真實規律,后續也將引入多種因素進行建模,以獲得更高的預測精度。