桑泉紅 徐培文
1 山東省省立三院醫(yī)務部,250031 山東 濟南;2 澳大利亞阿德萊德大學,5000 澳大利亞 阿德萊德
統(tǒng)計預測是醫(yī)院實行目標量化管理工作的依據(jù),計劃和指標制定是否合理,關鍵取決于統(tǒng)計預測,科學地進行預測對醫(yī)院的管理工作起著非常重要的作用[1]。醫(yī)院門診量數(shù)據(jù)可以反映一個地區(qū)居民健康狀況、健康意識和醫(yī)院接診救治能力的總體情況,是研究地區(qū)醫(yī)療發(fā)展情況的重要指標[2]。目前利用統(tǒng)計模型預測門診量的方法較多,如ARIMA模型[3]、灰色模型[4]、自回歸移動平均模型[5]、季節(jié)性指數(shù)平滑法[6]等,均取得了良好的效果。隨著人工智能技術的不斷發(fā)展和提升,計算機技術應用越來越廣泛,本研究基于時間數(shù)列的歷史觀察值作為依據(jù),運用機器學習prophet模型進行門診量預測,反映其季節(jié)變動規(guī)律及發(fā)展趨勢,為有效利用現(xiàn)有資源以及協(xié)調科學發(fā)展提供科學依據(jù)。
資料來源于2013—2018統(tǒng)計年某醫(yī)院衛(wèi)生統(tǒng)計報表。見表1。
表1 某醫(yī)院2013—2018年門診人次
采用描述性方法對數(shù)據(jù)進行分析,利用prophet 乘積模型預測2019年每月的門診量,并以該院2019年實際門診數(shù)據(jù)驗證模型預測數(shù)據(jù)的準確性。
由于數(shù)據(jù)是根據(jù)時間序列組成,時序模型預測更能反映數(shù)據(jù)結果。通過對比發(fā)現(xiàn)基于時序序列的prophet時間序列預測模型比較適合本類數(shù)據(jù)的計算預測。
prophet的大致原理如下,它將一個時間序列看成是3部分的組合:趨勢,季節(jié)和假日。其算法公式如下:y(t)=g(t)+s(t)+h(t)+εt。其中,g(t)代表趨勢項,用于擬合時間序列里面的非周期項;s(t)代表周期性變化(如季節(jié)性變化);h(t)代表假期的影響(通常表現(xiàn)為對某些時間點的特殊影響);誤差項εt代表所有未被模型考慮到的誤差因素。同時該模型將一個預測類問題映射為曲線擬合類問題,這天然的就和那些用于分析數(shù)據(jù)間有依賴性的模型有所不同。盡管這種策略會使其放棄很多常規(guī)模型(如ARIMA)的一些優(yōu)勢,但是這種映射帶來了一些其他的優(yōu)勢:①可拓展,曲線擬合問題可以很輕易地引入季節(jié)和多周期性的影響,可以應用于多種數(shù)據(jù)類型;②數(shù)據(jù)靈活,與ARIMA模型不同,曲線擬合問題不需要數(shù)據(jù)等步長,所以不需要對數(shù)據(jù)進行一些特殊操作(如插值);③速度快,相比較于傳統(tǒng)的訓練模型,曲線擬合的速度更快,有助于對數(shù)據(jù)進行迭代;④變量易解釋,模型的大部分變量都有著明確的物理含義,并且擁有一定數(shù)據(jù)分析經(jīng)驗的人可以很快地將背景知識轉換為新的參數(shù)引入模型。
將統(tǒng)計數(shù)據(jù)可視化為折線圖(見圖1),可以看出醫(yī)院門診量總體呈現(xiàn)逐年增長趨勢。放大至每年進行對比觀察一些普遍存在規(guī)律,比如每年年初有較大幅度的減少,年中后期有小幅度減少,在年末一段時間內呈大幅上升趨勢。以上變化規(guī)律具有普遍性、周期性、短期增長或下降性。因此傳統(tǒng)的線形模型或復雜度不高的模型會出現(xiàn)欠擬合的缺陷,比如關鍵月份的門診量爆發(fā)式上升,線性模型或簡單的非線性模型不能準確預測,將導致醫(yī)療準備不充分以及滯后風險。
圖1 某醫(yī)院2013—2018年門診人次
prophet程序實現(xiàn):
import pandas as pd
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams[′font.sans-serif′]=[′SimHei′]
df_mz = pd.read_excel(′mzrc.xlsx′)
plt.plot(df_mz["ds"],df_mz["y"],linewidth=3,color=′r′,marker=′o′,markerfacecolor=′blue′,markersize=5)
plt.legend(loc=0)
plt.show()
通過對數(shù)據(jù)折線圖分析及預測數(shù)據(jù)需求,季節(jié)性因子應選用乘積模型,預測數(shù)量為12,周期為月。
prophet程序實現(xiàn):
from fbprophet import Prophet
m = Prophet(seasonality_mode='multiplicative')
m.fit(df_mz)
# periods=12 是預測后12個月份,freq=′M′是按月計算
future = m.make_future_dataframe(periods=12, freq=′M′)
fcst = m.predict(future)
m.plot(fcst)
plt.show()
根據(jù)2013—2018年各月份門診人次預測2019年門診人次。見圖2。
圖2 2019年某醫(yī)院門診人次預測趨勢圖
使用plot_components 繪制趨勢,模型的趨勢是按照年度線性增長的。季節(jié)因素中,每年1月份占比最高,2月份占比最低。2月份是歷年春節(jié)假期,病人往往習慣年前進行診療,其他月份比較平均,由此可見模型通過學習歷史數(shù)據(jù)能夠找出每個月的變動趨勢。見圖3。
圖3 某醫(yī)院門診人次趨勢模型與季節(jié)模型
prophet代碼如下:
m.plot_components(fcst)
plt.show()
用2019年某院實際數(shù)據(jù)對預測結果進行對比,全年預測相差17 101人次,誤差百分比2.88%。見表2。
表2 2019年某醫(yī)院門診人次預測值與實際值對比
自2013年醫(yī)院改革起,某醫(yī)院走上了持續(xù)、穩(wěn)步、良性發(fā)展之路;從趨勢分析,門診人次逐年增加,也表示醫(yī)院的治療水平逐步提高。
根據(jù)2013—2018年數(shù)據(jù)分析,門診人次季節(jié)變動以1年為1個周期,變動趨勢大致相同,2月份因春節(jié)原因,病人往往提前至1月份進行門診診治,其他月份波動幅度不大。
門診人次隨季節(jié)變化而變動的特點具有明顯的規(guī)律性,在加強宏觀調控的同時要健全微觀管理的調控。保證高峰期醫(yī)務人員安排充足,以充足的人力、物力、信息完成高峰季節(jié)的各項醫(yī)療活動;在低谷時期則可考慮安排業(yè)務進修、設備維護、職工探親休假等[7]。
利用prophet算法模型,能夠很好地找到年度增長趨勢,還可以自動擬合找到月份、季節(jié)性規(guī)律,該時序模型預測準確率高,適用于門診人次預測等方向。
隨著人工智能技術的廣泛應用,利用算法與數(shù)據(jù)相結合,新方法新技術能夠很好地應用于數(shù)據(jù)統(tǒng)計工作,基于時間序列的prophet算法用于醫(yī)院門診量預測,方法簡潔、直觀,結果比較準確。預測醫(yī)院門診人次能幫助醫(yī)院管理者更好地進行精細化管理,實現(xiàn)科學的量化醫(yī)療收入預算管理,從而有的放矢地控制醫(yī)療費用成本,加強內部管理,重視經(jīng)濟核算,控制預算外的開支,減少浪費以降低成本消耗[8]。在新形勢下,醫(yī)院統(tǒng)計人員必須認真做好醫(yī)療服務工作的統(tǒng)計,并通過對門診人次的定量化預測,為醫(yī)院領導制定醫(yī)療工作計劃,科學決策提供依據(jù),對提高衛(wèi)生資源利用效率,提高優(yōu)質服務具有積極意義。這也是預測模型在醫(yī)院管理中應用價值所在[9]。