江蘇省疾病預(yù)防控制中心(210009) 劉文東 吳 瑩 艾 靜 梁 祁 胡建利 戴啟剛 李 媛 湯奮揚(yáng)
痢疾是全球面臨的重要公共衛(wèi)生問(wèn)題,每年的痢疾病例主要發(fā)生在發(fā)展中國(guó)家〔1〕。在我國(guó)痢疾也屬于常見病和多發(fā)病,其報(bào)告發(fā)病數(shù)一直高居我國(guó)甲乙類傳染病的前五位〔2〕,給社會(huì)和家庭帶來(lái)了嚴(yán)重的經(jīng)濟(jì)負(fù)擔(dān)〔3-4〕,是需要重點(diǎn)防治的傳染病病種之一。傳染病的預(yù)測(cè)可以及早發(fā)現(xiàn)傳染病發(fā)展趨勢(shì),準(zhǔn)確的預(yù)測(cè)是制定預(yù)防和控制傳染病的近期或長(zhǎng)遠(yuǎn)應(yīng)對(duì)策略的前提,建立合適的預(yù)測(cè)模型,提高預(yù)測(cè)的準(zhǔn)確性,對(duì)于傳染病控制工作意義重大。本文以江蘇省1995~2010年痢疾月發(fā)病數(shù)據(jù)為基礎(chǔ),探討誤差反向傳播(back-propagation,BP)神經(jīng)網(wǎng)絡(luò)在痢疾發(fā)病趨勢(shì)預(yù)測(cè)中的應(yīng)用。
江蘇省1995~2003年痢疾月發(fā)病數(shù)據(jù)來(lái)自歷年全省疫情統(tǒng)計(jì)報(bào)表,2004~2010年發(fā)病數(shù)據(jù)來(lái)自“中國(guó)疾病預(yù)防控制信息系統(tǒng)”的子系統(tǒng)“疾病監(jiān)測(cè)信息報(bào)告管理系統(tǒng)”。痢疾診斷標(biāo)準(zhǔn)參照衛(wèi)生部頒發(fā)的“細(xì)菌性、阿米巴痢疾診斷與處理原則(GB16002-1995)”、“細(xì)菌性和阿米巴性痢疾診斷標(biāo)準(zhǔn)(WS 287-2008)”,疫情報(bào)告遵循“傳染病信息報(bào)告管理規(guī)范”。
BP神經(jīng)網(wǎng)絡(luò)由Rumelhart等于1985年正式提出,是人工神經(jīng)網(wǎng)絡(luò)中應(yīng)用最廣泛的一種,實(shí)際應(yīng)用中80~90%的人工神經(jīng)網(wǎng)絡(luò)模型都采用BP網(wǎng)絡(luò)或其變化形式〔5-6〕。BP網(wǎng)絡(luò)是一種典型的多層前饋網(wǎng)絡(luò),具有輸入層、隱含層和輸出層,層與層之間采用全連接的方式,同層神經(jīng)元之間無(wú)相互連接;隱含層采用S型的sigmoid函數(shù)作為傳遞函數(shù)(如logsig()等),輸出層多采用線性傳遞函數(shù)purelin(),見圖1。
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)規(guī)則又稱為δ學(xué)習(xí)規(guī)則,是一種典型的有監(jiān)督學(xué)習(xí)。當(dāng)給定網(wǎng)絡(luò)一個(gè)輸入樣本時(shí),樣本信息由輸入層傳遞到隱含層,經(jīng)過(guò)隱含層神經(jīng)元處理后傳到輸出層,由輸出層神經(jīng)元進(jìn)一步處理后產(chǎn)生一個(gè)網(wǎng)絡(luò)輸出;如果網(wǎng)絡(luò)輸出與期望輸出之間有不滿足要求的誤差,則將誤差值沿連接通路逐層反傳并修正各層連接權(quán)值和閾值。用一組樣本反復(fù)訓(xùn)練網(wǎng)絡(luò),即重復(fù)信息前向傳播和誤差反向傳播的過(guò)程對(duì)網(wǎng)絡(luò)權(quán)值和閾值不斷進(jìn)行修正,直到網(wǎng)絡(luò)性能滿足要求。
建立BP神經(jīng)網(wǎng)絡(luò)的步驟:
(1)整理原始數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行歸一化處理;
(2)根據(jù)實(shí)際問(wèn)題確定輸入輸出維數(shù),構(gòu)造訓(xùn)練樣本、測(cè)試樣本;
(3)確定網(wǎng)絡(luò)結(jié)構(gòu):設(shè)定網(wǎng)絡(luò)層數(shù)及各層節(jié)點(diǎn)數(shù)N-M-Q,其中N為輸入層節(jié)點(diǎn)數(shù),Q為輸出層神經(jīng)元數(shù),M為隱含層神經(jīng)元數(shù);指定隱含層、輸出層神經(jīng)元的傳遞函數(shù);指定學(xué)習(xí)函數(shù);
(4)用訓(xùn)練樣本訓(xùn)練網(wǎng)絡(luò);
(5)用測(cè)試樣本測(cè)試網(wǎng)絡(luò);
(6)反復(fù)執(zhí)行第3-5步,找出最佳網(wǎng)絡(luò)。
本文采用MATLAB7.12完成BP神經(jīng)網(wǎng)絡(luò)模型擬合和預(yù)測(cè)分析。
1995~2010年江蘇省累計(jì)報(bào)告痢疾316887例,年均發(fā)病率為26.82/10萬(wàn)。1995~2003年期間發(fā)病數(shù)逐年下降;2004年發(fā)病數(shù)出現(xiàn)大幅度反彈,較2003年增加62.50%,之后又出現(xiàn)逐年下降的長(zhǎng)期趨勢(shì)。發(fā)病有明顯的季節(jié)性,夏秋季高發(fā),6~10月份發(fā)病數(shù)占全年發(fā)病數(shù)的60%以上。見圖2。
圖2 1995~2010年江蘇省痢疾月發(fā)病數(shù)時(shí)間序列圖
本文擬用1995~2010年的月發(fā)病數(shù)據(jù)建立6個(gè)不同的BP網(wǎng)絡(luò)。net1:用前3個(gè)月發(fā)病數(shù)預(yù)測(cè)下一個(gè)月發(fā)病數(shù);net2:用前6個(gè)月發(fā)病數(shù)預(yù)測(cè)下一個(gè)月發(fā)病數(shù);net3:用前12個(gè)月的發(fā)病數(shù)預(yù)測(cè)下一個(gè)月的發(fā)病數(shù);net4:用前3年歷史同期發(fā)病數(shù)預(yù)測(cè)當(dāng)前月份發(fā)病數(shù);net5:用前4年歷史同期發(fā)病數(shù)預(yù)測(cè)當(dāng)前月份發(fā)病數(shù);net6:用前5年歷史同期發(fā)病數(shù)預(yù)測(cè)當(dāng)前月份發(fā)病數(shù)。下面以net4為例詳細(xì)闡述BP網(wǎng)絡(luò)的建模過(guò)程。
(1)數(shù)據(jù)預(yù)處理
將1995~2010年的原始發(fā)病數(shù)據(jù)按時(shí)間順序從前到后排成一個(gè)向量 P=[P(1),P(2),P(3),…,P(i),…,P(190),P(191),P(192)],然后對(duì) P 中的元素按如下公式進(jìn)行歸一化處理:
上式中pp(i)表示向量P中的第i個(gè)元素歸一化后值,P(i)表示向量P中的第i個(gè)元素,min(P)表示向量P中取值最小的元素,max(P)表示向量P中取值最大的元素。歸一化后的數(shù)據(jù)形成新的向量PP=[PP(1),PP(2),PP(3),…,PP(i),…,PP(190),PP(191),PP(192)]。
(2)構(gòu)建訓(xùn)練樣本集、測(cè)試樣本集和預(yù)測(cè)樣本集
用前3年歷史同月數(shù)據(jù)作為網(wǎng)絡(luò)輸入,當(dāng)前月份發(fā)病數(shù)據(jù)作為對(duì)應(yīng)的預(yù)期輸出,整批數(shù)據(jù)可以形成168個(gè)樣本,用前144個(gè)樣本構(gòu)成訓(xùn)練樣本集,用隨后的12個(gè)構(gòu)成測(cè)試樣本集,最后12個(gè)構(gòu)成預(yù)測(cè)樣本集,預(yù)測(cè)集只有網(wǎng)絡(luò)輸入,沒有期望輸出。樣本集的構(gòu)建策略見表1。
表1 net4樣本集的構(gòu)成
(3)確定網(wǎng)絡(luò)結(jié)構(gòu)
由樣本集的結(jié)構(gòu)可知net4的輸入輸出層節(jié)點(diǎn)數(shù)分別為3個(gè)和1個(gè),隱含層神經(jīng)元數(shù)M依次取4、5、6、7、8、9、10,分別建立結(jié)構(gòu)為 3-4-1、3-5-1、3-6-1、3-7-1、3-8-1、3-9-1、3-10-1的7個(gè)BP神經(jīng)網(wǎng)絡(luò),用訓(xùn)練樣本集對(duì)每一個(gè)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練完成后用測(cè)試集樣本進(jìn)行仿真(預(yù)測(cè)),用MSE評(píng)價(jià)網(wǎng)絡(luò)性能:
上式中tt(i)為第i個(gè)測(cè)試樣本仿真結(jié)果的反歸一化值(即預(yù)測(cè)發(fā)病數(shù)),dd(i)表示第i個(gè)測(cè)試樣本對(duì)應(yīng)的期望輸出的反歸一化值(即實(shí)際發(fā)病數(shù)),MSE表示預(yù)測(cè)發(fā)病數(shù)與實(shí)際發(fā)病數(shù)誤差平方和的均數(shù),MSE越小表示模型預(yù)測(cè)效果越好。在本例中,當(dāng)M=8時(shí),MSE取得最小值,所以隱含層神經(jīng)元數(shù)確定為8個(gè),即net4的最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)為3-8-1。
重復(fù)(2)、(3)兩個(gè)步驟,分別建立 net1、net2、net3、net5、net6,其最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)分別為 3-5-1、6-17-1、12-28-1、4-9-1、5-11-1。
(4)選擇最優(yōu)預(yù)測(cè)網(wǎng)絡(luò)
用測(cè)試集分別對(duì) net1、net2、net3、net4、net5、net6進(jìn)行仿真,計(jì)算預(yù)測(cè)發(fā)病數(shù)與實(shí)際發(fā)病數(shù)之間的平均絕對(duì)誤差(MAE)、平均誤差率(MPAE):
上面兩個(gè)式子中tt(i)、dd(i)的意義同(3)。從表2中可以看出net3、net4、net5、net6的預(yù)測(cè)效果均較理想。其中,net3網(wǎng)絡(luò)結(jié)構(gòu)(12-28-1)過(guò)于復(fù)雜,net4、net5、net6預(yù)測(cè)效能相近,但net4網(wǎng)絡(luò)結(jié)構(gòu)最簡(jiǎn)單;綜合考慮預(yù)測(cè)效果和模型的簡(jiǎn)潔性選擇net4作為最終的預(yù)測(cè)模型。
表2 6個(gè)BP網(wǎng)絡(luò)的泛化能力比較
(5)江蘇省2011年1~12月痢疾發(fā)病數(shù)預(yù)測(cè)分析
用net4對(duì)歷史數(shù)據(jù)進(jìn)行仿真(組內(nèi)回帶),并對(duì)2011年1~12月數(shù)據(jù)進(jìn)行預(yù)測(cè)(趨勢(shì)外推),結(jié)果顯示模型擬合的動(dòng)態(tài)趨勢(shì)與實(shí)際情況基本一致,模型擬合效果良好。根據(jù)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果推算,2011年全省痢疾預(yù)測(cè)發(fā)病數(shù)為5515例,較2010年減少19.16%,將延續(xù)2004年以來(lái)逐年下降的長(zhǎng)期趨勢(shì)。見圖3。
圖3 BP神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)值與實(shí)際值比較
限于篇幅本文中僅給出net4建模及預(yù)測(cè)分析的編程語(yǔ)句,程序代碼如下(帶%的語(yǔ)句為注釋語(yǔ)句):
痢疾作為一種多發(fā)、常見的腸道類傳染病,是傳染病預(yù)測(cè)研究的熱點(diǎn)病種之一。目前對(duì)于痢疾發(fā)病時(shí)間序列建立的預(yù)測(cè)模型主要有灰色 GM(1,1)模型、ARIMA模型以及ARIMA與神經(jīng)網(wǎng)絡(luò)相結(jié)合的組合模型等三種類型〔7-10〕。建模方法的選擇是預(yù)測(cè)分析的難點(diǎn)之一,實(shí)際應(yīng)用中應(yīng)根據(jù)數(shù)據(jù)序列的特征選擇合適的方法。
江蘇省痢疾發(fā)病序列具有明顯的長(zhǎng)期趨勢(shì)和季節(jié)性特征,各月份數(shù)據(jù)波動(dòng)較大,加之2004年發(fā)病的急劇反彈使得整個(gè)序列的隨機(jī)性和變異度增加,一般的線性模型難以充分提取其內(nèi)在變化規(guī)律,因此考慮建立BP神經(jīng)網(wǎng)絡(luò)模型。分析結(jié)果表明,最終建立的模型很好的擬合了發(fā)病序列的動(dòng)態(tài)變化趨勢(shì),預(yù)測(cè)性能較為理想,平均誤差率僅為7.92%,最大相對(duì)誤差也控制在20%以下,可以用于未來(lái)發(fā)病趨勢(shì)的預(yù)測(cè)。
BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的確定是建模過(guò)程的一大難點(diǎn),尤其是隱含層神經(jīng)元數(shù)目的確定目前尚無(wú)有效的指導(dǎo)方法。隱含層神經(jīng)元數(shù)目過(guò)少建立的模型過(guò)于簡(jiǎn)單,對(duì)于數(shù)據(jù)的內(nèi)在規(guī)律提取不足,從而導(dǎo)致擬合不足;神經(jīng)元數(shù)目過(guò)多則建立的網(wǎng)絡(luò)結(jié)構(gòu)又可能過(guò)于復(fù)雜,導(dǎo)致過(guò)擬合現(xiàn)象。兩種情況均會(huì)降低模型的泛化能力,影響其應(yīng)用價(jià)值。只有通過(guò)反復(fù)嘗試,對(duì)不同網(wǎng)絡(luò)結(jié)構(gòu)的擬合效果進(jìn)行評(píng)價(jià),從中選擇最優(yōu)模型。本文在模型結(jié)構(gòu)確定過(guò)程中采用預(yù)測(cè)值和實(shí)際值之間的均方誤差作為性能評(píng)價(jià)參數(shù),直接比較模型的泛化能力,較好的避免了擬合不足或過(guò)擬合現(xiàn)象。另外,由于BP神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值的初始化采用隨機(jī)函數(shù),因此同一模型每次訓(xùn)練的結(jié)果均有差別,實(shí)際建模過(guò)程中應(yīng)采用循環(huán)控制語(yǔ)句對(duì)模型進(jìn)行反復(fù)訓(xùn)練,從中找出最佳訓(xùn)練效果,并將此次訓(xùn)練的模型加以保存用于隨后的預(yù)測(cè)分析。本文還對(duì)比分析了兩種樣本構(gòu)建策略的擬合效果:第一種策略是采用前面幾期的發(fā)病數(shù)據(jù)作為網(wǎng)絡(luò)輸入,下一期的發(fā)病數(shù)據(jù)作為對(duì)應(yīng)的期望輸出,其實(shí)質(zhì)是在下一期發(fā)病數(shù)與其前面幾期發(fā)病數(shù)之間建立一種映射關(guān)系,此種方法是神經(jīng)網(wǎng)絡(luò)用于時(shí)間序列預(yù)測(cè)分析時(shí)的慣用方法〔11-12〕;第二種策略是用過(guò)去幾年的歷史同期數(shù)據(jù)作為輸入,當(dāng)前周期的發(fā)病數(shù)據(jù)作為對(duì)應(yīng)的期望輸出,其實(shí)質(zhì)是在當(dāng)前周期發(fā)病數(shù)與過(guò)去幾年歷史同期發(fā)病數(shù)之間建立一種映射關(guān)系,目前此種方法尚未見相關(guān)文獻(xiàn)報(bào)道。分析結(jié)果表明第二種樣本構(gòu)建策略的預(yù)測(cè)效果明顯優(yōu)于第一種策略,這一現(xiàn)象主要是由于發(fā)病序列的變化特征所致。江蘇省痢疾月發(fā)病數(shù)據(jù)具有明顯的季節(jié)性,不同季節(jié)由于氣候、飲食習(xí)慣等因素的不同導(dǎo)致人群發(fā)病數(shù)據(jù)差異較大,因此用前面幾個(gè)月的發(fā)病數(shù)據(jù)擬合下一個(gè)月的發(fā)病趨勢(shì)效果欠佳。相反,由于相同季節(jié)痢疾發(fā)病的影響因素相近,發(fā)病數(shù)的變化趨于一致,用歷史同期發(fā)病數(shù)據(jù)擬合當(dāng)前周期的發(fā)病趨勢(shì)充分利用了發(fā)病序列的內(nèi)在規(guī)律,弱化了輸入輸出之間的隨機(jī)性,使擬合的模型更加合理,預(yù)測(cè)效果更理想。本文研究結(jié)果提示第二種樣本構(gòu)建策略在那些具有明顯季節(jié)性發(fā)病特征的傳染病的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)分析中具有一定的推廣意義。
1.J Kotloff KL,Winickoff JP,Ivanoff B,et a1.Global burden of Shigella infections:implications for vaccine development and implementation of control strategies.Bull WHO,1999,77(8):65l-666.
2.鐘豪杰,常昭瑞,張靜.中國(guó)2007年細(xì)菌性痢疾監(jiān)測(cè)分析.中華流行病學(xué)雜志,2010,31(3):304-307.
3.黎健,吳寰宇,顧寶柯,等.上海市細(xì)菌性痢疾的疾病經(jīng)濟(jì)負(fù)擔(dān)研究.中華流行病學(xué)雜志,2010,31(10):1196-1197.
4.李佳萌,張穎,高璐,等.天津市細(xì)菌性痢疾流行情況及疾病負(fù)擔(dān)研究.中華流行病學(xué)雜志,2009,30(10):1094-1095.
5.張良均,曹晶,蔣世忠.神經(jīng)網(wǎng)絡(luò)實(shí)用教程.北京:機(jī)械工業(yè)出版社,2009:31-77.
6.傅薈璇,趙紅.MATLAB神經(jīng)網(wǎng)絡(luò)應(yīng)用設(shè)計(jì).北京:機(jī)械工業(yè)出版社,2010:83-97,267-285.
7.陳正利,李瑞蘭,申振元,等.應(yīng)用灰色模型預(yù)測(cè)痢疾發(fā)病率.職業(yè)與健康,2004,20(11):85.
8.張文增,冀國(guó)強(qiáng),史繼新,等.ARIMA模型在細(xì)菌性痢疾預(yù)測(cè)預(yù)警中的應(yīng)用.中國(guó)衛(wèi)生統(tǒng)計(jì),2009,26(6):636-639.
9.陳莉.探討ARIMA模型在細(xì)菌性痢疾發(fā)病預(yù)測(cè)中的應(yīng)用.中國(guó)衛(wèi)生統(tǒng)計(jì),2011,28(4):417-419.
10.楊小兵,徐勇,彭磊,等.時(shí)間序列分析-廣義回歸神經(jīng)網(wǎng)絡(luò)組合模型在痢疾發(fā)病率預(yù)測(cè)中的應(yīng)用探討.中國(guó)初級(jí)衛(wèi)生保健,2008,22(8):64-66.
11.朱晶,劉會(huì)民,趙冰,等.基于BP神經(jīng)網(wǎng)絡(luò)的SARS傳播預(yù)測(cè).生物數(shù)學(xué)學(xué)報(bào),2007,22(2):288-292.
12.王瑋,許偉,鄭亞軍,等.基于BP神經(jīng)網(wǎng)絡(luò)的圍產(chǎn)兒出生缺陷患病率預(yù)測(cè).中華流行病學(xué)雜志,2007,28(5):507-509.