拓端tecdat|SARIMA,神經(jīng)網(wǎng)絡(luò),RNN-LSTM,SARIMA和RNN組合方法預(yù)測COVID-19每日新增病
原文鏈接:http://tecdat.cn/?p=23476?
原文出處:拓端數(shù)據(jù)部落公眾號
作者:Enzo Li
項(xiàng)目挑戰(zhàn)
開發(fā)一個預(yù)測模型,根據(jù)一個國家的歷史每日COVID-19確診病例,預(yù)測接下來115天當(dāng)?shù)氐拿咳招略龃_診病例。
解決方案
任務(wù)/目標(biāo)
采用多種預(yù)測模型實(shí)現(xiàn)預(yù)測,評估每種模型的性能,找到最小MSE的模型參數(shù)(調(diào)參)
數(shù)據(jù)預(yù)處理
首先進(jìn)行EDA(探索性數(shù)據(jù)分析),理解原始數(shù)據(jù)集。處理可能的缺失值或異常值(本例中沒有缺失或異常)。將數(shù)據(jù)轉(zhuǎn)換成浮點(diǎn)型,方便下一步的數(shù)據(jù)操作‘
用Pandas將索引設(shè)置為年,月,日的時(shí)間序列
該時(shí)間序列數(shù)據(jù)具有非線性趨勢。2020年4月至2020年5月以及2020年8月至2020年9月期間,似乎具有季節(jié)性變化,周期為7天。此外,數(shù)據(jù)集的均值隨時(shí)間變化,因此數(shù)據(jù)不是均值平穩(wěn)的(mean-stationary)
劃分訓(xùn)練集和測試集
考慮到最終模型會預(yù)測將來15天的新增確診病例,保留最后15天的真實(shí)數(shù)據(jù)作為測試集
建模
首先使用一些簡單的模型作為基準(zhǔn),如季節(jié)性天真(seasonal na?ve),h步漂移預(yù)測(h-step forecast drift),和簡單指數(shù)平滑(SES);然后采用了一些相對復(fù)雜的模型,如SARIMA,神經(jīng)網(wǎng)絡(luò),RNN-LSTM;最后,采用SARIMA和RNN的組合方法來實(shí)現(xiàn)更準(zhǔn)確的預(yù)測。接下來的模型描述側(cè)重于SARIMA和神經(jīng)網(wǎng)絡(luò)
SARIMA
SARIMA是考慮了季節(jié)性變化趨勢的ARIMA模型。分為三個部分:
第一部分是AR(自回歸)部分,研究變量和其自身的滯后值的回歸;
第二部分是MA(移動平均),研究誤差項(xiàng)之間的線性組合;
第三個是I(整合),表示數(shù)據(jù)值已被當(dāng)前值和前值之間的差值替代,以確保ARIMA可以解決非平穩(wěn)數(shù)據(jù)。該過程可執(zhí)行多次直到滿足stationary
每個部分都旨在使模型更好地?cái)M合數(shù)據(jù);
AR神經(jīng)網(wǎng)絡(luò)
自回歸神經(jīng)網(wǎng)絡(luò)(NNAR)是用于回歸或分類的多層模型,其時(shí)間序列的滯后值作為輸入。與ARIMA不同,它可以近似任何非線性函數(shù)。
RNN神經(jīng)網(wǎng)絡(luò)-LSTM
遞歸神經(jīng)網(wǎng)絡(luò)(RNN)通過隱藏單元(bias?unit)處理時(shí)間效應(yīng),以遞歸方法進(jìn)行更新,具有重復(fù)模塊鏈的形式。長期短期記憶網(wǎng)絡(luò)(LSTM)是一種特殊的RNN,可以學(xué)習(xí)長期依賴性。
項(xiàng)目結(jié)果
復(fù)雜模型的預(yù)測精度顯著高于簡單模型,其中RNN模型的MSE最小。預(yù)測結(jié)果的可視化圖形如下:
最后,采取堆棧(stacking)的方式,根據(jù)MSE進(jìn)行加權(quán),將精度最高的三種模型結(jié)合。
預(yù)測結(jié)果僅作為參考。
關(guān)于作者
Enzo Li,本科就讀于湖南大學(xué),主修電子信息工程,成績優(yōu)異,數(shù)學(xué)基礎(chǔ)扎實(shí)。有較強(qiáng)的編程能力;輔修了微經(jīng),宏經(jīng)、計(jì)量等經(jīng)濟(jì)學(xué)課程;悉尼大學(xué)研究生,主修定量金融(quantitative finance),輔修商業(yè)分析(business analytics)。側(cè)重于應(yīng)用層面的數(shù)據(jù)分析。在基于現(xiàn)實(shí)情境的商業(yè)實(shí)踐活動中,取得了優(yōu)異的成績。如:根據(jù)COVID-19的歷史確診記錄,建立每日新增預(yù)測模型 ,實(shí)現(xiàn)高精度預(yù)測(RNN神經(jīng)網(wǎng)絡(luò)優(yōu)化);根據(jù)地段、房屋面積、基礎(chǔ)設(shè)施分布等要素,建立房價(jià)預(yù)測模型;根據(jù)酒精含量、生產(chǎn)年份、用料、產(chǎn)地等,建立紅酒售價(jià)預(yù)測模型。課題貼合實(shí)際商業(yè)活動,鍛煉了運(yùn)用專業(yè)知識解決現(xiàn)實(shí)問題的能力和技巧;
最受歡迎的見解
1.用于NLP的Python:使用Keras的多標(biāo)簽文本LSTM神經(jīng)網(wǎng)絡(luò)分類
2.Python中利用長短期記憶模型LSTM進(jìn)行時(shí)間序列預(yù)測分析 – 預(yù)測電力消耗數(shù)據(jù)
3.python在Keras中使用LSTM解決序列問題
4.Python中用PyTorch機(jī)器學(xué)習(xí)分類預(yù)測銀行客戶流失模型
5.R語言多元Copula GARCH 模型時(shí)間序列預(yù)測
6.在r語言中使用GAM(廣義相加模型)進(jìn)行電力負(fù)荷時(shí)間序列分析
7.R語言中ARMA,ARIMA(Box-Jenkins),SARIMA和ARIMAX模型用于預(yù)測時(shí)間序列數(shù)
8.R語言估計(jì)時(shí)變VAR模型時(shí)間序列的實(shí)證研究分析案例
9.用廣義加性模型GAM進(jìn)行時(shí)間序列分析