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