EMD与XGBoost组合算法对门诊量预测的研究与分析

陈娜, 郁晓晨

(上海市第六人民医院,财务处, 上海 200233)

在医院的日常管理中,门诊量无疑是重要的影响要素之一,在一定程度上反映了医院的规模、医疗水平。因此,若能正确的预测门诊量,提前做好医生、护士的调控分配,不仅可以很好的提高医院的工作效率,也可以大幅度提升病人的医疗体验感。

本文以给医院管理者提供决策支持为目的,对医院门诊量进行预测,为医疗卫生资源的合理配置提供依据。传统的门诊量预测通常使用灰色模型[1]、差分整合移动平均自回归模型(ARIMA)[2]等算法,或者将ARIMA模型与其他模型进行简单的组合[3-4],但是时间颗粒度较粗(通常为周、月、季度或年),预测效果仍有提升空间。本文考虑到医院的门诊量有着明显的时间特征,首先将其时间特征纳入考虑范畴,通过历史门诊量可以发现门诊量数据并不平稳,尤其是以天为单位的门诊量,波动尤为剧烈,因此我们利用EMD对门诊量序列进行分解。以往结合EMD的组合算法[5]一般只考虑了时间序列的特征,并未考虑外部因素。一些外部特征与门诊量可能存在一定程度的相关性,因此在本文中,我们同时考虑了门诊量也受到天气、温度等外部特征的影响,提出了EMD分解[6]和XGBoost[7]的组合算法,利用上海某医院门诊情况来构建门诊量预测模型,分别预测未来1天、7天、30天的门诊量之和。

1.1 数据来源

本文门诊数据来源于上海某医院2016年1月至2019年1月门诊报表,部分数据见表1。

表1 上海某医院部分门诊量数据

本文天气数据来源于互联网,根据该医院所在区域检索历史天气情况,简单处理后部分数据见表2。

表2 上海某地区部分天气数据

1.2 相关技术

1.2.1 经验模态分解(EMD)

经验模态分解(EMD)是由黄锷等[8]提出的一种创造性的、新型自适应信号时频处理方法。基于该方法来处理非平稳非线性序列有着优良的数值效果,目前已经在地球物理学领域、生物医学领域、结构分析领域、设备诊断领域、成像领域等得到应用。

EMD分解方法基于以下假设条件:数据至少有两个极值,一个最大值和一个最小值;
数据局部时域特性由极值点间的时间尺度唯一确定;
如果数据没有极值点但有拐点,则可通过对数据微分一次或多次求得极值,然后再通过积分获得分解结果。

设有时间序列,EMD分解可以将非线性、非平稳的数据序列分解为多个平稳单一的序列,即,其中为本征模函数。本征模函数必须满足以下两个条件:极值和过零点的数目必须相等,或者至多差一个;
在任意数据点,局部最大值的包络和局部最小值的包络的平均必须为零。时间序列的分解过程如下。

设有时间序列X(t),EMD分解可以将非线性、非平稳的数据序列X(t) 分解为多个平稳单一的序列,即X(t)=∑imf(t)+bias,其中imf(t)为本征模函数。本征模函数必须满足以下两个条件:极值和过零点的数目必须相等,或者至多差一个;
在任意数据点,局部最大值的包络和局部最小值的包络的平均必须为零。时间序列X(t)的分解过程如下:

(1) 确定时间序列X(t)的所有局部极值点,分别用曲线连接所有的极大值点和极小值点,如此得到时间序列的上下包络线,令上下包络线的平局值为m(t);

(2) 令h1(t)=X(t)-m(t),对h1(t)重复上述步骤,直至满足本征模函数的条件,即h1(t)是一个基本模式分量,这时得到新的序列X1(t)=X(t)-h1(t);

(3) 对新的时间序列X1(t)重复上述步骤,分别提取出n个基本模式分量。此时,时间序列Xn(t)变为一个单调序列,不包含任何模式的信息,即为原始序列的余项,bn=Xn(t)。至此,原始时间序列被分解为多个imf分量和一个残差序列。

1.2.2 XGBoost算法

