基于Python的LSTM模型对流感预测的研究*

2022-05-28 04:18翟梦梦王旭春全帝臣李美晨陈利民仇丽霞
中国卫生统计 2022年2期
关键词:差分流感重构

翟梦梦 王旭春 任 浩 全帝臣 李美晨 陈利民 仇丽霞△

【提 要】 目的 探讨基于keras的LSTM模型和SARIMA模型预测我国北方省份流感样病例数的可行性,为流感防控工作提供合理的预测方法。方法 利用国家流感中心2013-2019年北方省份的周流感监测数据构建LSTM模型和SARIMA模型,并进行预测。采用平均绝对误差(MAE)、均方根误差(RMSE)评价两种模型的预测效果。结果 LSTM、SARIMA模型的MAE值分别为304.19、352.74,RMSE值分别为398.71、521.07;相比之下,LSTM模型的预测性能优于SARIMA,较SARIMA模型预测性能分别提高了13.76%、23.5%。结论 基于Keras的LSTM模型的预测效果较好,优于SARIMA模型,可为流感预测提供科学依据。

流行性感冒简称流感,流行期间会造成学生缺课、人员缺勤、劳动力严重丧失,严重影响人群的健康状况[1];流行高峰期间,发病和就诊人数急剧增加,门诊和住院负担也会随之加重[2-3],阻碍了社会经济的有序发展。近年来我国流感发病数呈上升趋势,因此,准确、合理的预测模型对政府的决策和有效防控有着重要的指导意义。

流感监测数据具有时间序列特征,自回归移动平均(autoregressive integrated moving average,ARIMA)模型作为传统时间序列预测的代表,能够分析数据的长期趋势、周期性变化和随机扰动,是疾病预测中最常用的一种方法[4]。当时间序列数据存在季节性或周期性波动时,常构建季节性自回归移动平均(seasonal autoregressive integrated moving average,SARIMA)模型[5],但在实际应用中,往往需要通过差分等方法将不平稳序列变为平稳序列,这会造成信息浪费且随着预测时间的延长,精确度随之降低[6]。近年来,随着计算机硬件和算法的提升,深度神经网络(deep neural network,DNN)的计算得以实现,与传统时间序列方法相比,不需要对原始时序数据进行平稳性处理,也能获取数据的波动性及规律性特征[7],其中,循环神经网络(recurrent neural network,RNN)的预测性能较好,但当时间序列较长时,RNN会出现梯度消失及长期记忆能力不足的问题[8-9]。1997年,Jürgen Schmidhuber等人提出了长短期记忆神经网络(long-short term memory,LSTM),可以很好地解决上述问题,更适合处理长时间序列数据[10]。目前,LSTM已被应用于股票预测[11]、销售预测[12]等领域,但在流感预测方面少见报道,本研究利用2013-2019年国家流感中心报告的北方省份流感样病例建立基于keras平台的LSTM模型,研究其对流感的预测性能,并与SARIMA模型进行比较,为我国传染病预测提供科学依据。

资料与方法

1.资料来源

