1.模型方法
运用时间序列的前N个数值来预测第N+1个数值。首先将原始数据分为训练集和测试集,通过逐步测试N值和spread值的方法来获取最优模型,即模型的测试误差最小。然后用最优模型来预测所需要预测的数值。
2.界面介绍
如图一所示,界面分为寻找最优模型参数界面和最优模型预测界面。
2.1寻找最优模型参数
2.1.1输入窗口
训练集 输入训练集数据。
测试集 输入测试集数据。
N值取值范围 输入N值的最大值以及最小值,步长默认为1。其中最小值大于等于1,最大值小于等于训练集数据个数。
光滑因子取值范围 输入光滑因子的最大最小值以及步长。该参数的取值范围越宽,步长越小,则程序运行的时间越长。为提升工作效率,应合理取值。
测试集数据个数 输入测试数据的数目。
2.2.2输出窗口
最优N值 输出最优模型的N值。
最优光滑因子 输出最优模型的spread值。
以上两组输出窗口由 寻找 按钮实现。
拟合误差 MAE 输入模型拟合的平均绝对误差;
MAPE 输出模型拟合的平均相对误差;
MSE 输出模型拟合的均方误差;
RMSE 输出模型拟合的均方根误差。
拟合效果图(左一)显示拟合值以及真实值曲线。
以上两组输出窗口由 拟合 按钮实现。
预测误差 MAE 输出模型预测的平均绝对误差;
MAPE 输出模型预测的平均相对误差;
MSE 输出模型预测的均方误差;
RMSE 输出模型预测的均方根误差。
预测效果图(右一)显示预测值以及真实值曲线。
以上两组输出窗口由 预测 按钮实现。
2.2最优模型预测
2.2.1输入窗口
输入值 输入所有原始数据,包括上一个界面的训练集和测试集。
最优N值 输入最优模型的N值。
最优光滑因子 输入最优模型的spread值。
预测个数 输入需要预测的数据的数目。
2.2.2输出窗口
预测值 输出预测值。点击 预测 按钮实现。
2.3重置 清空所有窗口,进行下一组数据操作。
图一 单因素GRNN模型图形用户界面(GUI)下载地址
3.实例演示
这里我们采用《PLoS One》2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Renal Syndrome in Jiangsu Province, China》文章的公开数据做演示。数据为江苏省2004年1月至2012年12月肾综合症出血热月发病率。运用2004年1月至2011年12月的数据预测2012年12个月的发病率数据。
3.1构建最优模型
将数据拆分为训练集和测试集。其中将2004年1月至2011年10月的数据纳入训练集,2011年11月和12月的数据纳入测试集。测试数据个数为2。N值取值范围选取1到94。光滑因子取值范围选取0.1到3,步长为0.1。如图二所示,点击 寻找。
弹出读条窗口说明程序开始运行,运行时间取决于需要测试的N值和光滑因子的数目。
如图四所示,程序运行完毕。显示最优N值和最优光滑因子,分别为60和0.1。如果需要进一步精确光滑因子,可以进行第二次程序寻优。例如将光滑因子范围选取0.01到0.2,步长选择0.01,N值范围选取60到60。进一步寻找更精确的最优光滑因子。这里不进行演示。
如图五所示,点击 拟合 和 预测 按钮,分别显示拟合效果以及测试效果的四种误差值和曲线图。
3.2最优模型预测
如图六所示,输入全部原始数据,即2004年1月至2011年12月的月发病率数据。最优N值输入60,最优spread值输入0.1,预测个数输入12。点击 预测,如图七所示,得出最终预测值。预测值以列的形式显示,方便复制到Excel进行一步操作。
3.3预测效果
如表1所示,模型预测效果精度较高。平均绝对误差为0.00767,稍优于文章中ARIMA-GRNN模型的0.0078,稍劣于文章中的ARIMA-NARNN模型的0.0074。
表1 单因素GRNN模型预测数值
时间 | 实际值 | 预测值 | 绝对误差 |
2012年1月 | 0.02659 | 0.03447 | 0.00788 |
2012年2月 | 0.01519 | 0.01710 | 0.00191 |
2012年3月 | 0.01519 | 0.01344 | 0.00176 |
2012年4月 | 0.03038 | 0.01731 | 0.01307 |
2012年5月 | 0.01772 | 0.02476 | 0.00703 |
2012年6月 | 0.02659 | 0.02647 | 0.00011 |
2012年7月 | 0.01013 | 0.01681 | 0.00668 |
2012年8月 | 0.00253 | 0.01132 | 0.00879 |
2012年9月 | 0.00760 | 0.01476 | 0.00717 |
2012年10月 | 0.02912 | 0.04103 | 0.01191 |
2012年11月 | 0.06457 | 0.07078 | 0.00621 |
2012年12月 | 0.07469 | 0.05523 | 0.01947 |
图二 寻找最优模型参数
图三 程序正在寻找最优模型参数
图四 显示最优N值以及最优spread值
图五 显示拟合效果以及预测效果误差值和曲线图
图六 输入原始数据和模型参数进行预测
图七 显示最终预测值(以列显示)
结果汇总
2004-2011年中国出血热月发病率预测
单纯GRNN模型性能
MAE | MAPE | MSE | RMSE |
0.0340 | 0.3904 | 0.0026 | 0.0510 |
其他一些传染病的测试结果