XGBoost是一种在Gradient Boosting框架下实现的的机器学习算法,由于其出色的效率,被数据科学家广泛的使用。

对于给定有m个特征、大小为n的数据集D={(Xi,yi)}(|D|=n,Xi∈Rm,yi∈R),树型集成模型(即第i个实例的预测值)可以表示为

(1)

其中,H={f(X)=ωq(X)},(q:Rm→T,ω∈RT),K表示树的数量,q表示将实例映射到相应的叶子节点上的树的结构,T表示树的叶子数量,ω表示叶子节点的分数。我们最小化以下正则化目标函数来得到模型需要的函数:

(2)

(3)

即式(3)表示第i个实例在第t次迭代时的误差函数。根据式(2),这就意味着需要增加最能改进模型的ft。将式(3)泰勒展开得到:

(4)

(5)

令Ij={i|q(Xi)=j},表示在叶子节点上的实例集合。因此式(5)可以变换为

(6)

(7)

带入目标函数可以得到最优解:

(8)

式(8)可以用来衡量树结构q好坏的指标。一般来说,枚举所有的树结构q是不可能的,因此这里用一个贪婪算法,它从一个叶子开始,迭代地向树中添加分支。设IL和IR分别是分支后左节点和右节点的集合,且I=IL∪IR,则一次分支后误差函数为

(9)

根据式(8),利用上式作为分支的评价指标,不断重复分支,即得到最终的树。

1.3 评价指标

本文采用两种不同的指标对预测模型进行评价,分别为均方根误差(RMSE)以及平均绝对百分比误差(MAPE)。RMSE和MAPE越小,说明模型效果越好。

RMSE和MAPE的计算式如下:

(10)

1.4 特征选择

本文的特征选择从天气特征以及时间特征两个方面出发,具体如下。

(1) 天气特征:天气的变化会影响身体状况,因此可能对医院门诊量也有影响。若温度骤降会引起感冒发烧的病人增多,或从冬天过渡到春天时,温度上升,各种植物和粉尘增多,会引起过敏的病人增多,因此医院的门诊量也会相对应的有所上升。

(2) 时间特征:从已有的数据可以看出,门诊量存在某些周期性,因此本文也相应的构建了时间特征,例如是一周内第几天、前一天门诊量等。

2.1 模型原理

时间序列问题的预测,其主要思想是利用历史时序数据进行统计分析,找到变化规律,通过建模将该规律应用到预测未来上。对于门诊量的预测,不仅在一定程度上遵循时间变化规律,并且还受到天气、温度等因素的影响,因此,本文将预测门诊量的特征分为两个部分:一是将历史时间特征进行EMD分解,得到包含各个时间尺度特征的基本模式分量;
二是包含天气等因素的非时间特征,然后对各分量结合非时间特征利用XGBoost算法进行建模,各分量预测结果加和得到最终门诊量的预测值,如图1所示。

图1 EMD+XGBoost组合算法示意图

2.2 建模过程

设门诊量时间序列为X(t)={x1,x2,x3,x4,x5,…,xn},对序列X(t)进行EMD分解,共得到N个分量{imf1,imf2,imf3,imf4,imf5,…,imfN}和一个残差序列bN,对N个分量和残差序列分别建立XGBboost模型进行预测,即产生N+1个XGBboost模型,然后将预测结果相加,即为最终门诊量的预测值。

在进行预测前,因为各个特征的量纲不同,因此需要先进行标准化,使模型预测更加合理、准确。预测时,将每一个分量imfi,i=1,…,N,作为一个特征,用前x天来预测x+1天(或x+7、x+30天);
另外,由于门诊量还受到天气等非时间因素的影响,因此在建立模型时,也将这些作为特征考虑。

我们对门诊量时间序列进行EMD分解,数据为从2016年每日门诊量,分解结果如图2所示。

图2 部分门诊量数据EMD分解示意图

signal为原始门诊量时间序列,imf1到imf6为原始序列被分为的6个分量,由上图可以看出其波动性逐渐减弱,平稳性逐渐增强,res为趋势线。

