2. 同济大学附属东方医院,上海 200120
2. Shanghai East Hospital Affiliated to Tongji University, Shanghai 200120, China
2019年末我国武汉地区爆发新型冠状病毒肺炎,由于爆发在春运期间,严重性不言而喻。举全国之力共抗疫情,但在武汉地区,医院可供床位却远远不足。虽然这属于突发事件,但同时说明对医院住院量的研究非常必要,通过对医院住院量未来动态变化的预测研究,可以提高医院床位的使用率,合理配置各科室医疗床位,最大限度发挥现有医疗资源的作用。
在医疗床位的预测方法中,时间序列预测方法是较为常用的预测方法,并在多种实际应用场景中预测效果较好[1]。2008年徐建伟[2]建立了贝叶斯正规化BP(back propagation)神经网络,对医院床位数据进行拟和预测,并与指数平滑和自回归模型进行比较,实验结果表明,贝叶斯正规化BP神经网络模型较传统模型预测的精度更高一些。2013年龙会典等[3]建立了由自回归移动平均模型(ARIMA)、灰色动态模型(GM模型)和BP神经网络集成的时间序列预测模型。首先建立GM(1,1)模型,对序列的趋势项进行预测,然后建立基于ARIMA和BP神经网络的组合模型,对序列的周期波动项进行预测,最后利用乘积模型集成两者预测值。实证结果表明,集成模型的预测效果显著高于单一模型。2014年曹净等[4]提出了一种基于小波变换、粒子群优化的最小二乘支持向量机(PSO-LSSVM)和ARIMA的基坑变形时间序列预测方法,并成功地应用于昆明某基坑工程的深层水平位移预测中。综合以上研究表明,组合预测模型在不同领域的预测效果均优于单一模型的预测效果。
本文针对上海市东方医院呼吸内科住院量的时间序列数据进行研究,提出了一种基于Prophet-LSTM-PSO组合模型的预测方法,分别运用先知模型(Prophet)和长短期记忆循环神经网络(LSTM)对2015年1月到2019年12月上海市东方医院呼吸内科住院量的时序数据进行建模,然后利用粒子群算法(PSO)算法求出两种模型对应的组合系数,从而得到最终的Prophet-LSTM-PSO组合模型,并与单个预测模型Prophet,LSTM,ARIMA模型的预测结果进行比较。结果表明,在医院住院量时序数据预测中,本文提出的组合模型Prophet-LSTM-PSO的预测效果优于单个模型的预测效果,预测性能更佳。
1 研究理论与方法 1.1 基于医院住院量的LSTM模型LSTM是循环神经网络(RNN)的一种特殊形式,通过遗忘门、输入门和输出门3个“门”控制信息量的传入,并通过引入“记忆细胞状态”对其进行长期保存。LSTM单元结构如图1所示。
|
图 1 LSTM单元 Fig. 1 LSTM unit |
在医院呼吸内科住院量的时序数据预测中,
| ${f_t} = \sigma \left( {{{ W}_f} \cdot \left[ {{{ h}_{t - 1}},{{ x}_t}} \right] + {{ b}_f}} \right)$ | (1) |
| ${i_t} = \sigma \left( {{{ W}_i} \cdot \left[ {{{ h}_{t - 1}},{{ x}_t}} \right] + {{ b}_i}} \right)$ | (2) |
| ${ C}_t^\prime = \tanh \left( {{{ W}_c} \cdot \left[ {{{ h}_{t - 1}},{{ x}_t}} \right] + {{ b}_c}} \right)$ | (3) |
当前时刻记忆细胞的存储向量
| ${{ C}_t} = {f_t} \odot {{ C}_{t - 1}} + {i_t} \odot { C}_t^\prime $ | (4) |
| ${o_t} = \sigma \left( {{{ W}_o} \cdot \left[ {{{ h}_{t - 1}},{{ x}_t}} \right] + {{ b}_o}} \right)$ | (5) |
| ${h_t} = {o_t} \odot \tanh\; {{ C}_t} $ | (6) |
| ${\bar L_t} = {{ W}_y} \cdot {{ h}_t}$ | (7) |
| $\min\; J(\theta ) = \sum\limits_{i = 1}^T {\left( {{{\bar L}_t} - {L_t}} \right)} $ | (8) |
式中:Wy为输出门上一时刻呼吸内科住院量的存储值权重矩阵;Lt为呼吸内科住院量实际值。
LSTM模型通过采用损失函数对输出值的倒数作为误差项随时间进行反向传播,该算法称为基于时间的反向传播算法(BPTT),其基本思想主要分为4个步骤:
步骤1 运用式(1)~(7)前向计算出各个神经元的输出值
步骤2 从时间和网络层级2个方向反向计算每个神经元的损失函数对其输出值的倒数,即每个神经元的误差项;
步骤3 根据每个神经元的误差项值对其相应的权重计算梯度;
步骤4 运用梯度下降法更新权重矩阵和偏差向量。
1.2 基于医院住院量的Prophet模型在使用LSTM对原始数据进行预测的同时,采用Prophet模型进行预测。
2017年Facebook发布了Prophet时序先知模型,主要研究时序数据的特征和时序变化规律,同时预测未来的走势。Prophet的核心是分析包含周期性、趋势性以及节假日效应等的时间序列特征,它是一种针对时序的有效集成解决方案,Prophet模型的构成为
| $P\left( t \right) = g\left( t \right) + s\left( t \right) + h\left( t \right) + \varepsilon $ | (9) |
式中:
a. 趋势项。Facebook采用改进的Logistic增长模型,其中,饱和值是随时间动态变化的,而且增长率也会随着新产品等因素发生变化。
| $g\left( t \right) = \frac{{C\left( t \right)}}{{1 + \exp \left( { - \left( {k + { a}{{\left( t \right)}^{\rm T}}\delta } \right)} \right)\left( {t - \left( {m + { a}{{\left( t \right)}^{\rm T}}} \right)\gamma } \right)}}$ | (10) |
| ${ a}\left( t \right) = \left\{ \begin{array}{l} 1,\;\;\;t > {S_j} \\ 0,\;\;\;\text{其他} \end{array} \right.$ | (11) |
式中:
b. 周期项。Prophet模型依靠傅里叶级数来构造灵活的周期性模型,基本形式为
| $s\left( t \right) = \sum\limits_{n = 1}^N {\left( {{a_n}\cos \left( {\frac{{2{\text{π}} nt}}{p}} \right) + {b_n}\sin \left( {\frac{{2{\text{π}} nt}}{p}} \right)} \right)} $ | (12) |
式中:
在多元回归中,求解回归参数的常用方法有最小二乘法、梯度下降法及牛顿法等,但是,这些方法涉及大量的矩阵计算,且计算速度较慢。而PSO算法最初是基于自然界中存在的鸟类捕食活动现象所产生的智能模拟算法,该算法相较于遗传算法(GA)、蚁群算法(ACO)等具有简单高效、参数少及收敛速度快等特点。因此,本文借助粒子群算法确定组合模型的权重系数。
PSO算法将回归系数组合
| ${v_i}(k + 1) = w{v_i}(k) + {c_1}{r_1}\left( {{p_i} - {x_i}(k)} \right) + {c_2}{r_2}( {{p_g} - {x_i}(k)} )$ | (13) |
| ${x_i}(k + 1) = {x_i}(k) + {v_i}(k + 1)$ | (14) |
式中:
最后,通过定义适应度函数
| $Q(\theta ) = \displaystyle\sum\limits_{t = 1}^k \Bigr( \alpha {{\bar L}_t} + \beta {{\bar P}_t}\; - \;{L_t} \Bigr)^2$ |
来评价组合模型的拟合优劣性。
为了验证模型的可行性与有效性,选取了上海市东方医院(本院及南院)呼吸内科2015年1月到2019年12月这60个月住院量数据为研究对象。将数据中存在的缺失值,运用历史同期和近3期数据的平均值进行填充,获得完整的原始输入数据。对原始输入数据,首先将其转换为与模型输入维度相同的类型,然后将转换后的数据集分为两类,其中,80%的数据即从2015年1月到2018年12月的96个数据(本院48个,南院48个)用于训练模型,剩余的2019年1月至2019年12月的24个(本院12个,南院12个)数据作为测试集,用于对模型拟合效果进行验证。
2.2 Prophet-LSTM-PSO组合模型构建时间序列数据中蕴含着大量不确定信息,应用单一模型的预测效果往往不是很理想。因此,为了提高预测的准确率,将LSTM和Prophet两种模型进行组合,应用PSO算法求解两种模型的组合系数以提高求解速度,充分发挥组合模型的优势。
基于LSTM和Prophet组合模型的建模步骤:
步骤1 对数据中缺失的小部分数据,结合近3个月数据趋势和每一年同期数据,采用平均法进行填充;
步骤2 对经过步骤1处理的原始数据进行归一化处理,使得训练数据的极差尽可能小。然后运用式(1)~(8)对时间序列
步骤3 对经过步骤1处理的原始数据进行log处理,使其尽量符合正态分布。然后运用式(9)~(12)对时间序列
步骤4 通过构建适应度函数
步骤5 组合两种模型的预测结果,获得组合模型预测值
在Python 3.6软件的基础上,将LSTM模型分别应用于训练集和测试集,获得单一模型下的各种具体参数,其中,输入向量为(2,1)的维度的时序数据,输入层神经元数为8,隐藏层为1层,神经元数为128,隐藏层激活函数为RELU函数,即为
在Python 3.6软件的基础上,将Prophet模型分别应用于log处理后的数据集,获得单一模型下的各种具体参数,输入向量为(2,60)的时序数据,趋势项为改进的Logistic增长模型,周期项取傅里叶级数,拟合函数为Fit函数。
2.3.3 组合模型训练与结果分析将两种单一模型的预测结果进行组合,并应用PSO算法求解组合模型的系数α和β,从而获得组合模型的预测值。
本院的组合预测模型为
| ${\bar X_t} = 0.301\;510\;37{\bar L_t}{\rm{ + }}0.711\;636\;83{\bar P_t}$ |
南院的组合预测模型为
| ${\bar X_t} = 0.152\;072\;93{\bar L_t}{\rm{ + }}0.858\;231\;58{\bar P_t}$ |
将组合模型与常用的单一模型(Prophet,LSTM,ARIMA模型)在相同的测试集进行定量分析,结果表明,LSTM-Prophet-PSO组合模型的预测结果较单一模型要好,预测值与实际值的误差值较小,为了更加直观地观察预测结果,将上海市东方医院(本院)住院量的4种模型实际值与预测值进行可视化,如图2所示。从图2中可以看出,组合模型拟合效果最好,其次是Prophet模型,再次是ARIMA模型,最后是LSTM模型。与其他几种单一模型相比,组合模型在训练集和测试集上都有较好的拟合效果,符合时序数据的大致趋势。
|
图 2 模型的实际值与预测值对比 Fig. 2 Comparison of actual and predicted values of the model |
为了对模型的效果进行科学的评估,分别计算了各个模型的整体均方根误差(RMSE)和平均绝对误差(MAE),并将LSTM-Prophet-PSO组合模型与Prophet,LSTM,ARIMA模型进行对比,以验证该方法的可行性与有效性。不同模型在相同指标下的对比结果如表1所示。
| 表 1 实验组:不同模型的整体均方根误差与平均绝对误差对比 Table 1 Trial group: comparison of RMSE and MAE of different models |
为了增加本文的可信度,采用公开数据集,即我国新型冠状病毒肺炎疫情的累计确诊量的时序数据进行对比实验,实验数据为2020年1月24日到2020年4月19日我国累计确诊人数,应用本文所建立的模型,得到组合模型为
| 表 2 对比实验组:不同模型的整体均方根误差与平均绝对误差对比 Table 2 Control group: comparison of RMSE and MAE of different models |
从表1和表2可以看出,组合模型与其他3种单一模型相比,预测精度最高,其相对于Prophet,LSTM,ARIMA这3种单一模型在RMSE和MAE上都有明显的提高。
4 结束语通过分析医院住院量的时序数据的特征与趋势,进一步分析医院住院量预测的准确度,对于医院及时调整医院资源配置具有重要的参考意义。根据上海市东方医院呼吸内科住院量时序数据的规律,提出了一种基于Prophet模型和长短期记忆网络(LSTM)的组合模型预测方法,通过粒子群算法确定组合模型中的权重系数,并与Prophet,LSTM,ARIMA模型这3种单一模型的预测效果进行对比。利用公开数据集,即我国新型冠状病毒肺炎疫情的累计确诊量的时序数据进行对比实验。实验结果表明,通过PSO计算得出的组合模型的预测性能优于单个Prophet,LSTM,ARIMA模型的预测性能。本文对医院住院量的研究只考虑了历史数据的影响,在进一步预测时可考虑多个影响因素,例如,气温、湿度等因素对呼吸内科住院量的影响[6-9]。
| [1] |
葛娜, 孙连英, 石晓达, 等. Prophet-LSTM组合模型的销售量预测研究[J]. 计算机科学, 2019, 46(S1): 446-451. |
| [2] |
徐建伟. 贝叶斯正规化BP神经网络在我国医院床位预测中的应用[J]. 山西医科大学学报, 2008, 39(9): 833-835. DOI:10.3969/j.issn.1007-6611.2008.09.019 |
| [3] |
龙会典, 严广乐. 基于SARIMA、GM(1,1)和BP神经网络集成模型的GDP时间序列预测研究[J]. 数理统计与管理, 2013, 32(5): 814-822. |
| [4] |
曹净, 丁文云, 赵党书, 等. 基于LSSVM-ARMA模型的基坑变形时间序列预测[J]. 岩土力学, 2014, 35(S2): 579-586. |
| [5] |
李丽萍, 段桂华, 王建新. 基于Prophet框架的银行网点备付金预测方法[J]. 中南大学学报(自然科学版), 2019, 50(1): 75-82. DOI:10.11817/j.issn.1672-7207.2019.01.011 |
| [6] |
王晓飞, 王波, 陆玉玉, 等. 基于Prophet-LSTM模型的PM2.5浓度预测研究
[J]. 软件导刊, 2020, 19(3): 133-136. |
| [7] |
王敏珍, 郑山, 王式功, 等. 气温与湿度的交互作用对呼吸系统疾病的影响[J]. 中国环境科学, 2016, 36(2): 581-588. |
| [8] |
莫运政, 郑亚安, 陶辉, 等. 日均气温与呼吸系统疾病急诊人次相关性的时间序列分析[J]. 北京大学学报(医学版), 2012, 44(3): 416-420. |
| [9] |
樊重俊, 金阳, 杨云鹏. 基于节点活跃度与疾病交互双重影响因素的传染病模型[J]. 系统管理学报, 2017, 26(5): 941-946. |
2021, Vol. 43


