閆銀鎖 孫閃華 李亞敏 李艷圓 趙鑫 陶荔瑩 高志東
全國第五次結核病流行病學抽樣調查結果顯示,我國肺結核疫情呈現(xiàn)下降趨勢,但不同地區(qū)有所差異[1]。“十二五”期間,我國肺結核報告發(fā)病率年遞降率為3.0%[2]。北京市監(jiān)測數(shù)據(jù)也顯示,2005—2014年間肺結核發(fā)病狀況整體呈下降趨勢[3]。在北京市政府高度重視公共衛(wèi)生和人民健康的背景下,做好肺結核發(fā)病情況預測評估,早期識別疫情變化及合理配置衛(wèi)生資源是一個迫切而重要的問題。
注 上圖左側垂直虛線為顯著水平為α=0.05時的置信帶圖1 原始序列經(jīng)一階差分和季節(jié)差分后自相關及偏自相關系數(shù)圖
時間序列分析是有效預測變化趨勢的手段,已在公共衛(wèi)生領域得到有效嘗試[4-6]。由于不同傳染病的傳播途徑不同,受自然環(huán)境和社會因素影響,不同地區(qū)的流行特征也不盡相同,因此選取恰當?shù)哪P褪菧蚀_預測發(fā)病情況的關鍵。本研究比較可應用于傳染病領域[7-8]的差分自回歸移動平均(autoregressive integrated moving average,ARIMA)模型、Elman神經(jīng)網(wǎng)絡及ARIMA-Elman組合模型時間序列分析方法,評價其對北京市肺結核發(fā)病趨勢的預測效果,尋找適合于北京地區(qū)肺結核流行特點的理想預測模型。
肺結核發(fā)病數(shù)據(jù)來自《中國疾病預防控制信息系統(tǒng)》的子系統(tǒng)《結核病信息管理系統(tǒng)》,選擇2010—2018年間現(xiàn)住址為北京市的肺結核發(fā)病數(shù)據(jù)作為研究對象,以Excel 2016軟件統(tǒng)計月報告發(fā)病例數(shù)。其中2017年及以前各月份報告發(fā)病例數(shù)作為模型基礎數(shù)據(jù),2018年月報告發(fā)病例數(shù)作為模型驗證數(shù)據(jù)。
(一)模型建立
1.ARIMA模型建立:ARIMA模型作為自回歸移動平均(autoregressive moving average,ARMA)模型的變體,是一類常用的隨機時序模型,由Box和Jenkins創(chuàng)立,亦稱B-J方法。它是一種精度較高的時序短期預測方法[9]。ARIMA模型用符號表示為ARIMA(p,d,q)(P,D,Q)s,參數(shù)p為非季節(jié)自回歸階數(shù),d為一般差分階數(shù),q為非季節(jié)性滑動平均階數(shù);P為季節(jié)性自回歸階數(shù),D為季節(jié)差分階數(shù),Q為季節(jié)性移動平均階數(shù),s為季節(jié)模型的時間單位周期[10]。在對一個時間序列建模時,應確定適宜的參數(shù)d、D、p、P,以及q和Q。
采用Eviews 9.0軟件建立ARIMA模型,導入基礎數(shù)據(jù)后進行模型識別?;A數(shù)據(jù)進行一階差分后自相關系數(shù)(autocorrelation function,ACF)及偏自相關系數(shù)(partial autocorrelation function,PACF)圖顯示自相關及偏自相關系數(shù)快速落入隨機區(qū)間,但滯后期(k)=12時樣本的自相關系數(shù)顯著不為零,表明季節(jié)特征存在。經(jīng)季節(jié)差分后(圖1)季節(jié)性特征有所減弱但仍然存在,經(jīng)再次季節(jié)差分無明顯改善,故此模型只選用一次季節(jié)差分。
對序列進行零均值檢驗,得到該序列樣本平均數(shù)是-0.001,均值標準誤為0.015,序列與0差異無統(tǒng)計學意義,可以直接建立ARIMA(p,d,q)(P,D,Q)s模型,根據(jù)差分后的ACF和PACF圖截尾特征及模型檢驗結果(表1),ARIMA(1, 1, 1)(1, 1, 1)12模型殘差序列白噪聲檢驗相伴概率為0.730,可認為殘差序列滿足隨機性假設,其赤池信息量及貝葉斯信息量最小,選定為預測模型。
表1 ARIMA模型各待選參數(shù)檢驗結果
2.Elman神經(jīng)網(wǎng)絡建立:Elman神經(jīng)網(wǎng)絡是一種廣泛使用的反饋型神經(jīng)網(wǎng)絡。因其具有較強的適應時變特性的能力,適合用于時間序列數(shù)據(jù)的預測研究[11]。Elman神經(jīng)網(wǎng)絡作為一種典型的非線性局部遞歸網(wǎng)絡,在反饋型神經(jīng)網(wǎng)絡的基礎上增加了一個承接層,承接層通過延遲儲存反饋輸入狀態(tài),以達到記憶的目的,使其對歷史數(shù)據(jù)具有較強的敏感性,具有較強的動態(tài)學習能力。Elman神經(jīng)網(wǎng)絡由輸入層、隱含層、承接層與輸出層四部分組成(圖2)。各層神經(jīng)元節(jié)點數(shù)的確定對模型擬合優(yōu)劣至關重要,也是建模的前提。
采用MATLAB R2014a軟件建立Elman神經(jīng)網(wǎng)絡。神經(jīng)網(wǎng)絡模型要求訓練數(shù)區(qū)間為[0, 1]的數(shù)據(jù),因此建模前首先要將數(shù)據(jù)使用MATLAB軟件中的mapminmax函數(shù)做歸一化處理,輸出結果之后再進行反歸一化得到實際預測值。肺結核報告發(fā)病信息一般以月份進行統(tǒng)計,本研究即選取12作為輸入層節(jié)點、1為承接層和輸出層節(jié)點,隱含層節(jié)點數(shù)的確定尚未有一個很好的理論解析式,往往需要根據(jù)設計者的經(jīng)驗和多次實驗來確定,本次建模以試湊法對4~21個不同隱含層節(jié)點數(shù)比較來確定。模型建立以誤差0.0001作為訓練目標,以1000作為訓練步數(shù),當隱含層節(jié)點數(shù)為10時(表2),均方根誤差(root mean squared error,RMSE)值最小,故Elman網(wǎng)絡結構采用“輸入層-隱含層-承接層-輸出層”為“12-10-1-1”的形式。
圖2 Elman神經(jīng)網(wǎng)絡結構[11]
3.ARIMA-Elman組合模型建立:對于肺結核發(fā)病數(shù)的預測,雖然多種模型可以實現(xiàn),但各模型在不同實際情況下都存在一些自身缺陷,由此衍生出針對單一模型做局部調整和優(yōu)化的方法。本研究采用誤差倒數(shù)加權法將2種模型進行組合,首先計算單一模型均方根誤差,使用其倒數(shù)作為各自權重值,最后將兩部分迭加得到修正后的預測值(圖3)。
圖3 ARIMA-Elman組合模型建立方法
表2 不同隱含層節(jié)點數(shù)對Elman神經(jīng)網(wǎng)絡擬合度的影響
注 橫坐標中短刻度線的單位為“月”,長刻度線的單位為“年”圖4 2010—2017年北京市肺結核月報告發(fā)病例數(shù)趨勢圖
(二)預測效果評價
MAE是所有單個預測值與真實值誤差的絕對值的平均,由于離差被絕對值化,不會出現(xiàn)正負相抵消的情況,是常用的基礎的評估方法。MAPE不僅僅考慮預測值與真實值的誤差,而且消除了時間序列數(shù)據(jù)水平和計量單位的影響。MAE指標為絕對度量值,MAPE指標為相對度量值。這些指標的值越小,說明模擬擬合效果越好。
采用SAS 9.2軟件進行統(tǒng)計分析,對計數(shù)資料趨勢分析使用Cochran-Armitage趨勢檢驗,以P<0.05為差異有統(tǒng)計學意義。
表3 2010—2017年北京市肺結核年報告
注較上年度變化率(%)=(當年發(fā)病例數(shù)-上一年發(fā)病例數(shù))/上一年發(fā)病例數(shù)×100%
2010—2017年北京市肺結核報告發(fā)病例數(shù)月均641(7688/12)例,將肺結核月報告發(fā)病例數(shù)繪制成折線圖(圖4),整體顯示每年2月為報告發(fā)病的低谷,3月報告發(fā)病例數(shù)明顯提升,后續(xù)各月報告發(fā)病例數(shù)波動中有所下降,月報告發(fā)病例數(shù)呈現(xiàn)一定規(guī)律的周期往復特點。
以北京市2010—2017年間肺結核月發(fā)病例數(shù)作為基礎數(shù)據(jù),通過3種模型預測2018年北京市肺結核月發(fā)病例數(shù),與當年實際報告發(fā)病例數(shù)進行對比,具體情況見表4。
表4 2018年1—12月模型預測發(fā)病例數(shù)與真實報告發(fā)病例數(shù)對比
注 左上、右上、左下圖分別為ARIMA模型、Elman神經(jīng)網(wǎng)絡、ARIMA-Elman組合模型預測值與真實值對比圖,右下圖為3種模型與真實值的總體對比圖5 2018年月報告發(fā)病例數(shù)預測值與真實值的對比分析
從預測值和實際值對比來看,ARIMA模型、Elman神經(jīng)網(wǎng)絡和ARIMA-Elman組合模型對北京市肺結核月發(fā)病數(shù)的預測相對誤差多在±10%以內(分別為8個、8個和9個)。ARIMA模型預測結果相對誤差在±10%~±20%的有3個,超過±20%的有1個;Elman神經(jīng)網(wǎng)絡預測結果相對誤差在±10%~±20%的有2個,超過±20%的有2個;ARIMA-Elman組合模型預測結果相對誤差在±10%~±20%的有3個,相對誤差最大為19.1%。預測結果顯示,將肺結核發(fā)病例數(shù)作為時間序列數(shù)據(jù),并應用上述分析方法是可行的,但各模型預測結果的準確度有所不同。
可以觀察到上述兩種單一模型及組合模型預測結果是可以反映未來趨勢的,但預測特征表現(xiàn)出差異(圖5)。ARIMA模型預測結果整體較好,但在發(fā)病高峰及低谷月份預測結果與真實值對比波動較為緩和;Elman神經(jīng)網(wǎng)絡可以預測出各月份發(fā)病例數(shù)的變化趨勢,但與真實值相比變化幅度較大;ARIMA-Elman組合模型在整體趨勢及細節(jié)方面把握更為出色,尤其是2018年中后期預測結果更為準確。
通過MAE和MAPE客觀評價3種模型的預測表現(xiàn)。ARIMA模型、Elman神經(jīng)網(wǎng)絡及ARIMA-Elman組合模型評價指標MAE值分別為44.7(536/12)、47.8(574/12)和43.8(526/12),MAPE值分別為8.7%(1.039/12×100%)、8.2%(0.99/12×100%)和7.9%(0.953/12×100%)。對比結果可以看出,無論是MAE還是MAPE,組合模型獲得了強于單一模型的預測能力,其預測準確率最高,更能夠接近真實的肺結核報告發(fā)病情況。
ARIMA模型、Elman神經(jīng)網(wǎng)絡及ARIMA-Elman 組合模型對于北京市肺結核發(fā)病的疫情預測上,是可以反映月發(fā)病變化趨勢的。本研究中ARIMA 模型預測的相對誤差多在±10%以內,但有個別月份的預測相對誤差達到±10%甚至超過±20%,這個誤差范圍與付志勇等[12]對長沙市天心區(qū)肺結核發(fā)病例數(shù)的預測非常相近,但楊召等[13]使用該預測模型在某省肺結核發(fā)病率預測的MAPE僅為4.77%,相對本研究取得了更加理想的效果。多項研究結果也顯示,ARIMA模型作為國內肺結核發(fā)病較為常用的預測方法,其應用的地區(qū)或范圍不同,預測效果往往是存在差異的[14-16]。Elman神經(jīng)網(wǎng)絡雖適用于對時間序列數(shù)據(jù)進行擬合預測,但對比ARIMA模型來講使用相對較少,在肺結核領域的應用更為鮮見,而多用于交通流量、網(wǎng)絡流量等公共衛(wèi)生以外的研究[17-18]。本研究Elman神經(jīng)網(wǎng)絡預測結果的MAE指標比ARIMA模型要大,但MAPE指標較小,說明Elman神經(jīng)網(wǎng)絡個別預測值波動較大。由于MAE為絕對度量值,相比MAPE來說對異常值變化更為敏感,單個預測值誤差較大可以對整體誤差產生較為明顯的影響。
本研究中ARIMA-Elman組合模型基于誤差倒數(shù)法進行組合,誤差倒數(shù)法作為一種直觀且便于理解的權值分配方法,在實際應用中已得到使用[19-20]。近10年來北京地區(qū)肺結核發(fā)病趨勢預測多使用單一模型[21-23],本研究在此基礎上驗證了將ARIMA-Elman組合模型應用于該領域的可行性。從3種模型對北京市肺結核發(fā)病趨勢的預測評價指標來看,ARIMA-Elman組合模型比使用上述單一模型預測精度高、誤差小,更適用于現(xiàn)階段北京地區(qū)肺結核發(fā)病數(shù)的預測。
既往研究顯示,單一預測模型通常僅能抓取已有數(shù)據(jù)的部分特征,通過一定規(guī)則將單一模型進行組合,可收集更全面的信息,從而提高預測精度[24-25]。ARIMA模型描述線性規(guī)律的能力較強,數(shù)據(jù)中的非線性規(guī)律則以殘差的形式體現(xiàn),理想情況下殘差序列的自相關系數(shù)均為零,但在實際中這一要求往往無法達到。Elman神經(jīng)網(wǎng)絡最大的優(yōu)勢在于極強的非線性映射能力,其算法是采用基于梯度下降法,容易陷入局部極小點,對神經(jīng)網(wǎng)絡的訓練較難達到全局最優(yōu)。上述兩種單一模型在預測中有著各自的優(yōu)勢,同時又都存在一定的局限性。ARIMA-Elman組合模型獲取的信息更加全面,削弱了ARIMA模型對于殘差中信息的缺失以及Elman神經(jīng)網(wǎng)絡反饋式學習的局限,得到的預測值有更理想的預測效果。
本研究也存在一定局限性。本研究以肺結核報告發(fā)病例數(shù)作為研究基礎,實際情況下報告發(fā)病例數(shù)往往會低于真實發(fā)病例數(shù),雖然有多種方式可以估算肺結核實際發(fā)病情況,但需要花費較大成本或使用限制較多[26],因此獲取真實肺結核發(fā)病例數(shù)相當困難。本研究以報告發(fā)病例數(shù)代替實際發(fā)病例數(shù),數(shù)據(jù)的波動可能受到報告質量的影響。建模過程中,組合模型預測的方式有多種,較為常用方法包括等權重法、最小方差法、誤差倒數(shù)法、調和平均法、主成分分析法等[27-28]。本研究中組合模型僅使用線性組合方法中的誤差倒數(shù)法,而未對其他組合方法的預測效果進行驗證。但現(xiàn)實中組合預測模型組合方式紛雜多樣,依據(jù)實際情況探討適宜的組合方法將是另一個值得深入研究的課題。本階段主要在于模型的挑選,后續(xù)將嘗試應用預測模型在北京市肺結核發(fā)病的預測中進行實際運用,借助該手段早期識別疫情變化及指導衛(wèi)生資源配置,最大限度地發(fā)揮預測模型在實際應用中的作用。