肖德才 符湘云 胡 荍 熊曉紅 余元華 來瑞平 謝多雙
住院量是衡量醫(yī)院業(yè)務(wù)狀況的重要指標(biāo),在醫(yī)院統(tǒng)計(jì)工作及醫(yī)院管理工作中至關(guān)重要,對(duì)其準(zhǔn)確地預(yù)測(cè)可以為編制計(jì)劃和檢查計(jì)劃提供可靠的依據(jù)。灰色系統(tǒng)GM(1,1)模型是將原始數(shù)據(jù)經(jīng)過一次累加,變?yōu)檩^規(guī)律的數(shù)據(jù)后,再建立模型方程,對(duì)未來發(fā)展趨勢(shì)進(jìn)行預(yù)測(cè)。它不受一般統(tǒng)計(jì)模型對(duì)原始數(shù)據(jù)的種種限值,考慮影響因素少,具有較強(qiáng)的實(shí)用性。
1.資料來源 資料來源于某三甲醫(yī)院的《醫(yī)院統(tǒng)計(jì)年報(bào)》,住院量以一年內(nèi)辦理出院結(jié)算人次為準(zhǔn)。
2.計(jì)算方法
(1)灰色預(yù)測(cè)模型的計(jì)算方案
①讀入原始序列xt,生成一階累加序列yt;
②調(diào)用ILM模塊,計(jì)算矩陣參數(shù)a、u;
③根據(jù)矩陣參數(shù)計(jì)算預(yù)測(cè)值、絕對(duì)誤差和相對(duì)誤差;
④進(jìn)行擬合精度評(píng)價(jià),包括后驗(yàn)差檢驗(yàn)和小概率誤差檢驗(yàn);
⑤定義數(shù)組,對(duì)未來年份進(jìn)行預(yù)測(cè);
⑥繪制圖形直觀顯示實(shí)測(cè)值和預(yù)測(cè)值及其趨勢(shì);
⑦輸出預(yù)測(cè)結(jié)果。
(2)預(yù)測(cè)模型的擬合精度評(píng)價(jià)模型擬合精度高,方可用于外推預(yù)測(cè)?;疑A(yù)測(cè)模型GM(1,1)的擬合精度檢驗(yàn)指標(biāo)主要有后驗(yàn)差比值C和小誤差概率P。按后驗(yàn)差比值C和小誤差概率P綜合評(píng)定模型擬合精度的標(biāo)準(zhǔn)見表1。
(3)根據(jù)上述步驟編制SAS程序,對(duì)1997年至2010年住院量進(jìn)行擬合和預(yù)測(cè)。詳細(xì)的SAS過程如附錄:

表1 后驗(yàn)差比值C和小誤差概率P綜合評(píng)定擬合精度標(biāo)準(zhǔn)〔1〕
1.運(yùn)行上述SAS程序輸出結(jié)果(表2)

表2 歷年預(yù)測(cè)及誤差
2.模型擬合精度檢驗(yàn) 1997~2010年該院住院量的預(yù)測(cè)值和實(shí)測(cè)值平均相對(duì)誤差為4.11%。SAS結(jié)果顯示,后驗(yàn)差C=0.11777,小概率誤差P=1。根據(jù)表1擬合精度判斷標(biāo)準(zhǔn),可以認(rèn)為該模型擬合精度為優(yōu),擬合效果非常理想,可以用于外推預(yù)測(cè)。
4.灰色模型外推,預(yù)測(cè)結(jié)果(表3)

