李順勇, 張鈺嘉
(山西大學(xué)數(shù)學(xué)科學(xué)學(xué)院,太原 030006)
肺結(jié)核作為我國重大傳染病之一,其發(fā)病數(shù)的預(yù)測已經(jīng)成為衛(wèi)生統(tǒng)計領(lǐng)域中一項熱門課題[1-3]. 研究肺結(jié)核發(fā)病數(shù)的一種有效方法是對其建立數(shù)學(xué)模型,不同的數(shù)學(xué)模型應(yīng)用到肺結(jié)核時序上時,擬合效果也不盡相同. Kermark 提出的SIS(Susceptible-Infected-Susceptible)模型是一種常見的傳染病模型,能夠較好地描述肺結(jié)核傳播機(jī)制[4]. 傳統(tǒng)時間序列模型由于其模型簡單易于實現(xiàn)得到了廣泛的應(yīng)用,但其在預(yù)測肺結(jié)核發(fā)病數(shù)時會出現(xiàn)滯后性等問題. BP 神經(jīng)網(wǎng)絡(luò)通過其較為強(qiáng)大的學(xué)習(xí)能力建立起了數(shù)據(jù)之間的非線性關(guān)系,在傳染病發(fā)病數(shù)預(yù)測方面有一定的優(yōu)勢,但其不能很好地適用于肺結(jié)核發(fā)病數(shù)模型[5-7]. 肺結(jié)核發(fā)病數(shù)的時序中不僅含有線性時序成分,還包括非線性時序,若采用單個預(yù)測模型則很難體現(xiàn)出該事件序列的復(fù)合特征,因此,不少學(xué)者將ARIMA、GM(1,1)、SVR等模型應(yīng)用到肺結(jié)核發(fā)病數(shù)預(yù)測中[8-13]. 2017年,Taylor 等研究人員提出了Prophet模型,該模型支持加入Holiday以及Changepoint,能夠彌補(bǔ)傳統(tǒng)預(yù)測模型(如ARIMA)靈活性、通用性的不足,在肺結(jié)核發(fā)病數(shù)的時序預(yù)測方面有較強(qiáng)的魯棒性[14-15]. Hochreiter 等學(xué)者提出了LSTM模型,該模型本質(zhì)上是RNN模型,該模型在實際應(yīng)用中能夠解決梯度彌散問題,廣泛應(yīng)用于圖像處理、自然語言處理、傳染病預(yù)測中[16].
本文針對肺結(jié)核發(fā)病數(shù)時間序列數(shù)據(jù)展開實驗,分別利用Prophet模型與LSTM模型對2011—2019年中國肺結(jié)核發(fā)病數(shù)時序數(shù)據(jù)進(jìn)行建模,比較兩種模型擬合效果以及預(yù)測性能,并解釋肺結(jié)核發(fā)病數(shù)的規(guī)律,掌握該病發(fā)展情況,為中國肺結(jié)核的防控工作提供依據(jù).
圖1 Prophet模型流程圖Fig.1 Prophet model flow chart
Prophet 模型是Taylor 等研究人員在2017 年提出的時序模型,該模型能夠有效地分析數(shù)據(jù)本身的特征以及變化規(guī)律,并有良好的預(yù)測性能. 該模型相較于傳統(tǒng)時序模型,加入了Holidays以及Changepoint 因子,預(yù)測更加靈活[13],Prophet 工作流程如圖1所示.
Prophet 模型可以理解為加性模型,由growth、seasonality、holidays三個部分組成,模型構(gòu)成如式(1)所示.
式(1)中:t為時間,g(t)為growth項,是模型的核心項,用來擬合時序中的非周期性變化,該項函數(shù)如式(2)所示.
式(2)中:C代表容量;k代表模型的增長率;b代表模型偏移量;t為時間. 可以看出,t增加時,1+e-k(t-b)趨近于1,即g(t)趨近于C.
s(t)為seasonality項,該項使用傅里葉級數(shù)代表周期因子,表達(dá)式如式(3)所示.
式(3)中:T 代表周期;an,bn是被估參數(shù);t為時間;n代表模型中使用周期數(shù)的一半.
h(t)為holidays項,該項將節(jié)日影響分成不同的獨(dú)立模型,表達(dá)式如式(4)所示.
式(4)中:每個holiday用i表示;t為時間;Z(t)=[1 (t ∈D1),…,1(t ∈Di)] ,1(t ∈Di)為指示函數(shù),Di為holidays集合,若t在Di中,則1(t ∈Di)的值為1,若t不在Di中,則1(t ∈Di)的值為0;κi為每個holidays 的參數(shù),代表對每個holiday的影響.
LSTM 是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種形式,與RNN 不同的地方在于LSTM 模型增加了Gated,解決了RNN 在層數(shù)較多時出現(xiàn)梯度彌散的問題,LSTM 模型在處理肺結(jié)核發(fā)病數(shù)時間序列時有較好的效果[14]. LSTM 模型的關(guān)鍵之處在于三個“門”結(jié)構(gòu),即Input Gate、Output Gate、Forget Gate,具體組成結(jié)構(gòu)如圖2所示.
圖2 LSTM組成結(jié)構(gòu)圖Fig.2 LSTM model framework
LSTM模型具體計算公式如式(5)~(10)所示.
式(5)~(10)中:it為Input Gate,ot為Output Gate,ft為Forget Gate,c?t為t時Cell中輸入的值,ct為t時Cell中的更新值,ht為儲存了t時以及之前隱藏信息的向量;sigmoid,tanh 為激活函數(shù);Wf,Wi,Wc,Wo均為權(quán)重矩陣,bf,bi,bc,bo為對應(yīng)Wf,Wi,Wc,Wo的偏置,具體單元結(jié)構(gòu)圖如圖3所示.
選取2011年7月到2019年9月一共98個月的肺結(jié)核發(fā)病數(shù)作為研究數(shù)據(jù),具體內(nèi)容如表1所示.
根據(jù)表1中數(shù)據(jù)進(jìn)一步得到肺結(jié)核發(fā)病數(shù)隨著時間變化的曲線,如圖4所示.
圖4的坐標(biāo)橫軸表示98個月份,坐標(biāo)縱軸為肺結(jié)核發(fā)病數(shù),從圖4可以看出,我國肺結(jié)核發(fā)病數(shù)每月波動較為明顯,具有逐年下降的趨勢,并且有一定的周期性.
為檢驗LSTM模型以及Prophet模型對肺結(jié)核發(fā)病數(shù)預(yù)測的效果,選取MAE以及RMSE兩個指標(biāo)作為評估的標(biāo)準(zhǔn),指標(biāo)計算公式如式(11)、式(12)所示.
式(11)~(12)中:x 為肺結(jié)核當(dāng)月發(fā)病數(shù)的實際值;x?為LSTM模型或者Prophet模型的預(yù)測值;n 為預(yù)測的總月數(shù).
采用Tensorflow 與Keras 庫建立LSTM 模型,該模型有三層,即Input、Output、Hidden 層,模型的epochs 設(shè)置為500,單元數(shù)設(shè)置為128,batch_size設(shè)置為1,loss函數(shù)設(shè)置為mean_squared_error,optimizer設(shè)置為adam,train_size設(shè)置為數(shù)據(jù)量的2/3,look_back設(shè)置為15,運(yùn)用LSTM模型對表1中數(shù)據(jù)進(jìn)行擬合. 此時,該模型的loss值為6.457 1×10-4,訓(xùn)練集的RMSE值1 439.99,預(yù)測集的RMSE值為5 915.26,訓(xùn)練結(jié)果如圖5所示.
圖5 LSTM模型擬合效果Fig.5 LSTM model fitting effect
從圖5可以看出,LSTM模型有較好的擬合效果以及預(yù)測性能,能夠較準(zhǔn)確地預(yù)測出肺結(jié)核發(fā)病數(shù)的趨勢以及人數(shù).
采用fbprophet庫建立Prophet模型,模型的interval_width設(shè)置為0.95,periods設(shè)置為12,fre設(shè)置為MS,運(yùn)用Prophet模型對表1中的數(shù)據(jù)進(jìn)行擬合. 此時,該模型的RMSE值為4 856.66,擬合效果如圖6所示.
圖6 Prophet模型擬合效果Fig.6 Prophet model fitting effect
圖6中陰影部分為interval_width 等于0.95時的Prophet模型預(yù)測值的上下界. 由圖6可知,Prophet模型有較好的擬合效果,預(yù)測結(jié)果也與實際情況相吻合.
為比較兩種模型預(yù)測值,運(yùn)用LSTM模型以及Prophet模型對表1中2007年6月至2018年12月的數(shù)據(jù)進(jìn)行訓(xùn)練,并對2019年1月至2019年6月的數(shù)據(jù)進(jìn)行預(yù)測,預(yù)測結(jié)果如圖7所示.
圖7 LSTM模型與Prophet模型對比效果Fig.7 Comparison of LSTM model and Prophet model
由圖7中兩個模型6個月的預(yù)測曲線可以看出,兩種模型均能較好地預(yù)測肺結(jié)核發(fā)病數(shù)的變化趨勢;相比LSTM模型,Prophet模型預(yù)測曲線與肺結(jié)核發(fā)病數(shù)實際曲線更加接近,預(yù)測效果更好,能夠更好地對發(fā)病數(shù)的趨勢、發(fā)病數(shù)的周期進(jìn)行擬合,并且,Prophet模型在發(fā)病數(shù)波動較大時也能有較好的擬合效果.
ARIMA模型與灰度模型常用于對傳染病發(fā)病人數(shù)進(jìn)行預(yù)測[6-7],為進(jìn)一步判斷LSTM模型與Prophet模型的預(yù)測性能,本節(jié)對ARIMA、GM(1,1)、LSTM、Prophet四種模型的預(yù)測性能進(jìn)行對比,運(yùn)用四種模型對表1中2007年7月至2018年12月的數(shù)據(jù)進(jìn)行訓(xùn)練,對2019年1月至2019年6月的數(shù)據(jù)進(jìn)行預(yù)測,并計算各個模型的MAE與RMSE值,模型對比結(jié)果如表2所示.
表2 四種模型對比結(jié)果Tab.2 Comparison of four models
從表2可以看出,Prophet模型的MAE值與RMSE值分別為5 124.33、5 905.32,兩項指標(biāo)的值均低于其余三種模型,說明Prophet模型的預(yù)測性能最好. 通過比較ARIMA、GM(1,1)、LSTM、Prophet四種模型的MAE、RMSE值可以看出,ARIMA模型的預(yù)測性能在四種模型中表現(xiàn)最差,GM(1,1)模型略微優(yōu)于ARIMA模型,而LSTM模型又優(yōu)于GM(1,1)模型,其MAE值與RMSE值分別為6 851.71、9 287.70,僅次于Prophet模型.
對肺結(jié)核發(fā)病數(shù)的準(zhǔn)確預(yù)測能夠為該病的防控工作提供一定的科學(xué)理論指導(dǎo),本文將LSTM 模型與Prophet模型應(yīng)用到肺結(jié)核月發(fā)病數(shù)的預(yù)測中. 實驗結(jié)果表明,LSTM模型與Prophet模型均有較好的擬合效果以及預(yù)測性能. 并且,本文將以上兩種模型的預(yù)測性能與ARIMA、GM(1,1)模型進(jìn)行對比,對比結(jié)果表明Prophet模型的預(yù)測性能最好,其MAE值與RMSE值分別為5 124.33、5 905.32,其次為LSTM模型,ARIMA 模型預(yù)測性能最差.