趙天成,王玉瀟,王國臣
(山東科技大學,泰安 271000)
現如今,經濟水平的提高和人口的增長使得公共場所的擁擠問題日益嚴重,而易擁堵點人流的監控也逐漸成為城市規劃的重點,而現有的人口密度檢測多采用像素法,人口密度的預測多采用簡單的線性擬合預測,檢測成本高,預測精準度差,為解決這類問題,我們設計并完善了一種基于ARIMA時間序列算法的人口流量密度的預測模型,并運用于公共汽車站人口流量密度預測和相關車輛的宏觀調度問題的解決,進而反作用于車輛到站時間和最優路線變化,實現公交車的“智慧調度”。
根據泰安市某一站點的人流數據,剔除噪聲數據后,劃分為數據集與測試集,并加入每日的天氣情況、溫度變化、道路擁堵程度等指標建立ARIMA模型對車站人流量進行預測。首先,我們建立了ARIMA預測模型[1],具體的建模過程如下:
(1)對獲取的數據進行預處理。
(2)將非平穩序列轉變為平穩序列。如果序列是非平穩的,使用一階或者多階差分的方法對數據進行平穩化處理,如果數據有噪聲值,則需進行數據預處理,直到數據的自相關系數和偏相關系數值都異于零。
(3)依據時間序列的識別準則,建立時間預測模型。
(4)進行參數估計,檢驗是否具有統計學意義。
(5)進行假設檢驗,診斷殘差序列是否為白噪聲。
(6)利用已通過檢驗的模型進行預測分析。
為了直觀地了解ARIMA的預測過程,我們繪制了如圖1所示。

圖1 ARIMA預測流程圖
ARIMA預測模型的先對非平穩的指標數據Yt進行d次差分處理,然后再將原d次差分進行還原,最紅可以得到Yt的預測數據。ARIMA(p,q)的一般表達式為:
Xt=φtXt-1+…+φpXt-p+εt-θ1εt-1-…-thetaqεt-q,tε
式中,非負整數p為自回歸階數,φ1,…,φp為自回歸系數,左式為自回歸部分,右式為滑動平均系數,Xt為變量數據的序列。
當q=0時,模型成為AR(p)模型:
Xt=φtXt-1+…+φpXt-p+εt,tε
當p=0時,模型成為MA(q)模型:
Xt=εt-θ1εt-1-…-θpεt-p,tε
對以上建模過程有了初步了解后,我們進行了詳細建模,具體過程如下:
2.1.1 ARIMA模型的識別
通過計算預處理后的系列Xt的自相關函數(ACF)pk和偏自相關函數(PACF)pkk來進行模型識別,具體的計算公式為:

φ11=p1
φk+1,k+1=(pk+1-∑j=1kpk+1-jφkj)(1-∑j=1kpjφkj)-1
根據上述計算結果,可以確定符合Xt的具體模型。
2.1.2 參數估計和模型定階
參數估計和模型定階是建立變量預測模型的重要內容。在ARIMA模型的基礎上,利用最小二乘法對ARMA(p,q)的自回歸系數、滑動平均系數以及白噪聲方差等進行估計,得出φ1,…φp,θ1,…,θq,σ2。
我們利用AIC、BIC準則進行模型定階,首先要檢驗所建立模型是否能滿足平穩性和可逆性,即要求下式根在單位圓外,具體公式如下:

通過上式進一步判斷上述模型的殘差序列是否有白噪聲,如果是,則通過檢驗,否則,需要重新進行模型的識別。
2.1.3 變量值預測
根據前面建立的預測模型,使用進一步預測的方法對Xt進行預測,并考慮dci差分以及還原為變量Yt的預測結果。
下面介紹對車站人流量的預測過程,首先,我們利用Python將該車站的人流數據和天氣等因素指標數據導入,并轉換為列表數據。為初步了解數據,我們繪制了如圖2所示的人流情況變化圖。
通過變化圖我們發現,車站人流密度在一定范圍內上下波動,但因為ARIMA模型對時間序列的要求是平穩性,而通過變化圖發現該趨勢并不平穩,因此我們對該數據進行了差分處理,得到一階差分后的數據如圖3所示。

圖2 人流密度變化圖

圖3 一階差分圖
為了得到最好的差分效果,我們繪制了二階差分圖與一階差分圖進行對比,二階差分圖如圖4所示。