表3 醫(yī)院未來三年住院量
灰色預(yù)測(cè)是應(yīng)用最為廣泛一種統(tǒng)計(jì)預(yù)測(cè)模型。它與一般統(tǒng)計(jì)模型相比,最大的優(yōu)點(diǎn)是對(duì)樣本量和概率分布沒有嚴(yán)格的要求,且預(yù)測(cè)效果較好〔2〕?;疑P鸵笥休^多的矩陣計(jì)算,使其應(yīng)用受到一定的限制。如果用手工計(jì)算或分步計(jì)算,不僅復(fù)雜麻煩容易出錯(cuò),而且中間的結(jié)果保留精度也會(huì)給預(yù)測(cè)結(jié)果帶來一定誤差。SAS的IML模塊具有強(qiáng)大的矩陣計(jì)算功能,可以通過編程實(shí)現(xiàn)。同時(shí)SAS的IML模塊直接提供矩陣和SAS數(shù)據(jù)集間的相互轉(zhuǎn)換,可以避免保留精度不同對(duì)結(jié)果的影響,使用非常簡(jiǎn)單〔3〕。
住院量的高低在很大程度上反映出醫(yī)院的規(guī)模、醫(yī)療質(zhì)量、技術(shù)水平、管理水平以及病人對(duì)醫(yī)院的認(rèn)同度等。近年來,醫(yī)院逐步落實(shí)精益管理,不斷促進(jìn)醫(yī)院內(nèi)涵建設(shè),突出醫(yī)療特色,著力打造區(qū)域性醫(yī)療中心,現(xiàn)已取得明顯成效。醫(yī)院規(guī)模不斷擴(kuò)大,住院量不斷攀升。
文中SAS程序參考文獻(xiàn)〔3〕,〔4〕并進(jìn)行改進(jìn),增加小誤差概率檢驗(yàn)等,預(yù)測(cè)未來未來三年住院量取得良好效果。
1.郭海強(qiáng),曲波,丁海龍,等.灰色系統(tǒng)GM(1,1)模型在我國(guó)梅毒發(fā)病預(yù)測(cè)研究中的應(yīng)用.實(shí)用預(yù)防醫(yī)學(xué),2010,17(12):2398.
2.鄧聚龍.灰色預(yù)測(cè)與決策.第2版.武漢:華中理工大學(xué)出版社,1998,125.
3.顏杰,相麗馳,方積乾.灰色模型及SAS實(shí)現(xiàn).中國(guó)衛(wèi)生統(tǒng)計(jì),2006,23(1):75,80.
4.孔超,劉元鳳,沈續(xù)雷.灰色預(yù)測(cè)模型的SAS程序改進(jìn).中國(guó)衛(wèi)生統(tǒng)
計(jì),2008,25(6):640-641.
附錄:
data a1;/* 建立原始數(shù)據(jù)集a1*/
input t year xt@@;/* 讀入原始數(shù)據(jù)序*/
yt+xt;/* 生成一階累加序列*/
index=1;zt=-(yt+lag(yt))/2;/* 為數(shù)據(jù)矩陣b準(zhǔn)備數(shù)據(jù)*/
jbi=lag(xt)/xt;/*為光滑性檢驗(yàn)準(zhǔn)備數(shù)據(jù)*/
datalines;
1 1997 19452 2 1998 23018 3 1999 23780 4 2000 23559 5 2001 27847 6 2002 31490 7 2003 31357 8 2004 34239
9 2005 37851 10 2006 42827 11 2007 50595 12 2008 55569
13 2009 60783 14 2010 70154
;
proc iml;use a1;/* 調(diào)用ILM模塊,計(jì)算矩陣參數(shù)*/
read all var{zt index}into b where(zt^=.);/* 將 a1中變量zt和index值(不含第讀入矩陣b*/
read all var{xt}into yn where(zt^=.);/* 將a1中變量xt矩陣yn*/
ahat=inv(b`* b)* b`*yn;/* 計(jì)算參數(shù)矩陣^a=〔a,u〕t=〔btb〕-1btyn*/
ahatt=ahat`;na={a u};/* 將參數(shù)矩陣轉(zhuǎn)置*/
create a2 from ahatt〔colname=na〕;/*用轉(zhuǎn)置后的參數(shù)矩陣數(shù)據(jù)建立sas數(shù)據(jù)集a2*/
append from ahatt;/* 將數(shù)據(jù)讀入到數(shù)據(jù)集*/
quit;/* 退出iml模塊*/
data a3;set a2;index=1;run;/*為預(yù)測(cè)做準(zhǔn)備*/
data a4;set a1;if_n_=1;xt0=xt;keep xt0 index;run;
data a5;merge a1 a3 a4;by index;
if_n_=1 then xp=xt;
else do yt1=(xt0-u/a)*exp(-a*(t-1))+u/a;
yt0=(xt0-u/a)*exp(-a*(t-2))+u/a;
xp=yt1-yt0;/*計(jì)算預(yù)測(cè)值*/
end;
error=xp-xt;rerror=error/xt*100;n+abs(error);m+xt;are=n/m*100;
keep index t year xt xp error rerror are;
title'預(yù)測(cè)值與實(shí)測(cè)值對(duì)比';
proc print data=a5;run;/* 輸出預(yù)測(cè)值與實(shí)測(cè)值對(duì)比,其中are為平均相對(duì)誤差*/
proc means data=a5 std mean noprint;
var xt error;
output out=a5_2 std=s1 s2 mean=x_e_;
data a5_3;set a5_2;c=s2/s1;
if 0.65<c then jdu='不合格 ';
else if 0.5 <c< =0.65 then jdu='基本合格 ';
else if 0.35 <c<0.5 then jdu='合格 ';
else jdu='優(yōu)';
keep c jdu;
title'后驗(yàn)差檢驗(yàn)';
proc print data=a5_3;run;/*輸出后驗(yàn)差檢驗(yàn)結(jié)果*/
data a5_4;set a5_2;index=1;run;
data a5_5;merge a5 a5_4;by index;run;
data a5_5;do t=1 to 14;/*循環(huán)計(jì)算14年內(nèi)出現(xiàn)小概率*/
if abs(error-e_)/s1 <0.6475 then px+1;end;p=px/14;keep p;
title'小誤差概率P';
proc print data=a5_5;run;/*輸出小誤差概率P*/
data a6;input t year@@;/*讀入預(yù)測(cè)年份*/
cards;
15 2011 16 2012 17 2013
;
data a7;merge a3 a4;
array t(5)(13 14 15 16 17);/*定義一個(gè)數(shù)組(預(yù)測(cè)年份序號(hào))來實(shí)現(xiàn)循環(huán)計(jì)算*/
do i=3 to 5;
yt1=(xt0-u/a)*exp(-a*t(i-1))+u/a;
yt0=(xt0-u/a)*exp(-a*t(i-2))+u/a;
xp=yt1-yt0;output;
end;
drop t1 t2 t3 t4 t5 t6 a u b xt0 i yt1 yt0 index;
data a8;merge a6 a7;run;
data a9;set a5 a8;drop error rerror;run;proc gplot data=a9;
plot xp*year=1 xt*year=2/overlay;
symbol1 v=star i=join c=red;
symbol2 v=circle i=join c=blue;
title'Forecast and the actual contrast';
run;
proc print data=a8;/*顯示預(yù)測(cè)值*/
title'預(yù)測(cè)結(jié)果';run;