南昌大學(xué)公共衛(wèi)生學(xué)院(330006) 謝驍旭 袁兆康
基于R的江西省肺結(jié)核發(fā)病率ARIMA-SVM組合預(yù)測模型*
南昌大學(xué)公共衛(wèi)生學(xué)院(330006) 謝驍旭 袁兆康△
目的在ARIMA和SVM基礎(chǔ)上,提出一種肺結(jié)核發(fā)病率組合預(yù)測方法。方法以2004年至2012年江西省肺結(jié)核月發(fā)病率資料為例,利用R中的forecast包、e1071包,擬合ARIMA-SVM模型實現(xiàn)對肺結(jié)核發(fā)病率的預(yù)測。結(jié)果ARIMA-SVM組合預(yù)測模型的預(yù)測精度優(yōu)于單純ARIMA模型。結(jié)論ARIMA-SVM組合預(yù)測模型是一種切實可行的肺結(jié)核發(fā)病率預(yù)測方法。
支持向量機 差分自回歸移動平均 組合預(yù)測 肺結(jié)核發(fā)病率
肺結(jié)核是由結(jié)核分枝桿菌引發(fā)的肺部感染性疾病,是嚴重威脅人類健康的疾病,我國是世界上結(jié)核疫情最嚴重的國家之一[1]。對肺結(jié)核發(fā)病率進行預(yù)測,從而做到有效防控是一件具有實際意義的事情。常見的時間序列預(yù)測模型為差分自回歸移動平均(ARIMA)模型,ARIMA模型為基于線性數(shù)據(jù)的預(yù)測模型,因此可能會出現(xiàn)精度不理想的情況[2]。本研究將擬合ARIMA-SVM組合模型來預(yù)測江西省肺結(jié)核發(fā)病率。使用ARIMA-SVM預(yù)測模型既對肺結(jié)核發(fā)病率的線性趨勢進行了預(yù)測,又對非線性關(guān)系進行了預(yù)測;且能克服小樣本數(shù)據(jù)過擬合、泛化能力不強、局部極小、結(jié)果不穩(wěn)定、沒有解釋能力等問題。常用的時間序列分析軟件為SAS、SPSS、Matlab等,這些軟件雖然功能強大但是均為商業(yè)付費軟件,且軟件是大型集成統(tǒng)計軟件,不夠靈活。而R是一個自由、免費、源代碼開放的軟件,因此本研究擬用R進行預(yù)測模型的擬合。
從國家人口與健康科學(xué)數(shù)據(jù)共享平臺公共衛(wèi)生科學(xué)數(shù)據(jù)中心(http://www.ncmi.cn/info/69/1544)下載2004-2012年江西省肺結(jié)核月發(fā)病率,見表1。
表1 2004-2012年江西省肺結(jié)核月發(fā)病率(1/10萬人)
1.R軟件
R是用于統(tǒng)計分析、繪圖的語言和操作環(huán)境,R是屬于GNU系統(tǒng)的一個自由、免費、源代碼開放的軟件,它是一個用于統(tǒng)計計算和統(tǒng)計制圖的優(yōu)秀工具[3]。本文使用R語言3.0.2版forecast包Arima函數(shù)建立ARIMA模型,計算原序列與ARIMA模型預(yù)測結(jié)果的殘差。對殘差序列進行樣本重構(gòu)獲得SVM樣本集,使用R語言e1071包對殘差進行SVM預(yù)測。將兩種模型的預(yù)測結(jié)果相加得到最終的預(yù)測結(jié)果。
2.ARIMA模型[4-5]
ARIMA模型由Box和Jenkins提出,在ARIMA模型中預(yù)測值表達為過去若干個取值和隨機誤差的線性函數(shù)。
式中,yt是t時的預(yù)測值,εt是t時的隨機誤差,φi和θj是系數(shù),p為自回歸項數(shù),q為移動平均項數(shù)。
肺結(jié)核發(fā)病率ARIMA模型的建立:使用auto.arima()函數(shù)來尋找合適的模型,采用AIC準則作為參數(shù)估計和判斷模型殘差是否為白噪聲的標準。
3.ARIMA-SVM組合模型[6-8]
支持向量機(SVM)是Corinna Cortes和Vapnik等于1995年首先提出的,建立ARIMA-SVM組合模型的過程如下。
(1)使用ARIMA對肺結(jié)核發(fā)病率Pt進行預(yù)測,設(shè)預(yù)測結(jié)果為原序列和ARIMA模型預(yù)測結(jié)果的殘差為et,即et=Pt-t,序列{et}隱含了原序列中的非線性關(guān)系,et=f(et-1,et-2,…,et-n)+ε,其中,ε為隨機誤差。
(2)對上一步的殘差序列進行輸入向量構(gòu)造,得到SVM樣本集{e(ti),e(ti-s),…,e(ti-τs)},利用SVM對殘差進行預(yù)測,設(shè)預(yù)測結(jié)果為t。
肺結(jié)核發(fā)病率ARIMA-SVM組合模型的建立:使用tune.svm()函數(shù)確定核函數(shù)的參數(shù),使用svm()函數(shù)擬合模型。
1.ARIMA模型
擬合2004-2011年的江西省肺結(jié)核發(fā)病率數(shù)據(jù)后的ARIMA模型為ARIMA(0,1,1)(2,0,0)12。根據(jù)該模型得2012年1-12月發(fā)病率月預(yù)測值,見表2。
2.ARIMA-SVM組合模型
將2004-2011年的江西省肺結(jié)核發(fā)病率ARIMA模型預(yù)測值殘差使用SVM模型進行擬合,殘差SVM預(yù)測模型參數(shù):核函數(shù)為radial函數(shù),C=100,γ=0.01,ε=0.1。將SVM殘差預(yù)測值加上ARIMA預(yù)測值得肺結(jié)核發(fā)病率ARIMA-SVM預(yù)測值。根據(jù)該模型得2012年1-12月發(fā)病率月預(yù)測值,見表2。
3.ARIMA模型和ARIMA-SVM組合模型的比較
由表2可知,ARIMA-SVM組合模型的均方誤差、平均相對誤差均低于單純ARIMA模型,說明ARIMA-SVM組合模型有效的校正了ARIMA模型預(yù)測值的殘差。但是MAPE偏大,說明整體擬合效果不是非常好,這可能和肺結(jié)核發(fā)病率變化不穩(wěn)定及發(fā)病率較低有關(guān)。
表2 2012年江西省肺結(jié)核月發(fā)病率的兩種模型預(yù)測值比較(1/10萬人)
傳染病發(fā)病率的預(yù)測是一個非?;钴S的研究領(lǐng)域,傳統(tǒng)的預(yù)測方法通常沒有考慮到發(fā)病率數(shù)據(jù)的非線性部分,對于不規(guī)則數(shù)據(jù)序列難以確定合適的模型結(jié)果,因而會導(dǎo)致預(yù)測準確度不高的問題。
支持向量機(SVM)是一種可訓(xùn)練的機器學(xué)習(xí)方法,最早應(yīng)用于對資料進行分類,但是基于SVM的原理,現(xiàn)已將其擴展應(yīng)用于回歸以及時間序列分析中[9-10]。SVM在解決小樣本、非線性及高維模式識別中表現(xiàn)出許多特有的優(yōu)勢,支持向量機方法是建立在統(tǒng)計學(xué)習(xí)理論的VC維理論和結(jié)構(gòu)風(fēng)險最小原理基礎(chǔ)上的,根據(jù)有限的樣本信息在模型的復(fù)雜性(即對特定訓(xùn)練樣本的學(xué)習(xí)精度)和學(xué)習(xí)能力(即無錯誤地識別任意樣本的能力)之間尋求最佳折衷,以求獲得最好的推廣能力[11-12]。即使在訓(xùn)練樣本較小的情況下,SVM也可以有效地處理高維數(shù)據(jù),并對復(fù)雜模型擬合出效果好的模型;SVM表現(xiàn)出良好的回歸和時間序列預(yù)測能力,可以對非線性關(guān)系資料擬合出有效穩(wěn)定的模型;SVM在很多情形下是解決凸優(yōu)化問題的唯一解決方案;但是SVM也存在著缺點,如果沒有有效的算法,在數(shù)據(jù)包含較多的樣本時,模型擬合時間會非常長[13-14]。
SVM在多個領(lǐng)域中得到了廣泛的應(yīng)用,Patrick Rebentrost應(yīng)用SVM進行了對大數(shù)據(jù)的分類[15];Eszter Hazai應(yīng)用SVM對人類乳腺癌耐藥蛋白的底物進行了預(yù)測;PP Bhagwat應(yīng)用SVM預(yù)測了河流流量[16];吳虹采用ARIMA-SVM預(yù)測了石油價格[17]。本研究使用ARIMA模型擬合肺結(jié)核發(fā)病率的線性部分,使用SVM模型擬合肺結(jié)核發(fā)病率的非線性部分,建立兼有ARIMA和SVM模型優(yōu)點的ARIMA-SVM組合模型,從而達到更優(yōu)的預(yù)測效果。通過對江西省肺結(jié)核發(fā)病率的預(yù)測研究,驗證了組合模型比單一模型的預(yù)測結(jié)果更合理可靠。
綜上所述,ARIMA-SVM組合預(yù)測模型是一種切實可行的肺結(jié)核發(fā)病率預(yù)測方法。
1.Zhao F,Cheng S,He G,et al.Space-time clustering characteristics of tuberculosis in china,2005-2011.PLoS One,2013,8(12):e83605.
2.陳正利,陳偉,許汴利.應(yīng)用ARIMA模型對河南省1991-2011年乙型肝炎發(fā)病趨勢分析.中國衛(wèi)生統(tǒng)計,2013,30(3):401-402.
3.薛毅,陳立萍.統(tǒng)計建模與R軟件.北京:清華大學(xué)出版社,2007.
4.Cowpertwait PSP,Metcalfe AV.Introductory time series with R.Newyork:Springer,2009.
5.吳家兵,葉臨湘,尤爾科.時間序列模型在傳染病發(fā)病率預(yù)測中的應(yīng)用.中國衛(wèi)生統(tǒng)計,2006,23(03):276.
6.Fan RE,Chen PH,Lin CJ.Working set selection using second order information for training support vector machines.Journal of Machine Learning Research,2005,6:1889-1918.
7.Chang CC,Lin CJ.LIBSVM:A Library for Support Vector Machines. ACM Transactions on Intelligent Systems and Technology,2011,2(273SI).
8.David Meyer.Support Vector Machines-the Interface to libsvm in package e1071.http://cran.r-project.org/web/packages/e1071/vignettes/svmdoc.pdf.
9.李磊,黃水平.支持向量機原理及其在醫(yī)學(xué)分類中的應(yīng)用.中國衛(wèi)生統(tǒng)計,2009,26(1):22-25.
10.Jiang Q,Wang G,Jin S,et al.Predicting human microRNA-disease associations based on support vector machine.Int J Data Min Bioinform,2013,8(3):282-293.
11.武振宇,李康.支持向量機在基因表達數(shù)據(jù)分類中的應(yīng)用研究.中國衛(wèi)生統(tǒng)計,2007,24(1):8-11.
12.Chen Y,Xu W,Kuang F,et al.The research and application of visual saliency and adaptive support vector machine in target tracking field. Comput Math Methods Med,2013,2013:925341.
13.李望晨,王培承,潘慶忠.BPNN與SVM在醫(yī)院管理綜合評價中的應(yīng)用.中國衛(wèi)生統(tǒng)計,2008,25(1):15-17,21.
14.李望晨,張利平,李向云,等.基于SVM的死亡率時間序列預(yù)測設(shè)計與分析.中國衛(wèi)生統(tǒng)計,2010,27(1):76-77,79.
15.Rebentrost P,Mohseni M,Lloyd S.Quantum support vector machine for big feature and big data classification.arXiv preprint arXiv:1307.0471,2013.
16.Bhagwat PP,Maity R.Hydroclimatic stream flow prediction using Least Square-Support Vector Regression.ISH Journal of Hydraulic Engineering,2013(3):320-328.
17.吳虹,尹華.ARIMA與SVM組合模型的石油價格預(yù)測.計算機仿真,2010,27(5):264-266,326.
(責(zé)任編輯:郭海強)
江西省研究生創(chuàng)新專項資金項目(YC2013-S009)
△通信作者:袁兆康,E-mail:yuanzhaokang@126.com