第100+7步 ChatGPT文献复现:ARIMA-GRNN预测出血热

基于WIN10的64位系统演示

一、写在前面

这一次,我们来解读ARIMA-GRNN组合模型文章,也是老文章了:

《PLoS One》杂志的2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Renal Syndrome in Jiangsu Province, China》文章的公开数据做案例。

这文章做的是用:使用两种ARIMA组合模型预测江苏省出血热发病率。

文章是用单纯的ARIMA模型作为对照,对比了两种组合模型:ARIMA-GRNN模型和ARIMA-NARNN模型。本次,我们来重现一下ARIMA-GRNN模型。

二、闲聊和复现:

1 单纯ARIMA模型构建

第一段很简单地把构建最优ARIMA模型的整个流程说了下来:

还是老套路:

① 2004-2011年的数据用于建模,来个折线图看看趋势:

很明显,有季节性,所以文章做了1次季节性拆分和1次一般拆分(这个一般拆分也不是太必要,从图来看没有明显上升或者下降趋势,可能是不做通不过ADF检验吧),图1可以这么做:

② 至于ADF检验,那就得转到Eviews了:

通过ADF检验,数据平稳,文章用R做的吧,具体数值不太一样。

③ 开始找最优的ARIMA模型:

凑出了表1和表2,最终选择模型就是ARIMA (0,1,1)×(0,1,1)12。

④ 使用最优模型预测2012年的发病率:

得手动输入下要预测的月份,然后软件才能进行预测:

算一下单纯ARIMA的拟合误差分别是:MAE=0.0093,MAPE=0.4790;预测误差分别是:MAE=0.0091,MAPE=0.5636。

(2)ARIMA-GRNN组合模型

首先,得看看组合的策略,见文章描述(翻译):

GRNN模型是基于非线性回归理论的平滑函数的通用逼近器。GRNN模型由Speckt设计,有四层:输入层、模式层、求和层和输出层。GRNN的网络架构之前已经提及。在建立ARIMA模型之后,我们可以获得HFRS的估计月发病率。由于ARIMA模型已用于分析实际数据的线性部分,残差应包含非线性关系。为了在GRNN模型中包含更多有效和有用的信息,特别是当存在强烈的季节性趋势时,使用时间值作为GRNN的一个输入是必要的。在这项研究中,ARIMA的估计月发病率值和相应的时间值被用作GRNN模型的两个输入,而实际月发病率值被用作GRNN模型的输出。然后我们可以通过这种混合模型捕获非线性成分。GRNN的性能主要取决于光滑因子。选择最优光滑因子需要一定量的试验。光滑因子的选择采用了Specht提出的方法。我们在建模数据集中随机选取两个样本作为测试样本;其他样本被用来拟合GRNN模型。

不知道大家看懂了没:

简单来说就是,首先使用2004-01到2011-12的数据构建并找出最优模型ARIMA (0,1,1)×(0,1,1)12,并使用模型进行拟合(2004-01至2011-12)和预测(2012-01至2012-12);然后从2004-01到2011-12这些时间点中,随机抽取2个时间点的模型拟合值,比如说是2004-05和2009-03;把2004-05和2009-03的模型拟合值作为输入,丢进GRNN,同时告诉GRNN,2004-05和2009-03的拟合值对应的真实值是什么;通过这种方式训练GRNN模型,本质上是寻找GRNN的唯一参数,叫做光滑因子;找到了这个最优的GRNN模型(或者说确定了最优的光滑因子),再把之前ARIMA拟合和预测的所有数值,放进最优GRNN模型,输出的就是ARIMA-GRNN组合模型的结果。

至于为什么是随机抽取2个数值,咱也不懂,文献说的。待会操作过程中会发现其中的弊端。

软件使用的是Matlab,这里我就用我自己DIY的小程序(传送门)

① SPSS拿到拟合值与预测值:

② 打开Matlab-GRNN小程序,输入数据(确保拟合值和真实值一一对应,长度要一致):

看结果:

最优光滑因子是0.001,给出了一个图(就是文章的图三),似乎形状不一样呢,文章中是U型,那我们继续随机(随机放几个图得了):

我随机了几次,然后最优光滑因子嘛,有这几个:0.126、0.061、0.088等。进行最后的输出,看看组合模型的效果:

我先把ARIMA的指标列出来,方便对比:

拟合误差:MAE=0.0093,MAPE=0.4790;

ARIMA-GRNN不同光滑因子:

0.126:拟合误差:MAE=0.0084,MAPE=0.4674;

0.061:拟合误差:MAE=0.0077,MAPE=0.4167;

0.088:拟合误差:MAE=0.0079,MAPE=0.4334;

0.049:拟合误差:MAE=0.0077,MAPE=0.4089;

总体来看,性能是都是下降的。但是是在随机不出文章中的那两个数值,就不强求了,它的最优光滑因子是0.0265。然后MAE和MAPE能刷到0.0063和0.2815,优秀。

所以我这个软件有个BUG,就是不能自定义输入光滑因子,得到Matlab中操作才行,先埋个坑吧(早已把Matlab卸载了)。

三、个人感悟

可以看到,ARIMA-GRNN组合模型的构建策略由于存在随机性,因此得到的结果不尽相同,但是总体来看性能是有所改善的,在文中清清楚就行了。

其实有些数据吧,用了组合模型,性能反而变差了,它并不是万能的。

四、数据

链接:https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0135492

有童鞋问咋下载数据:

相关推荐
奈斯。zs10 分钟前
yjs08——矩阵、数组的运算
人工智能·python·线性代数·矩阵·numpy
Melody205010 分钟前
tensorflow-dataset 内网下载 指定目录
人工智能·python·tensorflow
DisonTangor42 分钟前
阿里通义千问开源Qwen2.5系列模型:Qwen2-VL-72B媲美GPT-4
人工智能·计算机视觉
豆浩宇42 分钟前
Halcon OCR检测 免训练版
c++·人工智能·opencv·算法·计算机视觉·ocr
LLSU131 小时前
聚星文社AI软件小说推文软件
人工智能
JackieZhengChina1 小时前
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
人工智能·智能手机
ShuQiHere1 小时前
【ShuQiHere】 探索数据挖掘的世界:从概念到应用
人工智能·数据挖掘
嵌入式杂谈1 小时前
OpenCV计算机视觉:探索图片处理的多种操作
人工智能·opencv·计算机视觉
时光追逐者1 小时前
分享6个.NET开源的AI和LLM相关项目框架
人工智能·microsoft·ai·c#·.net·.netcore
东隆科技1 小时前
PicoQuant公司:探索铜铟镓硒(CIGS)太阳能电池技术,引领绿色能源革新
人工智能·能源