徐 佩, 樊重俊, 朱人杰, 黃 耐
(1.上海理工大學(xué) 管理學(xué)院,上海 200093;2.同濟(jì)大學(xué)附屬東方醫(yī)院,上海 200120)
2019 年末我國(guó)武漢地區(qū)爆發(fā)新型冠狀病毒肺炎,由于爆發(fā)在春運(yùn)期間,嚴(yán)重性不言而喻。舉全國(guó)之力共抗疫情,但在武漢地區(qū),醫(yī)院可供床位卻遠(yuǎn)遠(yuǎn)不足。雖然這屬于突發(fā)事件,但同時(shí)說(shuō)明對(duì)醫(yī)院住院量的研究非常必要,通過(guò)對(duì)醫(yī)院住院量未來(lái)動(dòng)態(tài)變化的預(yù)測(cè)研究,可以提高醫(yī)院床位的使用率,合理配置各科室醫(yī)療床位,最大限度發(fā)揮現(xiàn)有醫(yī)療資源的作用。
在醫(yī)療床位的預(yù)測(cè)方法中,時(shí)間序列預(yù)測(cè)方法是較為常用的預(yù)測(cè)方法,并在多種實(shí)際應(yīng)用場(chǎng)景中預(yù)測(cè)效果較好[1]。2008 年徐建偉[2]建立了貝葉斯正規(guī)化BP(back propagation)神經(jīng)網(wǎng)絡(luò),對(duì)醫(yī)院床位數(shù)據(jù)進(jìn)行擬和預(yù)測(cè),并與指數(shù)平滑和自回歸模型進(jìn)行比較,實(shí)驗(yàn)結(jié)果表明,貝葉斯正規(guī)化BP 神經(jīng)網(wǎng)絡(luò)模型較傳統(tǒng)模型預(yù)測(cè)的精度更高一些。2013 年龍會(huì)典等[3]建立了由自回歸移動(dòng)平均模型(ARIMA)、灰色動(dòng)態(tài)模型(GM 模型)和BP 神經(jīng)網(wǎng)絡(luò)集成的時(shí)間序列預(yù)測(cè)模型。首先建立GM(1,1)模型,對(duì)序列的趨勢(shì)項(xiàng)進(jìn)行預(yù)測(cè),然后建立基于ARIMA 和BP 神經(jīng)網(wǎng)絡(luò)的組合模型,對(duì)序列的周期波動(dòng)項(xiàng)進(jìn)行預(yù)測(cè),最后利用乘積模型集成兩者預(yù)測(cè)值。實(shí)證結(jié)果表明,集成模型的預(yù)測(cè)效果顯著高于單一模型。2014 年曹凈等[4]提出了一種基于小波變換、粒子群優(yōu)化的最小二乘支持向量機(jī)(PSO-LSSVM)和ARIMA 的基坑變形時(shí)間序列預(yù)測(cè)方法,并成功地應(yīng)用于昆明某基坑工程的深層水平位移預(yù)測(cè)中。綜合以上研究表明,組合預(yù)測(cè)模型在不同領(lǐng)域的預(yù)測(cè)效果均優(yōu)于單一模型的預(yù)測(cè)效果。
本文針對(duì)上海市東方醫(yī)院呼吸內(nèi)科住院量的時(shí)間序列數(shù)據(jù)進(jìn)行研究,提出了一種基于Prophet-LSTM-PSO 組合模型的預(yù)測(cè)方法,分別運(yùn)用先知模型(Prophet)和長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)(LSTM)對(duì)2015 年1 月到2019 年12 月上海市東方醫(yī)院呼吸內(nèi)科住院量的時(shí)序數(shù)據(jù)進(jìn)行建模,然后利用粒子群算法(PSO)算法求出兩種模型對(duì)應(yīng)的組合系數(shù),從而得到最終的Prophet-LSTM-PSO 組合模型,并與單個(gè)預(yù)測(cè)模型Prophet,LSTM,ARIMA 模型的預(yù)測(cè)結(jié)果進(jìn)行比較。結(jié)果表明,在醫(yī)院住院量時(shí)序數(shù)據(jù)預(yù)測(cè)中,本文提出的組合模型Prophet-LSTM-PSO 的預(yù)測(cè)效果優(yōu)于單個(gè)模型的預(yù)測(cè)效果,預(yù)測(cè)性能更佳。
LSTM 是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種特殊形式,通過(guò)遺忘門(mén)、輸入門(mén)和輸出門(mén)3 個(gè)“門(mén)”控制信息量的傳入,并通過(guò)引入“記憶細(xì)胞狀態(tài)”對(duì)其進(jìn)行長(zhǎng)期保存。LSTM 單元結(jié)構(gòu)如圖1 所示。
圖1 LSTM 單元Fig.1 LSTM unit
在醫(yī)院呼吸內(nèi)科住院量的時(shí)序數(shù)據(jù)預(yù)測(cè)中,ft為遺忘門(mén)的控制函數(shù),通過(guò)輸出0~1 之間的數(shù)用于對(duì)上一時(shí)刻的呼吸內(nèi)科住院量向量數(shù)據(jù)進(jìn)行選擇。ht為當(dāng)前時(shí)刻的呼吸內(nèi)科住院量轉(zhuǎn)換向量,xt為 當(dāng)前時(shí)刻的呼吸內(nèi)科住院量向量, [ht-1,xt]是2 個(gè)向量連接的長(zhǎng)向量。Yt為t時(shí)刻呼吸內(nèi)科住院量的輸出向量。t為當(dāng)前時(shí)刻,t-1為上一時(shí)刻。W為各層對(duì)應(yīng)的權(quán)重矩陣,b為偏差向量,下標(biāo)f,i,o分別代表遺忘門(mén)、輸入門(mén)和控制門(mén)。
it為輸入門(mén)的控制函數(shù),與ft類(lèi)似,通過(guò)改變權(quán)重矩陣的值對(duì)新輸入的呼吸內(nèi)科住院量數(shù)據(jù)進(jìn)行選擇,以避免相關(guān)性較低的呼吸內(nèi)科住院量值加入記憶細(xì)胞。是當(dāng)前時(shí)刻真實(shí)的呼吸內(nèi)科住院量的tanh 函數(shù)轉(zhuǎn)換值,作為當(dāng)前時(shí)刻呼吸內(nèi)科住院量的信息向量。
當(dāng)前時(shí)刻記憶細(xì)胞的存儲(chǔ)向量Ct用于對(duì)當(dāng)前時(shí)刻呼吸內(nèi)科住院量向量進(jìn)行選取、轉(zhuǎn)換、存儲(chǔ),Ct是將上一時(shí)刻的存儲(chǔ)向量和當(dāng)前時(shí)刻新輸入的呼吸內(nèi)科住院量的信息向量分別與遺忘門(mén)控制函數(shù)向量、輸入門(mén)控制函數(shù)向量進(jìn)行逐元素相乘,進(jìn)而實(shí)現(xiàn)對(duì)較長(zhǎng)時(shí)間的呼吸內(nèi)科住院量相關(guān)信息量的記憶存儲(chǔ)。
ot為輸出門(mén)的控制函數(shù),用于對(duì)當(dāng)前時(shí)刻呼吸內(nèi)科住院量預(yù)測(cè)向量的輸出控制。
為經(jīng)轉(zhuǎn)換之后的呼吸內(nèi)科住院量預(yù)測(cè)值,minJ(θ)代表LSTM 的損失函數(shù)。
式中:Wy為輸出門(mén)上一時(shí)刻呼吸內(nèi)科住院量的存儲(chǔ)值權(quán)重矩陣;Lt為呼吸內(nèi)科住院量實(shí)際值。
LSTM 模型通過(guò)采用損失函數(shù)對(duì)輸出值的倒數(shù)作為誤差項(xiàng)隨時(shí)間進(jìn)行反向傳播,該算法稱(chēng)為基于時(shí)間的反向傳播算法(BPTT),其基本思想主要分為4 個(gè)步驟:
步驟1運(yùn)用式(1)~(7)前向計(jì)算出各個(gè)神經(jīng)元的輸出值ft,it,Ct,ot,ht,Lˉt;
步驟2從時(shí)間和網(wǎng)絡(luò)層級(jí)2 個(gè)方向反向計(jì)算每個(gè)神經(jīng)元的損失函數(shù)對(duì)其輸出值的倒數(shù),即每個(gè)神經(jīng)元的誤差項(xiàng);
步驟3根據(jù)每個(gè)神經(jīng)元的誤差項(xiàng)值對(duì)其相應(yīng)的權(quán)重計(jì)算梯度;
步驟4運(yùn)用梯度下降法更新權(quán)重矩陣和偏差向量。
在使用LSTM 對(duì)原始數(shù)據(jù)進(jìn)行預(yù)測(cè)的同時(shí),采用Prophet 模型進(jìn)行預(yù)測(cè)。
2017 年Facebook 發(fā)布了Prophet 時(shí)序先知模型,主要研究時(shí)序數(shù)據(jù)的特征和時(shí)序變化規(guī)律,同時(shí)預(yù)測(cè)未來(lái)的走勢(shì)。Prophet 的核心是分析包含周期性、趨勢(shì)性以及節(jié)假日效應(yīng)等的時(shí)間序列特征,它是一種針對(duì)時(shí)序的有效集成解決方案,Prophet模型的構(gòu)成為
式中:g(t)為趨勢(shì)函數(shù),用來(lái)分析時(shí)間序列中的非周期性的變化;s(t)代表周期性的變化,例如,一年或一周的周期性;h(t)代表節(jié)假日等偶然一天或幾天造成的影響; ε為隨機(jī)波動(dòng),代表模型沒(méi)有考慮到的誤差的影響[5]。
a.趨勢(shì)項(xiàng)。Facebook 采用改進(jìn)的Logistic 增長(zhǎng)模型,其中,飽和值是隨時(shí)間動(dòng)態(tài)變化的,而且增長(zhǎng)率也會(huì)隨著新產(chǎn)品等因素發(fā)生變化。
式中:C(t)為隨時(shí)間變化的飽和值(承載能力);k+a(t)Tδ 為隨時(shí)間變化的增長(zhǎng)率,為相應(yīng)的偏置參數(shù);S j為 若干個(gè)轉(zhuǎn)折點(diǎn); δ為轉(zhuǎn)折點(diǎn)處增長(zhǎng)率的變化量。
b.周期項(xiàng)。Prophet 模型依靠傅里葉級(jí)數(shù)來(lái)構(gòu)造靈活的周期性模型,基本形式為
式中:p為時(shí)間序列的周期長(zhǎng)度;N為周期數(shù);an,bn為需要估計(jì)的參數(shù)。
在多元回歸中,求解回歸參數(shù)的常用方法有最小二乘法、梯度下降法及牛頓法等,但是,這些方法涉及大量的矩陣計(jì)算,且計(jì)算速度較慢。而PSO 算法最初是基于自然界中存在的鳥(niǎo)類(lèi)捕食活動(dòng)現(xiàn)象所產(chǎn)生的智能模擬算法,該算法相較于遺傳算法(GA)、蟻群算法(ACO)等具有簡(jiǎn)單高效、參數(shù)少及收斂速度快等特點(diǎn)。因此,本文借助粒子群算法確定組合模型的權(quán)重系數(shù)。
PSO 算 法 將回歸 系數(shù)組合 (α, β)看 成一個(gè) 粒子,隨機(jī)初始化多個(gè)粒子,每個(gè)粒子通過(guò)位置和速度更新方程,向最優(yōu)解“靠攏”。
式中:vi(k),xi(k)分 別為粒子的速度和位置;c1,c2分 別為粒子移動(dòng)到該粒子歷史最優(yōu)位置pi和當(dāng)前所 有 粒 子 最 優(yōu) 位 置pg的 加 速 項(xiàng) 因 子;r1,r2為0-1 之間的隨機(jī)因子;w為慣性因子,是粒子之前運(yùn)動(dòng)方向在當(dāng)前運(yùn)動(dòng)方向上的慣性。
最后,通過(guò)定義適應(yīng)度函數(shù)
為了驗(yàn)證模型的可行性與有效性,選取了上海市東方醫(yī)院(本院及南院)呼吸內(nèi)科2015 年1 月到2019 年12 月這60 個(gè)月住院量數(shù)據(jù)為研究對(duì)象。將數(shù)據(jù)中存在的缺失值,運(yùn)用歷史同期和近3 期數(shù)據(jù)的平均值進(jìn)行填充,獲得完整的原始輸入數(shù)據(jù)。對(duì)原始輸入數(shù)據(jù),首先將其轉(zhuǎn)換為與模型輸入維度相同的類(lèi)型,然后將轉(zhuǎn)換后的數(shù)據(jù)集分為兩類(lèi),其中,80%的數(shù)據(jù)即從2015 年1 月到2018 年12 月的96 個(gè)數(shù)據(jù)(本院48 個(gè),南院48 個(gè))用于訓(xùn)練模型,剩余的2019 年1 月至2019 年12 月的24 個(gè)(本院12 個(gè),南院12 個(gè))數(shù)據(jù)作為測(cè)試集,用于對(duì)模型擬合效果進(jìn)行驗(yàn)證。
時(shí)間序列數(shù)據(jù)中蘊(yùn)含著大量不確定信息,應(yīng)用單一模型的預(yù)測(cè)效果往往不是很理想。因此,為了提高預(yù)測(cè)的準(zhǔn)確率,將LSTM 和Prophet 兩種模型進(jìn)行組合,應(yīng)用PSO 算法求解兩種模型的組合系數(shù)以提高求解速度,充分發(fā)揮組合模型的優(yōu)勢(shì)。
基于LSTM 和Prophet 組合模型的建模步驟:
步驟1對(duì)數(shù)據(jù)中缺失的小部分?jǐn)?shù)據(jù),結(jié)合近3 個(gè)月數(shù)據(jù)趨勢(shì)和每一年同期數(shù)據(jù),采用平均法進(jìn)行填充;
步驟2對(duì)經(jīng)過(guò)步驟1 處理的原始數(shù)據(jù)進(jìn)行歸一化處理,使得訓(xùn)練數(shù)據(jù)的極差盡可能小。然后運(yùn)用式(1)~(8)對(duì)時(shí)間序列 {Xt}進(jìn)行訓(xùn)練和預(yù)測(cè),得到LSTM 模型的預(yù)測(cè)值Lˉt;
步驟3對(duì)經(jīng)過(guò)步驟1 處理的原始數(shù)據(jù)進(jìn)行l(wèi)og 處理,使其盡量符合正態(tài)分布。然后運(yùn)用式(9)~(12)對(duì)時(shí)間序列 {Xt}進(jìn)行訓(xùn)練和預(yù)測(cè),得到Prophet模型的預(yù)測(cè)值
步驟4通過(guò)構(gòu)建適應(yīng)度函數(shù)Q(θ),使得組合模型預(yù)測(cè)值盡可能逼近真實(shí)值,并采用PSO 算法對(duì)組合模型的系數(shù) α和 β進(jìn)行求解;
步驟5組合兩種模型的預(yù)測(cè)結(jié)果,獲得組合模型預(yù)測(cè)值
2.3.1 LSTM 模型訓(xùn)練參數(shù)
在Python 3.6 軟件的基礎(chǔ)上,將LSTM 模型分別應(yīng)用于訓(xùn)練集和測(cè)試集,獲得單一模型下的各種具體參數(shù),其中,輸入向量為(2,1)的維度的時(shí)序數(shù)據(jù),輸入層神經(jīng)元數(shù)為8,隱藏層為1 層,神經(jīng)元數(shù)為128,隱藏層激活函數(shù)為RELU 函數(shù),即為f(x)=max(0,x),輸出層神經(jīng)元數(shù)為1。本實(shí)驗(yàn)中訓(xùn)練數(shù)據(jù)“輪”次數(shù)為100,采用隨機(jī)梯度下降算法。
2.3.2 Prophet 模型訓(xùn)練參數(shù)
在Python 3.6 軟件的基礎(chǔ)上,將Prophet 模型分別應(yīng)用于log 處理后的數(shù)據(jù)集,獲得單一模型下的各種具體參數(shù),輸入向量為(2,60)的時(shí)序數(shù)據(jù),趨勢(shì)項(xiàng)為改進(jìn)的Logistic 增長(zhǎng)模型,周期項(xiàng)取傅里葉級(jí)數(shù),擬合函數(shù)為Fit 函數(shù)。
2.3.3 組合模型訓(xùn)練與結(jié)果分析
將兩種單一模型的預(yù)測(cè)結(jié)果進(jìn)行組合,并應(yīng)用PSO 算法求解組合模型的系數(shù)α和β,從而獲得組合模型的預(yù)測(cè)值。
本院的組合預(yù)測(cè)模型為
南院的組合預(yù)測(cè)模型為
將組合模型與常用的單一模型(Prophet,LSTM,ARIMA 模型)在相同的測(cè)試集進(jìn)行定量分析,結(jié)果表明,LSTM-Prophet-PSO 組合模型的預(yù)測(cè)結(jié)果較單一模型要好,預(yù)測(cè)值與實(shí)際值的誤差值較小,為了更加直觀地觀察預(yù)測(cè)結(jié)果,將上海市東方醫(yī)院(本院)住院量的4 種模型實(shí)際值與預(yù)測(cè)值進(jìn)行可視化,如圖2 所示。從圖2 中可以看出,組合模型擬合效果最好,其次是Prophet 模型,再次是ARIMA 模型,最后是LSTM 模型。與其他幾種單一模型相比,組合模型在訓(xùn)練集和測(cè)試集上都有較好的擬合效果,符合時(shí)序數(shù)據(jù)的大致趨勢(shì)。
為了對(duì)模型的效果進(jìn)行科學(xué)的評(píng)估,分別計(jì)算了各個(gè)模型的整體均方根誤差(RMSE)和平均絕對(duì)誤差(MAE),并將LSTM-Prophet-PSO 組合模型與Prophet,LSTM,ARIMA 模型進(jìn)行對(duì)比,以驗(yàn)證該方法的可行性與有效性。不同模型在相同指標(biāo)下的對(duì)比結(jié)果如表1 所示。
為了增加本文的可信度,采用公開(kāi)數(shù)據(jù)集,即我國(guó)新型冠狀病毒肺炎疫情的累計(jì)確診量的時(shí)序數(shù)據(jù)進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)數(shù)據(jù)為2020 年1 月24 日到2020 年4 月19 日我國(guó)累計(jì)確診人數(shù),應(yīng)用本文所建立的模型,得到組合模型為=-0.064 883 51+1.064 045 72,并分別計(jì)算LSTMProphet-PSO 組合模型與Prophet,LSTM,ARIMA模型的RMSE 和MAE,如表2 所示。
從表1 和表2 可以看出,組合模型與其他3 種單一模型相比,預(yù)測(cè)精度最高,其相對(duì)于Prophet,LSTM,ARIMA 這3 種單一模型在RMSE 和MAE上都有明顯的提高。
圖2 模型的實(shí)際值與預(yù)測(cè)值對(duì)比Fig.2 Comparison of actual and predicted values of the model
表1 實(shí)驗(yàn)組:不同模型的整體均方根誤差與平均絕對(duì)誤差對(duì)比Tab.1 Trial group: comparison of RMSE and MAE of different models
表2 對(duì)比實(shí)驗(yàn)組:不同模型的整體均方根誤差與平均絕對(duì)誤差對(duì)比Tab.2 Control group: comparison of RMSE and MAE of different models
通過(guò)分析醫(yī)院住院量的時(shí)序數(shù)據(jù)的特征與趨勢(shì),進(jìn)一步分析醫(yī)院住院量預(yù)測(cè)的準(zhǔn)確度,對(duì)于醫(yī)院及時(shí)調(diào)整醫(yī)院資源配置具有重要的參考意義。根據(jù)上海市東方醫(yī)院呼吸內(nèi)科住院量時(shí)序數(shù)據(jù)的規(guī)律,提出了一種基于Prophet 模型和長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)的組合模型預(yù)測(cè)方法,通過(guò)粒子群算法確定組合模型中的權(quán)重系數(shù),并與Prophet,LSTM,ARIMA 模型這3 種單一模型的預(yù)測(cè)效果進(jìn)行對(duì)比。利用公開(kāi)數(shù)據(jù)集,即我國(guó)新型冠狀病毒肺炎疫情的累計(jì)確診量的時(shí)序數(shù)據(jù)進(jìn)行對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,通過(guò)PSO 計(jì)算得出的組合模型的預(yù)測(cè)性能優(yōu)于單個(gè)Prophet,LSTM,ARIMA模型的預(yù)測(cè)性能。本文對(duì)醫(yī)院住院量的研究只考慮了歷史數(shù)據(jù)的影響,在進(jìn)一步預(yù)測(cè)時(shí)可考慮多個(gè)影響因素,例如,氣溫、濕度等因素對(duì)呼吸內(nèi)科住院量的影響[6-9]。