DOI:10.3969/j.issn.1673-6036.2025.07.010
中图分类号:R95
齐睿娟, 王应楷, 杨婧, 安卓玲
| 【作者机构】 | 首都医科大学附属北京朝阳医院药事部 |
| 【分 类 号】 | R95 |
| 【基 金】 |
医疗机构的药事管理工作正朝向智能化、数字化和精细化方向转型,其中药品采购与库存管理领域的转型需求尤为迫切。据统计,我国医疗机构的药品库存成本长期占据流动资金的30%~60%[1],现行管理模式亟待优化。为实现医疗机构药品精准化采购及动态管控,基于用药规律构建科学可靠的药品消耗量预测模型具有关键价值。
传统时间序列分析方法和机器学习模型是两种常用的预测模型构建方法[2]。其中,自回归移动平均(autoregressive integrated moving average,ARIMA)模型属于传统时间序列分析方法,已被应用于医院药品管理工作[3-5]。然而,由于现实情境中医院药品消耗量受多因素影响,其时间序列通常具有非线性特征,擅长拟合线性特征的ARIMA模型在预测精度上存在局限[6]。相比之下,人工神经网络,如长短期记忆网络(long short-term memory,LSTM),则能够捕捉长期时间序列中的复杂非线性特征[7]。本研究将ARIMA模型与人工神经网络模型联合应用,以实现优势互补。
本研究基于首都医科大学附属北京朝阳医院门诊药房2013年1月—2023年12月间抗过敏滴眼液月消耗量,分别建立季节性自回归移动平均(seasonal autoregressive integrated moving average,SARIMA)模型、SARIMA-LSTM组合模型,并进行预测与比较,以期为医疗机构药品采购决策及库管工作提供参考依据。
药品月消耗量数据来源于医院信息系统(hospital information system,HIS),数据抽取时间范围为2013年1月1日—2023年12月31日,数据质量良好,无缺失值。将上述时间序列数据按照8∶2划分[8],将2013年1月1日—2021年9月30日(前80%)的时间序列数据设定为训练集,2021年10月1日—2023年12月31日的时间序列数据(后20%)设定为验证集。
ARIMA模型通过捕捉时间序列中的自相关规律,基于历史数据构建数学模型,实现对未来值的预测。ARIMA模型结构通常表示为(p,d,q),其中p为自回归阶数,d为差分阶数,q为移动平均阶数。ARIMA模型对平稳时间序列数据具有良好的建模效果,对于非平稳时间序列,则需要d阶差分处理。如果时间序列既存在长期趋势又存在季节性变化,ARIMA模型不足以提取其中的季节性规律,通常须采用SARIMA模型,其结构表示为(p,d,q)(P,D,Q)s,其中P代表季节性自回归阶数,D代表季节性差分阶数,Q代表季节性移动平均阶数,s代表季节周期[6,9]。
LSTM神经网络模型是一种结合梯度学习算法的模型,是对循环神经网络(recurrent neutral network,RNN)的改进,专门用于处理与预测时间序列数据,特别是在学习和记忆长期依赖关系方面具有优势。通过引入遗忘门、输入门、输出门及记忆单元的协同工作机制,LSTM神经网络模型能选择性地保留长时序数据中的时间依赖关系,有效消除了传统RNN在训练过程中易出现的梯度消失、爆炸现象。该能力使其在长时序预测相关的诸多领域成为一种重要且广泛应用的技术手段[3,7]。
2.4.1 药品月消耗量的季节性分析 基于Loess函数的季节-趋势分解法(seasonal and trend decomposition using loess,STL)是用于分解时间序列、判断时间序列季节性、趋势性及随机性成分的常用方法[10]。采用Python 3.12.1中statsmodels库中的 seasonal_decompose ()函数提取药品月消耗量时间序列的季节性、趋势性和随机性成分。
2.4.2 SARIMA模型构建与检验 使用SPSS 29.0专家建模器构建SARIMA模型,并检验模型参数显著性。当P<0.05时,表明该参数具有统计学意义,可纳入模型。通过参数显著性检验后,利用Python 3.12.1中的statsmodels库,通过graphics.gofpl-ots.qqplot和graphics.tsaplots模块创建 Q-Q图、自相关图、密度图及残差分布图,以全面展示模型的残差信息。并对该SARIMA模型残差进行杨-博克斯(Ljung-Box Q)检验。当P>0.05 时,认为残差序列属于白噪声序列,证明该模型已充分提取序列中的信息。
2.4.3 SARIMA-LSTM组合模型构建 在SARIMA模型各项参数均通过显著性检验且残差序列属于白噪声序列的前提下,使用Python 3.12.1构建SARIMA-LSTM组合模型,技术路线,见图1。(1)数据预处理。将SARIMA模型预测得到的残差序列进行归一化,以便作为LSTM模型的输入变量。(2)使用Sequential模型构建线性神经网络。包括一个输入层、一个LSTM层和一个全连接输出层。(3)确定参数。调用Python中TimeSeriesSplit对输入变量进行时间序列交叉验证实验,确定当LSTM层神经元个数为32,迭代次数为150,批量大小为2时,模型拟合精度较强。(4)模型训练。使用compile方法配置模型的学习过程,定义优化器为随机梯度下降,损失函数为均方误差。(5)模型预测。模型学习输入的SARIMA残差序列模式,获取LSTM对残差序列的预测值,并将其与SARIMA模型预测值相加,得到最终SARIMA-LSTM组合模型的预测值。
图1 SARIMA-LSTM组合模型技术路线
2.4.4 模型预测精度的评估方法 使用均方误差平方根(rooted mean squared error,RMSE)、平均绝对百分比误差(mean absolute percentage error,MAPE)及平均绝对误差(mean absolute erroer,MAE)评估模型预测精度。RMSE、MAPE及MAE的值越小,认为模型的预测性能越佳。RMSE、MAPE及MAE的计算方式如下,其中yi为实际值,
为预测值,n表示测试样本数。
(1)
(2)
(3)
抗过敏滴眼液月消耗量数据时序图,见图2。
图2 抗过敏滴眼液2013年1月1日—2023年12月31日月消耗量时间序列
每年存在两个销量高峰,分别在3—4月、8—9月。采用STL法分解该时间序列,得到趋势效应、季节效应和剩余波动效应的分解值,见图3。趋势效应显示,抗过敏滴眼液月消耗量趋势不平稳,在2020—2021年间受突发公共卫生事件影响存在明显低谷,在2021年后逐渐回升。针对药品消耗量的短期波动,ARIMA建模时须先对数据做一阶差分(即计算相邻月份消耗量的差值),将绝对变化量转换为相对变化量以消除趋势波动。该方法能有效避免模型将突发公共卫生事件引发的短期波动误判为长期趋势。月消耗量季节效应明显,且存在稳定的周期性,周期长度为12个月,提示可用SARIMA模型(p,d,q)(P,D,Q)s建模分析,其中s设为12。剩余波动效应图表明提取出趋势和季节效应后的序列残差基本稳定。
图3 抗过敏滴眼液月消耗量时间序列经STL法分解后效应
采用SPSS 29.0软件专家建模器构建SARIMA模型,得到SARIMA(0,1,1) (0,1,1)12,见表1。参数显著性检验结果均具有统计学差异(P<0.05),说明该SARIMA模型目前为最精简拟合模型。随后检验SARIMA(0,1,1) (0,1,1)12的有效性,即要求该模型残差服从正态分布,且对任意的滞后阶数,残差自相关系数均应为0,以此说明其残差序列不能再提取出任何信息,见图4。残差序列随时间的波动基本稳定;直方图和估计密度以及Q-Q 图显示,该模型拟合后的残差呈正态分布;在置信区间内残差基本不存在自相关性,表明拟合效果较好。残差白噪声检验结果显示,统计量为16.75,P = 0.402(P>0.05),不能拒绝残差为白噪声序列的假设,表明该残差序列属白噪声序列。由此可见,SARIMA (0,1,1) (0,1,1)12已充分提取时间序列中的信息,可用于预测抗过敏滴眼液月消耗量。
表1 SARIMA (0,1,1) (0,1,1)12模型参数估计与检验结果
参数系数标准误差(σ)t显著性q0.5470.0906.073<0.01Q0.5790.1045.733<0.01
图4 SARIMA模型的残差信息
3.3.1 两种模型在验证集上的拟合结果及精度评估 以2021年10月1日—2023年12月31日的时间序列数据(后20%)验证SARIMA模型及SARIMA-LSTM组合模型的拟合效果。结果显示,SARIMA模型在2021年10月,2022年3月、4月、11月、12月等月份的拟合值与真实值相差较大,整体拟合值的相对误差存在明显波动。相比之下,SARIMA-LSTM组合模型在上述月份的拟合值与真实值更为接近,见图5、表2。精度评估结果显示,SARIMA模型的RMSE、MAPE、MAE分别为123.82、21.83、79.84,而SARIMA-LSTM组合模型的RMSE、MAPE、MAE分别为91.90,16.44、59.82,均明显低于SARIMA模型,说明SARIMA-LSTM组合模型的预测精度明显优于SARIMA模型,表现相对稳健。
表2 两种模型对2021年10月1日—2023年12月31日抗过敏滴眼液月消耗量的拟合结果
时间真实值(盒)SARIMA模型SARIMA-LSTM组合模型拟合值(盒)绝对误差(盒)相对误差(%)拟合值(盒)绝对误差(盒)相对误差(%)2021-102192846529.73233146.29 2021-11237219187.6823700.02 2021-1224324631.4324851.92 2022-011712023118.0617984.87 2022-022602045621.4625462.16 2022-031 23987036929.761 188514.08 2022-0494954640342.44906434.55 2022-05377364133.50410338.79 2022-063482975114.53367195.44 2022-07312297154.66333216.87 2022-085396157614.13573346.22 2022-09738804669.01760223.05 2022-102403208033.24255156.28 2022-1113925411583.071642518.14 2022-12129282153118.721532418.78 2023-011872385127.0418810.50 2023-022802404014.3327551.82 2023-031 0069061009.951 022161.56 2023-044945828817.80537438.68 2023-05386399133.4937881.96 2023-062983333511.7830020.65 2023-073763334311.40364123.22 2023-0864465171.0663950.70 2023-0998084014014.27953272.73 2023-10374355194.9637310.31 2023-112422904819.90255135.20 2023-122603185822.2426993.40
图5 两种模型对2021年10月1日—2023年12月31日抗过敏滴眼液月消耗量的拟合结果曲线
3.3.2 两种模型对2024年1—6月抗过敏滴眼液消耗量的预测结果及精度评估 利用两种模型预测抗过敏滴眼液在2024年1月1日—2024年6月30日的消耗量。预测结果显示,无论SARIMA模型还是SARIMA-LSTM组合模型,其预测值与真实值均较为接近,见图6、表3。精度评估结果显示,SARIMA模型的RMSE、MAPE及MAE分别为38.85、8.57及28.67,而SARIMA-LSTM组合模型的RMSE、MAPE及MAE分别为38.36,8.24及27.5,可见两种模型的RMSE、MAPE、MAE值均较低。但是SARIMA-LSTM组合模型的值均低于SARIMA,说明前者精度更优。
表3 两种模型对2024年1—6月抗过敏滴眼液月消耗量的预测结果
时间真实值(盒)SARIMA模型SARIMA-LSTM组合模型预测值(盒)绝对误差(盒)相对误差(%)预测值(盒)绝对误差(盒)相对误差(%)2024-0125526162.3525320.692024-022443308635.253288434.432024-031 0881 112242.211 115272.522024-04720702182.50708121.702024-05477457204.19464132.622024-06368386184.89395277.36
图6 两种模型对2024年1—6月抗过敏滴眼液月消耗量的预测结果曲线
医疗机构药品需求规律具有一定复杂性,通常出现多种波动特征并存的情况。尤其在面对易波动药品(如抗过敏滴眼液)时,构建预测模型须充分考虑其消耗量所具有的稳态季节性波动(季节性过敏引起的规律性增量)与不稳定突发干扰(如突发公共卫生事件导致的短期需求骤降)并存的特征。
传统SARIMA模型的优势在于,单指标建模即能捕捉历史时序数据中存在的稳定季节变化规律。其数据收集及分析成本较低,操作便捷,有利于药师在一线工作中推行。但其掣肘之处是无法有效解释药品消耗量波动的内因,一旦遇到较为复杂的波动规律,便无法对其准确刻画,出现较大预测偏差。如突发公共卫生事件引起的药品消耗量短期走低,SARIMA模型利用历史数据抓取的规律在某些月份上的预测值存在较大偏差。
较SARIMA等单指标建模的传统预测模型,LSTM神经网络模型作为一种广为应用的机器学习模型,能够对多个输入变量进行特征学习,提取更多可用信息,刻画复杂规律。但在药品消耗量时序数据样本有限及纳入变量较少的情况下,极易过拟合,甚至可能出现反常识的预测结果。单纯利用LSTM神经网络模型预测药品消耗量要扩大样本量并增加输入变量数量,这在数据收集成本及操作难度方面较SARIMA模型有所增加,在一线工作推广中不占优势。
在SARIMA模型中,无法解释的信息会被归为残差项。为更加充分地提取抗过敏滴眼液月消耗量的波动信息,本研究在SARIMA模型预测基础上,进一步联合擅长识别复杂波动模式的LSTM神经网络模型,对SARIMA模型的残差项进行建模,以达到矫正SARIMA预测偏差,兼顾两种模型优势的目的。该组合模型的最终预测结果是由SARIMA模型的预测结果与LSTM模型的残差预测结果相加所得。尽管SARIMA-LSTM组合模型中的LSTM神经网络模型也易过拟合,但是其预测值仅是对SARIMA模型残差项的修正,对模型整体预测结果影响较小,理论上其预测结果较单一模型更加稳健。
本研究结果显示,SARIMA-LSTM组合模型在验证集的拟合,以及在预测2024年1—6月抗过敏滴眼液消耗量时,其RMSE、MAPE、MAE较SARIMA单一模型均明显降低,说明其具有更好的时间序列预测性能。事实上,来自不同领域的多项研究已证明,使用这种SARIMA-LSTM组合模型能够有效提高预测精度,取得较好预测结果[11-15]。但目前在医院药品个性化消耗量预测模型方面尝试仍相对较少。
综上,本研究是SARIMA-LSTM组合模型应用于抗过敏滴眼液月消耗量预测方面的一次有益尝试,为构建医疗机构不同品种药品个性化消耗量预测模型、优化药品采购及库存管理工作提供了参考。
本研究采用SARIMA模型与LSTM神经网络模型的组合方法,较为科学地对医院门诊药房抗过敏滴眼液月消耗量进行预测,为医疗机构药品采购及库存管理提供了新思路。不拘于具有季节性特征的抗过敏滴眼液,未来可将该思路推广至其他具有季节性波动特征的药品中,并可引入更多特征(如疾病趋势、门诊量等),进一步提升预测性能。
作者贡献:齐睿娟负责研究设计、论文撰写与修订;王应楷负责文献检索、数据分析;杨婧负责论文审核与修订;安卓玲负责提供指导、论文审核。
利益声明:所有作者均声明不存在利益冲突。
1 张颖. 时间序列预测在三级医院药品库存管理中的应用[D]. 青岛:青岛科技大学,2017.
2 LI W,LAW K. Deep learning models for time series forecasting:a review[EB/OL].[2024-11-09].https://doi.org/10.1109/ACCESS.2024.3422528.
3 王臣建,周红萍. ARIMA模型在高值易波动药品需求预测中的应用[J]. 医院管理论坛,2024,41(2):59-63.
4 王卓芸,于飚,陶亮亮,等. 借助自回归移动平均模型构建儿童口服退烧药消耗量的预测模型[J]. 中南药学,2024,22(4):1097-1100.
5 倪萱,陈一辰. ARIMA模型联合LSTM神经网络建立药品采购决策预测模型[J]. 黑龙江科学,2024,15(2):76-78.
6 SCHAFFER A,DOBBINS T,PEARSON S. Interrupted time series analysis using autoregressive integrated moving average (ARIMA) models:a guide for evaluating large-scale health interventions[J]. BMC medical research methodology,2021,21(1):58.
7 GERS F A,SCHMIDHUBER J,CUMMINS F. Learning to forget:continual prediction with LSTM[J]. Neural computation,2000,12(10):2451-2471.
8 GHOLAMY A,KREINOVICH V,KOSHELEVA O. Why 70/30 or 80/20 relation between training and testing sets:a pedagogical explanation[EB/OL].[2024-12-01].https://scholarworks.utep.edu/cs_techrep/1209.
9 BENVENUTO D,GIOVANNETTI M,VASSALLO L,et al. Application of the ARIMA model on the COVID-2019 epidemic dataset[EB/OL].[2024-09-20]. https://doi.org/10.1016/j.dib.2020.105340.
10 CLEVELAND R B,CLEVELAND W S,MCRAE J E,et al. STL:a seasonal-trend decomposition procedure based on Loess[J]. Journal of official statistics,1990,6(1):3-33.
11 杨宁. 基于SARIMA-LSTM组合模型的气温时间序列预测研究[D]. 秦皇岛:燕山大学,2023.
12 LU P,XU C,ZHANG J,et al. Outpatient volume prediction based on SARIMA-LSTM[J]. Big data,2019,5(6):248-257.
13 杨敏雪,于斐,王培生,等. 基于ARIMA和LSTM神经网络的乌鲁木齐市乙型肝炎发病预测研究[J]. 现代预防医学,2022,49(16):2903-2907.
14 唐诗诗,李宇轩,唐圣晟,等. 基于SARIMA-LSTM模型的肾综合征出血热发病率预测研究[J]. 医学信息学杂志,2024,45(8):71-77.
15 田勇,董斌,于楠,等. 基于SARIMA-LSTM模型的航空旅客运输市场需求分析与预测[J]. 指挥信息系统与技术,2024,15(5):1-8.
X