圖4 二階差分圖
通過二階差分圖與一階差分圖的對比,我們發現二者差距不大,為了計算的方便性,我們取一階差分結果進行下面的分析。
我們繪制了平穩時間序列的自相關和偏自相關圖,得到如圖5所示結果。

圖5 自相關和偏自相關圖
通過圖5可知,自相關圖顯示有兩階超出了置信范圍,偏相關圖1到2階滯后,超出了置信范圍,因此我們考慮了三類模型,并利用三種準則進行了驗證[2],得到如表1所示結果。

表1 模型比較
可以看到ARMA(8,0)的aic,bic,hqic值均最小,所以選擇該模型。
確定模型后,我們進行了DF檢驗,得到的結果為2.00716981985,接近于2,所以無自相關性。
接下來我們利用Q-Q圖檢驗該模型是否符合正態分布,結果如圖6所示。

圖6 正態分布圖
通過圖6可以看出該模型符合正態分布。
明確我們得到了較好的模型后,我們利用Python進行了模型的預測,得到了如圖7所示結果。

圖7 模型預測圖
通過圖7預測的數據可以看到,在接下來的時間序列中,此車站人流密度仍處于平穩狀態,呈現先上升后下降再上升的變化趨勢,但波動程度較小,說明隨著時間的增加,車站人流逐漸趨于穩定。
我們利用python通過劃分訓練集與測試集,取一部分測試數據與預測的人流密度進行比較,對測試數據與車站人流密度簡化后作比較得到模型準確率。模型優化前預測值的準確率為0.8137254901960784,預測準確率較高。
為了更進一步對我們的模型進行優化,提高車站人流密度的預測精度,我們建立了基于k-means聚類的ARIMA組合模型。
2.4.1 聚類分析
通過對數據的觀察與篩選后,我們使用k-means聚類算法[3]對篩選后的數據集進行了研究分析,首先要確定聚類算法中類的種數k,我們使用了手肘法和輪廓系數法,具體過程如下:

圖8 手肘圖
(1)手肘法。我們讓k值從1開始取值直到取到10,對每一個k值進行聚類并且記下對應的SSE,然后畫出k和SSE的關系圖,最后選取肘部對應的k值作為我們的最佳聚類數,利用python得到圖8所示結果。
由圖8可知肘部對應的k值為3,故對于數據集的聚類而言,最佳聚類數應該選3。
(2)輪廓系數法。該方法的核心指標是輪廓系數,某個樣本點xi的輪廓系數定義如下:

式中,a是xi與同簇的其他樣本之間的平均距離;b是xi與最近簇中所有樣本的平均距離,稱為分離度。同樣對k值從1到10取值,得到聚類數k與輪廓系數的關系如圖9所示。

圖9 輪廓系數圖
可以看到,輪廓系數最大的k值仍然是3,這表示我們的最佳聚類數為3。在手肘圖中k的值也為3,因此最終選取k值為3進行聚類分析。
在進行聚類分析之前,我們先對數據集中的數據進行標準化,取k值為3,最大循環次數為500,利用sklearn.cluster包中的KMeans方法進行聚類,統計出各個類別的數目,其中編號為0的類包含197條數據,編號為1的類包含283條數據,編號為2的數據包含67條數據,并生成新的聚類分類表附件二,接下來我們找到聚類的中心點,進行橫向連接,得到聚類中心對應的類別下的數目,并重命名表頭,為了方便對數據進行操作,我們利用TSNE方法對數據進行了降維操作,對不同的數據進行格式轉換,最終利用matplotlib庫中的plot方法做出了可視化的聚類圖像,見圖10。

圖10 聚類結果
由圖10結果顯示,聚類結果分離度較好,我們分析了聚類算法生成的附件二,對每一類的數據分別進行了預測,發現每一類的預測精確率均達到了85%以上,其中類別編號為1的類預測準確率為0.8921568627450981,因此可以應用基于k-means聚類的ARIMA組合模型進行評估。
本文在優化人口流量密度預測的算法上,從整體非線性變化、周期性變化、特殊值處理和誤差消除幾個方面完善預測結果的準確性,相較于傳統方法,自主性和準確性更高,成本更低,再結合k-means聚類算法,實現算法的動態更新,完美解決了公交車站點車次調度問題,進而可以優化乘客對相關車次的到站時間和最優路線更改,實現“智慧公交”。具有較大的市場需求和廣闊的應用前景。