本文预测了三种情形下的2018年门诊量:未来1天门诊量;未来7天门诊量之和;未来30天门诊量之和。从预测结果的RMSE来看,组合算法在第1种情况下效果最好,平均RMSE 为71.315,此时MAPE为6.691%,RMSE 和MAPE最小达到0.281和0.018%;
从MAPE来看,组合算法在第2种情况下效果最好,平均MAPE为4.050%,此时RMSE为353.106,RMSE和MAPE最小达到9.214和0.110%;
综合来看,组合算法更适合在第1种情形下运行。

当然,若预测一周日平均和一月日平均门诊量,可以看出RMSE有所下降,甚至比预测未来1天门诊量表现的更好(RMSE分别下降了29.27%和31.02%)。这是因为日门诊量受到外部因素的影响更大,因此波动性也大;
而周门诊量与月门诊量从一定程度上削弱了外部因素的影响,它们更加稳定(若因为某些原因前一天的病人比平日较少,但是这部分病人会在第二天或者后面几天来医院),所以平均到每日效果会更好。

为了进一步的体现EMD+XGBoost组合算法的性能,我们还对应的用单XGBoost算法作为对照。通过结果对比可以看出,加入了EMD分解后,模型的预测结果得到了显著提高,在三种情形下RMSE分别提高了16.87%、20.34%和4.00%,MAPE分别提高了18.74%、18.35%和0.80%。这里可以看出,在情形3)下EMD+XGBoost组合算法与单XGBoost算法的差距很小,这也是因为上文所说,30天门诊量的波动性较小,而EMD更善于处理平稳性差的时间序列上。也从侧面说明,组合算法更适合第1种情形。

综上,EMD+XGBoost组合算法在处理日门诊量预测和周门诊量预测时,优于单XGBoost算法。

EMD+XGBoost组合算法及单XGBoost算法在三种预测情形下的RMSE和MAPE如下图3、图4所示。

图3 EMD+XGBoost组合算法与单XGBoost算法RMSE对比

图4 EMD+XGBoost组合算法与单XGBoost算法预测MAPE对比

本文提出了一种EMD+XGBoost的组合预测算法。针对门诊量时间序列,通过EMD对时间序列进行平稳性处理,再结合XGBoost进行预测。相比较传统的利用灰色模型、差分整合移动平均自回归模型(ARIMA)等,组合预测算法更好的结合了EMD和XGBoost两个算法的优点,在预测时,不仅仅只依据时间特征,并且加入考虑了外部因素,在预测日门诊量时表现的更好,细化了门诊量预测的时间颗粒度,使得模型更加仿真,得到的预测值也更接近于真实值。

本文虽然考虑了天气的外部因素,但是在真实情况下,影响门诊量的因素更多,也更为复杂,比如医院的地理位置,区域人口等。加入这些因素,将提高模型的泛化能力。但是,当外部因素增多时,其与时间因素在模型中的权重如何控制是一个难题,若某一方的权重过大,可能会适得其反,使模型结果变差。因此,在门诊量预测的问题上,还有进一步研究的空间。

猜你喜欢门诊量分量预测COVID-19疫情对一家三级医院儿内科门诊量和比例的影响国际医药卫生导报(2022年18期)2022-09-29无可预测黄河之声(2022年10期)2022-09-27选修2-2期中考试预测卷(A卷)中学生数理化(高中版.高二数学)(2022年4期)2022-05-25选修2-2期中考试预测卷(B卷)中学生数理化(高中版.高二数学)(2022年4期)2022-05-25帽子的分量基层中医药(2021年12期)2021-06-05遗传编程在医院日门诊量预测中的应用中国卫生统计(2021年1期)2021-03-16一物千斤智族GQ(2019年9期)2019-10-28论《哈姆雷特》中良心的分量英美文学研究论丛(2018年1期)2018-08-16北京市通州区空气污染与医院门诊量关系初探首都公共卫生(2017年5期)2018-01-03不必预测未来,只需把握现在中学生数理化·八年级物理人教版(2017年11期)2017-04-18

推荐访问:组合 算法 预测