本研究使用的数据来源于国家流感中心(http://www.chinaivdc.cn/cnic/)。国内的流感调查研究发现,我国南方与北方流感流行情况存在差异,由于北方的流感样病例报告数较南方省份有更为明显的季节特征,更适合建立SARIMA模型,因此,整理了北方省份2013-2019年共364周的流感监测周报数据进行分析和建模。

2.研究方法

(1)SARIMA模型

预处理过程包括:①平稳性检验:根据单位根检验(augmented dickey-fuller test,ADF)及自相关函数图判断序列平稳性。②白噪声检验(Box-Ljung检验):对平稳序列进行白噪声检验,若序列为白噪声序列则分析结束,若为非白噪声序列则进行建立SARIMA模型。

SARIMA模型表达式为:(p,d,q)(P,D,Q)S。p,q为自回归和移动平均阶数,d为差分次数,P、Q为季节自回归和移动平均阶数,D为季节差分次数。其构建过程主要包括:①根据调整后序列的自相关图与偏相关图,选择可能的p、q、Q和P值进行拟合。②运用极大似然估计法估计模型参数。③模型检验:最终通过最小信息量准则(the Akaike′s information criterion,AIC)和施瓦斯贝叶斯准则(Schwars′s bayesian criterion,SBC)最小原则选择最优模型。④利用所选的最优模型进行预测。

(2)LSTM模型

LSTM模型于1997年被Sepp Hochreiter和 Jurgen Schmidhuber提出,后被Alex Graves、Haim Sak和Wojciech Zaremba等人逐步改进并予以应用[10],是一种特殊的RNN网络类型。LSTM模型中引入了独特的记忆单元结构,使其可以在学习时间序列长期依赖性的同时克服RNN的梯度消失问题,使网络能够更加有效地利用长时间序列信息,同时,LSTM模型对时间序列无平稳性要求,可以直接对序列进行训练,减少了人为因素的干预,使得模型具有较强的客观性,因此,本研究选择该模型进行分析与预测。

由于LSTM模型是RNN的一种改进模型,其模型基本结构与RNN相同。RNN结构如图1所示,LSTM模型仅与RNN的隐含层模块(单元结构A)不同。

图1 RNN结构

LSTM模型是将RNN的隐含层模块(单元结构A)重新设置为LSTM单元结构,其内部结构如图2所示。图2中的A分别代表一个LSTM单元。

图2 LSTM网络单元结构

LSTM模型中的单元结构A(LSTM单元)又称记忆单元,由输入门、遗忘门和输出门组成,其中,a表示遗忘门,决定传来的信息是否要丢弃;b表示输入门,与c共同更新当前时刻的单元状态,具体是通过将it和mt相乘更新当前时刻的单元状态Ct,并将其传递到下一个记忆单元;d表示输出门,决定当前时刻输出的值,由ot和经tanh函数处理的Ct共同决定。模型通过这三种门控结构控制信息在记忆单元和神经网络中的流动[13]。ft、it、ot分别代表三个门结构状态,mt代表单元输入状态,ht-1代表t-1时刻的输出、xt代表t时刻的输入。具体计算公式如下[14]:

ft=σ(Wfhht-1+Wfxxt+bf)

it=σ(Wihht-1+Wixxt+bi)

mt=tanh(Wmhht-1+Wmxxt+bm)

Ct=ftCt-1+immt

ot=σ(Wohht-1+Woxxt+bo)

ht=ottanh(Ct)

式中,W表示连接两层的权重矩阵,σ表示sigmoid激活函数,b是对应的偏置项。

LSTM模型构建过程:①将原始数据进行预处理,包括数据归一化及数据重构;②转换为3D数据:将预处理过的数据转换为适合LSTM要求的3D数据;③基于Python的深度学习框架Tensorflow下的keras平台来建立LSTM模型,使用训练集数据对模型进行训练;④使用训练后的模型在测试集上进行;⑤预测数据反归一化。

数据归一化:为了提高模型的训练速度和预测精度[15],本文使用min-max normalization方法对原始数据进行归一化处理。

式中:X*为数据归一化后的值;X为原始数据,Xmax和Xmin分别为其最大值和最小值。

数据重构:由于流感数据为一维时间序列,而LSTM模型的数据样本要有输入X和对应的输出Y,因此,本文通过滑窗法进行数据重构。

滑窗法是使用过去时间点观测值来预测下一时间点预测值的方法,具体重构过程如图3所示,即假设原始时间序列为具有m个时间点的观测值序列,将t时刻之前的k个时间点的观测值作为输入Xt,t时刻的观测值作为输出Yt。以此类推,将原始时间序列重构为有输入和输出的数据集。图3中将k设置为6(即使用t时刻前6个时间点的观测值作为输入),此时Xt为[[3],[4],[5],[6],[7],[8]],是一个2D张量,t时刻的Yt为[[9]],同样是2D张量。Xt+1为[[4],[5],[6],[7],[8],[9]],对应的Yt+1为[[10]]。以此类推,则重构后的数据集包含m-k个样本点。其中,1,2,3,4…8,9,10…m分别代表各时间点观测值归一化后的数值。

图3 滑窗法数据重构示意图

数据转换:由于LSTM模型要求输入数据的格式为(samples,time_steps,input_dim)的3D张量(3D数据)。其中,samples代表样本量,time_steps代表时间步长,input_dim代表每个时间步的数据维度。经数据重构后(图3),得到的输入样本Xt-2、Xt-1、Xt、Xt+1、Xt+2…Xm-6均为2D张量,将重构后的输入样本按顺序组合在一起时就转换成了LSTM所要求的3D张量。由于时间步长不同,重构后的样本量也不相同,当时间步长为k时,样本量为m-k,且流感序列为一维数据,因此,LSTM模型的输入数据格式为(m-k,k,1)。

(3)模型效果评价

采用平均绝对误差(mean absolute error,MAE)、均方根误差(root mean squared absolute error,RMSE)指标来评价模型的预测性能。

(1)

(2)

3.统计分析

采用SAS 9.2软件建立SARIMA模型,采用python 3.7.1进行单位根检验、白噪声检验、自相关图和偏自相关图;采用Pycharm的keras软件包实现LSTM模型。

结 果

1.流感样病例时间分布

2013-2019年我国北方省份流感流行概况如图4、5所示。可见流感样病例每年呈增长趋势,且每年的冬春交替时期是流感发病的高峰期。

图4 2013-2019年北方省份流感样病例时序图

2.SARIMA模型

由图4、图5可知该序列呈每年递增的趋势和明显的季节性特征,原始序列为不平稳序列(图6)。将2013-2019年共364周数据的前4/5设置为训练集,后1/5设置为测试集。进行1阶差分及52步差分,差分后序列平稳且不能视为白噪声(表1),季节性周期为52周(即S=52),初步选定SARIMA(p,1,q)(P,1,Q)52模型。

图5 北方省份年度流感样病例数

图6 原始序列自相关与偏相关图

表1 差分后序列平稳性及白噪声检验

根据文献显示,参数超过2阶的情况极为少见,且通过差分后序列的自相关和偏相关图(图7)确定可能的p、q、P和Q值,确定5个备选模型(表2),根据AIC,SBC最小原则选择最优模型,最终确定模型为SARIMA(0,1,1)(0,1,1)52。该模型的残差白噪声检验结果为χ2=17.124,P=0.378,表明其残差序列为白噪声。

表2 备选模型参数估计及参数检验

图7 差分后序列自相关与偏相关图

从QQ图看出残差服从正态分布,残差序列为白噪声,再次表明所构建的模型是有效的。利用SARIMA(0,1,1)(0,1,1)52模型预测我国北方省份2019年1月-12月的流感样病例数,结果如图9所示。

图9 SARIMA(0,1,1)(0,1,1)52模型预测图

3.基于keras平台的LSTM模型

由于LSTM模型对时间序列无平稳性要求,可以直接建立模型。同样地将前4/5(291)的流感数据设置为训练集,后1/5(73)设置为测试集,建立LSTM模型。

图8 SARIMA模型残差QQ图

本文的隐藏层设置为单隐层,节点数设置为4,输出层设置为1,采用Adam算法优化参数,其他为默认参数。由于时间步长会影响待预测样本的长度,原始数据经归一化及数据重构后将其转换为LSTM模型输入要求的3D数据格式,经数据转化可知:其数据格式为(m-k,k,1),其中,m为原始时间序列的样本数,k为时间步长。经过数据重构,时间步为1的LSTM模型训练集和测试集样本数为290和72,时间步为52的LSTM模型样本数为239和21。不同时间步长下的输入数据格式如表3所示。

表3 不同时间步长下的输入数据格式

当模型的时间步设置为1时(即将前1周数据作为输入,后1周数据作为输出),结果见图10。从图中可以看出,在数据不做差分等处理的前提下,LSTM模型抓住了数据线性增长和波动率逐渐增加的两大趋势,这是经典的时间序列分析模型不容易做到的;但由于原始数据存在周期性的结构特点,将时间步设置为52(即将前52周数据作为输入,后1周数据作为输出)进行预测,结果见图11。并与时间步为1的模型进行比较。

图10 LSTM(1)模型预测图及100次预测丢失率图

图11 LSTM(52)模型预测图及100次预测丢失率图

时间步为1的LSTM模型预测丢失率稳定在0.0096,高于时间步为52的LSTM模型预测丢失率稳定在0.0039,其中,丢失率(loss)代表训练集样本的预测值与真实值的差异程度,用于评价LSTM模型的训练效果。通过比较两模型的丢失率,表明所构建的时间步为52的LSTM模型较好。

4.模型对比分析

运用SARIMA模型和LSTM模型对北方省份2019年1-12月流感样病例数进行预测,结果显示:SARIMA模型、LSTM(1)、LSTM(52)模型对于流感的预测趋势与真实流感样病例数趋势基本一致,说明SARIMA、LSTM模型都能较好预测流感发病趋势。SARIMA模型预测效果居中,其MAE、RMSE分别为352.74、521.07;LSTM(1)预测效果最差,其MAE、RMSE分别为448.79、784.09,较SARIMA模型分别增加96.05、263.02,预测性能分别降低了27.23%、50.50%;LSTM(52)预测效果最好,其MAE、RMSE分别为304.19、398.71,较SARIMA模型分别减少48.55、122.36,预测性能分别提高了13.76%、23.50%;表明对于具有周期性特征的时间序列而言,考虑周期特征的LSTM模型在流感预测性能最好(表4)。

表4 三种模型预测性能对比

讨 论

由于流感病毒极易发生变异,造成大流行[16],加重卫生服务负担。因此,及时了解流感流行趋势、早期发现疫情是预防控制的关键。SARIMA模型着重分析流感样病例数随时间的变化规律,可以将其他未知的影响因素综合于时间序列中,最终通过分析流感样病例数之间的自相关性和依存关系来进行预测,SARIMA模型要求序列为平稳的非白噪声序列,对于非平稳的时间序列,需要对序列进行差分达到平稳后进行分析,而LSTM模型则可以直接对时间序列进行训练并预测,相比于传统的统计学分析模型更具优势[17],因此本文建立SARIMA模型和LSTM模型,并根据时间周期性特征对LSTM模型进行调参,采用MAE和RMSE两个指标来比较两模型在预测流感样病例数的准确性。

结果显示,3个模型对我国北方省份流感的预测趋势与真实流感病例数趋势基本一致,但相比较来说,LSTM(52),即考虑时间周期性,模型的预测效果最好,优于SARIMA模型和LSTM(1)模型。可能是由于LSTM(1)模型只用前1周的流感发病人数预测下一周,没有考虑流感发病的周期性,而LSTM(52)模型克服了平移错位的现象,提高了预测精度,这也与李琳等[8]利用LSTM模型分析新疆地区慢性阻塞性肺病的月门诊量变化趋势研究结果相一致。因此,与传统的时间序列预测模型SARIMA相比,本文建立的基于keras平台的LSTM模型可以对未来一段时间我国流感样病例数进行预测,为流感有效防控及相关部门进行资源优化配置提供一定的参考。

猜你喜欢
差分流感重构
RLW-KdV方程的紧致有限差分格式
符合差分隐私的流数据统计直方图发布
流感大作战
视频压缩感知采样率自适应的帧间片匹配重构
长城叙事的重构
数列与差分
高盐肥胖心肌重构防治有新策略
小心,流感来了
为什么儿童容易患“流感”
北京的重构与再造