桑泉红 徐培文
1 山东省省立三院医务部,250031 山东 济南;2 澳大利亚阿德莱德大学,5000 澳大利亚 阿德莱德
统计预测是医院实行目标量化管理工作的依据,计划和指标制定是否合理,关键取决于统计预测,科学地进行预测对医院的管理工作起着非常重要的作用[1]。医院门诊量数据可以反映一个地区居民健康状况、健康意识和医院接诊救治能力的总体情况,是研究地区医疗发展情况的重要指标[2]。目前利用统计模型预测门诊量的方法较多,如ARIMA模型[3]、灰色模型[4]、自回归移动平均模型[5]、季节性指数平滑法[6]等,均取得了良好的效果。随着人工智能技术的不断发展和提升,计算机技术应用越来越广泛,本研究基于时间数列的历史观察值作为依据,运用机器学习prophet模型进行门诊量预测,反映其季节变动规律及发展趋势,为有效利用现有资源以及协调科学发展提供科学依据。
资料来源于2013—2018统计年某医院卫生统计报表。见表1。
表1 某医院2013—2018年门诊人次
采用描述性方法对数据进行分析,利用prophet 乘积模型预测2019年每月的门诊量,并以该院2019年实际门诊数据验证模型预测数据的准确性。
由于数据是根据时间序列组成,时序模型预测更能反映数据结果。通过对比发现基于时序序列的prophet时间序列预测模型比较适合本类数据的计算预测。
prophet的大致原理如下,它将一个时间序列看成是3部分的组合:趋势,季节和假日。其算法公式如下:y(t)=g(t)+s(t)+h(t)+εt。其中,g(t)代表趋势项,用于拟合时间序列里面的非周期项;s(t)代表周期性变化(如季节性变化);h(t)代表假期的影响(通常表现为对某些时间点的特殊影响);误差项εt代表所有未被模型考虑到的误差因素。同时该模型将一个预测类问题映射为曲线拟合类问题,这天然的就和那些用于分析数据间有依赖性的模型有所不同。尽管这种策略会使其放弃很多常规模型(如ARIMA)的一些优势,但是这种映射带来了一些其他的优势:①可拓展,曲线拟合问题可以很轻易地引入季节和多周期性的影响,可以应用于多种数据类型;②数据灵活,与ARIMA模型不同,曲线拟合问题不需要数据等步长,所以不需要对数据进行一些特殊操作(如插值);③速度快,相比较于传统的训练模型,曲线拟合的速度更快,有助于对数据进行迭代;④变量易解释,模型的大部分变量都有着明确的物理含义,并且拥有一定数据分析经验的人可以很快地将背景知识转换为新的参数引入模型。
将统计数据可视化为折线图(见图1),可以看出医院门诊量总体呈现逐年增长趋势。放大至每年进行对比观察一些普遍存在规律,比如每年年初有较大幅度的减少,年中后期有小幅度减少,在年末一段时间内呈大幅上升趋势。以上变化规律具有普遍性、周期性、短期增长或下降性。因此传统的线形模型或复杂度不高的模型会出现欠拟合的缺陷,比如关键月份的门诊量爆发式上升,线性模型或简单的非线性模型不能准确预测,将导致医疗准备不充分以及滞后风险。
图1 某医院2013—2018年门诊人次
prophet程序实现:
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()
通过对数据折线图分析及预测数据需求,季节性因子应选用乘积模型,预测数量为12,周期为月。
prophet程序实现:
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()
根据2013—2018年各月份门诊人次预测2019年门诊人次。见图2。
图2 2019年某医院门诊人次预测趋势图
使用plot_components 绘制趋势,模型的趋势是按照年度线性增长的。季节因素中,每年1月份占比最高,2月份占比最低。2月份是历年春节假期,病人往往习惯年前进行诊疗,其他月份比较平均,由此可见模型通过学习历史数据能够找出每个月的变动趋势。见图3。
图3 某医院门诊人次趋势模型与季节模型
prophet代码如下:
m.plot_components(fcst)
plt.show()
用2019年某院实际数据对预测结果进行对比,全年预测相差17 101人次,误差百分比2.88%。见表2。
表2 2019年某医院门诊人次预测值与实际值对比
自2013年医院改革起,某医院走上了持续、稳步、良性发展之路;从趋势分析,门诊人次逐年增加,也表示医院的治疗水平逐步提高。
根据2013—2018年数据分析,门诊人次季节变动以1年为1个周期,变动趋势大致相同,2月份因春节原因,病人往往提前至1月份进行门诊诊治,其他月份波动幅度不大。
门诊人次随季节变化而变动的特点具有明显的规律性,在加强宏观调控的同时要健全微观管理的调控。保证高峰期医务人员安排充足,以充足的人力、物力、信息完成高峰季节的各项医疗活动;在低谷时期则可考虑安排业务进修、设备维护、职工探亲休假等[7]。
利用prophet算法模型,能够很好地找到年度增长趋势,还可以自动拟合找到月份、季节性规律,该时序模型预测准确率高,适用于门诊人次预测等方向。
随着人工智能技术的广泛应用,利用算法与数据相结合,新方法新技术能够很好地应用于数据统计工作,基于时间序列的prophet算法用于医院门诊量预测,方法简洁、直观,结果比较准确。预测医院门诊人次能帮助医院管理者更好地进行精细化管理,实现科学的量化医疗收入预算管理,从而有的放矢地控制医疗费用成本,加强内部管理,重视经济核算,控制预算外的开支,减少浪费以降低成本消耗[8]。在新形势下,医院统计人员必须认真做好医疗服务工作的统计,并通过对门诊人次的定量化预测,为医院领导制定医疗工作计划,科学决策提供依据,对提高卫生资源利用效率,提高优质服务具有积极意义。这也是预测模型在医院管理中应用价值所在[9]。