劉炳麟 王志萍
對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行分析的目的是為了預(yù)測(cè)未來。其分析方法有多種,本文介紹作為分析方法之一的Microsoft時(shí)序挖掘模型,在Excel環(huán)境下實(shí)現(xiàn)對(duì)時(shí)間序列數(shù)據(jù)的分析預(yù)測(cè)。本文將展示它在門診掛號(hào)預(yù)測(cè)中的應(yīng)用效果,可以作為醫(yī)院門診部制定工作計(jì)劃、合理安排人、財(cái)、物資源的科學(xué)依據(jù)。
Microsoft時(shí)序算法是Microsoft SQL Server 2008 A-nalysis Services(SSAS)提供的回歸算法,用于創(chuàng)建數(shù)據(jù)挖掘模型以便對(duì)預(yù)測(cè)方案中的連續(xù)列(如門診掛號(hào)人次)進(jìn)行預(yù)測(cè)。Microsoft時(shí)序算法包括兩個(gè)獨(dú)立的算法:ARTXP算法和ARIMA算法。ARTXP算法針對(duì)短期預(yù)測(cè)進(jìn)行了優(yōu)化,因此可預(yù)測(cè)序列中下一個(gè)可能的值,ARIMA算法針對(duì)長期預(yù)測(cè)進(jìn)行了優(yōu)化。
默認(rèn)情況下,Microsoft時(shí)序算法在分析模式和進(jìn)行預(yù)測(cè)時(shí)混合使用這兩種算法。該算法使用相同的數(shù)據(jù)為兩個(gè)單獨(dú)的模型定型:一個(gè)模型采用 ARTXP算法,另一個(gè)模型采用ARIMA算法。因?yàn)锳RTXP最適合于短期預(yù)測(cè),所以在一系列預(yù)測(cè)的開始時(shí)十分重要。但是,隨著預(yù)測(cè)的時(shí)間段不斷向?qū)硌由?,ARIMA就比較重要了。在進(jìn)行前幾步預(yù)測(cè)時(shí)只使用ARTXP,完成前幾步預(yù)測(cè)后,結(jié)合使用ARIMA和ARTXP,隨著預(yù)測(cè)步驟數(shù)的增加,預(yù)測(cè)越來越多地依賴 ARIMA,直至不再使用 ARTXP。
1.ARIMA
自回歸移動(dòng)平均模型(ARIMA),是由Box和Jenkins于20世紀(jì)70年代初提出的時(shí)間序列預(yù)測(cè)方法,基本思想是:將預(yù)測(cè)對(duì)象隨時(shí)間推移而形成的數(shù)據(jù)序列視為一個(gè)隨機(jī)序列,用一定的數(shù)學(xué)模型來近似描述這個(gè)序列,這個(gè)模型一旦被識(shí)別后就可以從時(shí)間序列的過去值及現(xiàn)在值來預(yù)測(cè)未來值。ARIMA數(shù)學(xué)模型由自回歸(AR)模型和滑動(dòng)平均(MA)模型組合而成,數(shù)學(xué)公式表示為:
Yt= φ1Yt-1+ φ2Yt-2+ … + φpYt-p+et- θ1et-1-θ2et-2- … - θqet-q
p為自回歸模型的階數(shù),Yt是時(shí)間序列在t期的觀測(cè)值,et是時(shí)間序列模型在t期的誤差或偏差。
2.ARTXP
ARTXP結(jié)合了自動(dòng)回歸技術(shù)和決策樹技術(shù)。在自動(dòng)回歸過程中,x在t的值(xt)是時(shí)間t之前的x一系列值的一個(gè)函數(shù),例如 xt=f(xt-1,xt-2,xt-3,…,xt-n)+εt,其中xt是待研究的時(shí)間序列,n是自動(dòng)回歸的階,通常小于該序列的長度,最后一項(xiàng)代表噪聲。使用時(shí)間序列算法的目標(biāo)是找到這個(gè)函數(shù)f。如果函數(shù)f是一個(gè)線性函數(shù),則有如下的形式,xt=a1xt-1+a2xt-2+a3xt-3+…+anxt-n+εt,其中ai是自動(dòng)回歸系數(shù)。使用Microsoft時(shí)序算法創(chuàng)建的模型是一個(gè)自動(dòng)回歸模型,在該模型中,函數(shù)f對(duì)應(yīng)一棵回歸樹。回歸樹按照屬性拆分,相當(dāng)于決策樹,樹的葉節(jié)點(diǎn)對(duì)應(yīng)一個(gè)回歸公式,用于創(chuàng)建數(shù)據(jù)挖掘預(yù)測(cè)模型。
ARTXP派生自以下事實(shí),即自動(dòng)回歸樹方法(一種ART算法)應(yīng)用于多個(gè)未知的先前狀態(tài)。ART算法的優(yōu)點(diǎn)是所需資料不多,可用自變量數(shù)列來進(jìn)行預(yù)測(cè)。但是這種方法要求數(shù)據(jù)必須具有自相關(guān)。
首先,下載Excel 2007數(shù)據(jù)挖掘加載項(xiàng):SQL Server 2008 Data Mining Add-ins for Microsoft Office 2007,將Excel 2007數(shù)據(jù)挖掘加載項(xiàng)安裝到計(jì)算機(jī)中。打開Excel 2007,可以發(fā)現(xiàn)菜單欄中增加了一個(gè)“數(shù)據(jù)挖掘”菜單。
真正使用此數(shù)據(jù)挖掘加載項(xiàng),還需要滿足如下條件:(1)計(jì)算機(jī)操作系統(tǒng)為Windows XP SP2以上或Windows 7等;(2)計(jì)算機(jī)中安裝有SQL Sever 2008。
以下介紹使用Microsoft時(shí)序挖掘模型:
1.連接數(shù)據(jù)挖掘服務(wù)器和Analysis Services數(shù)據(jù)庫
因?yàn)镸icrosoft時(shí)序挖掘模型工作模式是客戶端和服務(wù)器模式即 C/S模式,Excel作為客戶端,SQL Sever 2008作為提供數(shù)據(jù)挖掘模型和提供數(shù)據(jù)的服務(wù)器端,所以必須首先連接SQL Sever本地服務(wù)器,即在本機(jī)中安裝SQL Sever 2008時(shí)設(shè)定的服務(wù)器名稱,連接服務(wù)器的同時(shí)要連接到創(chuàng)建好的Analysis Services數(shù)據(jù)庫,通過此數(shù)據(jù)庫可以為數(shù)據(jù)挖掘模型提供要分析的數(shù)據(jù)。在通過點(diǎn)擊連接子菜單中的“選擇連接”,彈出一個(gè)對(duì)話框,單擊對(duì)話框中的“新建”,輸入服務(wù)器名稱和已創(chuàng)建的Analysis Services數(shù)據(jù)庫。
創(chuàng)建Analysis Services數(shù)據(jù)庫有兩種方式。一種是通過SQL Sever 2008創(chuàng)建多維數(shù)據(jù)倉庫時(shí)創(chuàng)建,這種方式往往是為了分析多維數(shù)據(jù)倉庫中的數(shù)據(jù),即數(shù)據(jù)來自多維數(shù)據(jù)倉庫。另一種是通過Excel 2007數(shù)據(jù)挖掘?qū)嵗齽?chuàng)建,在前面所述安裝Excel 2007數(shù)據(jù)挖掘加載項(xiàng)時(shí),微軟提供了一個(gè)實(shí)例,通過Window XP的“開始”→“程序”→Microsoft SQL 2008數(shù)據(jù)挖掘外接程序→服務(wù)器配置實(shí)用工具,來創(chuàng)建一個(gè)Analysis Services數(shù)據(jù)庫,但是此數(shù)據(jù)庫只有結(jié)構(gòu),沒有數(shù)據(jù),是空的。這種方式用來分析來自于Excel工作表中的數(shù)據(jù),即把要分析的數(shù)據(jù)輸入工作表中進(jìn)行分析。
2.數(shù)據(jù)準(zhǔn)備
本文數(shù)據(jù)來自上面所敘述的第一種方式。通過SQL Sever 2008創(chuàng)建了我院門診掛號(hào)數(shù)據(jù)倉庫,門診掛號(hào)的原始數(shù)據(jù)存儲(chǔ)在此數(shù)據(jù)倉庫中,新的數(shù)據(jù)不斷增加到數(shù)據(jù)倉庫中。在數(shù)據(jù)倉庫中建立掛號(hào)數(shù)據(jù)立方體,此立方體包括兩個(gè)維度,時(shí)間維度和門診科室維度,一個(gè)事實(shí)表,門診掛號(hào)人次事實(shí)表。
利用Excel的數(shù)據(jù)透視表作為數(shù)據(jù)立方體的數(shù)據(jù)前端展示工具。單擊Excel 2007的“數(shù)據(jù)”菜單→獲取外部數(shù)據(jù)子菜單中的“自其他來源“→”來自Analysis Services”,在彈出的對(duì)話框中輸入前面所述的服務(wù)器名稱,選擇所要分析的Analysis Services數(shù)據(jù)庫,將數(shù)據(jù)立方體的數(shù)據(jù)導(dǎo)入,以數(shù)據(jù)透視表的方式展示在Excel工作表中。本文選擇了2008年至2011年上半年的歷史掛號(hào)數(shù)據(jù),來預(yù)測(cè)未來的2011年7月的掛號(hào)數(shù)據(jù),分別選取了8個(gè)專業(yè)門診。
Excel工作表中時(shí)間序列數(shù)據(jù)的格式要求為:第一列為時(shí)間數(shù)據(jù),要有標(biāo)題,時(shí)間格式,例如2008年1月應(yīng)為200801或2008/1;其他列,標(biāo)題列為科室名稱,例如東院兒科門診、東院耳鼻喉門診等,數(shù)據(jù)為數(shù)字,例如各門診科室的掛號(hào)人次。
3.創(chuàng)建時(shí)序模型
用鼠標(biāo)單擊“數(shù)據(jù)建?!弊硬藛沃懈呒?jí),單擊“創(chuàng)建挖掘結(jié)構(gòu)”,將導(dǎo)入到工作表中的幾列數(shù)據(jù)選定作為創(chuàng)建挖掘結(jié)構(gòu)的源數(shù)據(jù),將Excel工作表中的時(shí)間數(shù)據(jù)列作為Key Time列。給創(chuàng)建的挖掘結(jié)構(gòu)輸入名稱,保存。單擊“將模型添加到結(jié)構(gòu)”,選擇剛剛創(chuàng)建的挖掘結(jié)構(gòu)名稱,在算法中選擇“Microsoft時(shí)序”,將要預(yù)測(cè)的列改為僅預(yù)測(cè),例如將標(biāo)題為東院兒科門診、東院耳鼻喉門診等的數(shù)據(jù)列改為僅預(yù)測(cè)。最后輸入模型名稱,保存。
4.瀏覽時(shí)序模型
通過“瀏覽”功能菜單,可實(shí)現(xiàn)瀏覽創(chuàng)建好的時(shí)序模型。本文通過預(yù)測(cè)8個(gè)專業(yè)門診2011年7月的掛號(hào)人次,顯示Microsoft時(shí)序挖掘模型預(yù)測(cè)效果。圖1為“瀏覽”后的預(yù)測(cè)效果。
圖1 預(yù)測(cè)趨勢(shì)圖
圖1中虛線為預(yù)測(cè)的部分,選擇【顯示偏差】復(fù)選框,可顯示偏差范圍,現(xiàn)以預(yù)測(cè)2011年7月以上幾個(gè)專業(yè)門診的掛號(hào)人次為例,展示預(yù)測(cè)效果。預(yù)測(cè)值和實(shí)際值比較見表1,東院免疫風(fēng)濕門診、東院神經(jīng)科門診、東院肝膽外科門診預(yù)測(cè)值非常接近實(shí)際值,其他專業(yè)門診實(shí)際值在預(yù)測(cè)偏差范圍內(nèi),僅東院泌尿外預(yù)測(cè)值偏離了實(shí)際值,這是因?yàn)槠陂g更換了科主任,有更多病人慕名而來。可以看出時(shí)序挖掘模型能較好地完成預(yù)測(cè)任務(wù),為醫(yī)院決策提供可靠的依據(jù)。
表1 2011年7月掛號(hào)人次實(shí)際值和預(yù)測(cè)值
Microsoft時(shí)序挖掘模型為醫(yī)院管理者提供了一種決策工具,不僅用于預(yù)測(cè)門診掛號(hào)人次,還可以預(yù)測(cè)科室收入、醫(yī)院總收入、藥庫出入庫數(shù)量等。
1.呂效國,劉凱峰,王占軍.用自回歸模型的預(yù)選方法預(yù)測(cè)門診人數(shù).中國衛(wèi)生統(tǒng)計(jì),2009,26(1):64.
2.Box GEP,Jenkins GM,Reisel GC.顧嵐主譯.時(shí)間序列分析-預(yù)測(cè)與控制.北京:中國統(tǒng)計(jì)出版社,1997:5-180.
3.謝邦昌,朱建平,來升強(qiáng).Execl 2007數(shù)據(jù)挖掘完全手冊(cè).北京:清華大學(xué)出版社,2008:175-197.
4.朱凌云,等.醫(yī)學(xué)數(shù)據(jù)挖掘技術(shù)、方法與應(yīng)用.生物醫(yī)學(xué)工程雜志,2003,20(3):559-562.
5.孫振球.醫(yī)學(xué)統(tǒng)計(jì)學(xué).第2版.北京:人民衛(wèi)生出版社,2007:461-477.