一、GM(1, 1)灰色预测简介
乍一看,这个名字好奇怪,其实是有含义的
- G:Grey(灰色)
- M:Model(模型)
- (1, 1):只含有一个变量的一阶微分方程模型
提到灰色,就得先说说白色和黑色
白色系统
- 典型例子:电阻器件
- 特点:内部特征是完全已知的,电压、电流和电阻之间的关系(欧姆定律)是已知的
- 知道电阻大小后,输入电压值,就能算出电流值
- 白色系统课“计算”出想要的结果
黑色系统
- 典型例子:一辆车
- 特点:内部特征是完全未知的,开车并不需要懂发动机设计和工作原理等
- 非专业人士虽然可以控制汽车,然而内部出故障时并不会修
- 黑色系统具有“不可知性”
灰色系统
- 典型例子:GDP就是灰色系统
- 特点:介于黑色和白色之间,部分已知,部分未知,具有小样本数据的不确定系统
- 我们有往年的数据和一定的理论基础(白色)
- 但无法精确计算得出下一年的值(黑色)
- 灰色无法“计算”,但并不是完全“不可知”,可以进行“预测”
二、适用赛题
数列预测
- 特点:定时求量,已知xx年到xx年的数据,请预测下一年的数值
- 常见GDP、人口数量、耕地面积、粮食产量等问题
- 针对的问题往往短期波动小、可预测,但长期可能变化大、难以准确预测
灾变预测
- 特点:定量求时,已知xx年到xx年的数据和某灾变的阈值,预测下一次灾变发生的时间
- 常见洪涝灾害、虫灾等问题
- 模型中需要把超出阈值的数据(异常数据)对应的时间组成新序列
拓扑预测
- 特点:对数据波形进行预测,求的是多个模型构成的模型群,等于求解多个灾变预测
- 与灾变预测类似,不过有较详细的分级,例如虫灾“轻微”“中度”“重度”
注意事项
- 需要的数据量少,而且数据量太多了没意义,例如用近100年去预测下一年毫无意义
- 只能短期预测,究竟多短没有严格限制
三、模型流程
四、流程分析
这里以一个例子贯穿流程分析
问题是预测下一年噪声数据
这个题目特点:数据少、看不出明显规律,适合用灰色预测
1.级比检验和平移变换
为了不让我们一顿操作猛如虎,一看预测不可靠,我们可以在开始之前对数据进行检验,确定原始数据GM(1, 1)模型的可行性。
这里
是原始数据的意思
如果在区间外,可尝试平移变换。也就是给每个数据都加上任意常数c后看是否在区间内,求解后再减去c。如果尝试多次平移变换后始终无法在区间内,说明题目不适合灰色预测。
2.累加数据
因为原始数据看不出什么规律,所以我们要进行操作制造规律,一般是累加数据
弱化其随机性,显现其规律性
3.构造方程
生成的新序列,看起来像一个指数曲线。因此可用一个指数曲线的表达式来逼近这个新序列,相应可构建一个一阶常微分方程来求解拟合指数曲线的函数表达式。
要预测下一年数值,就需要知道新序列的表达式,那就要解出微分方程。要解微分方程,就要先知道参数a和u
4.求参数
b表示灰作用量,-a表示发展系数。
5.求解方程和预测值
拟合值与预测值
- 因为第1到7年的噪声数据是已知的,那么通过微分方程的函数解求出的值就是拟合值
- 拟合值与实际值的偏差,代表了模型的优劣
- 偏差越小,模型越好。偏差过大说明有问题,所以下一步需要拟合值进行模型检验
6.检验
至此,预测完成。
五、补充
此部分是后来发现一些关于GM(1, 1)灰色预测其他讨论的补充。
注:此部分可能与前面的流程图等不兼容,因不方便改动,还请谅解。
1.准指数规律
数据具有准指数规律是使用灰色系统建模的理论基础。
实际建模中,我们要计算出ρ(k) ∈ (0, 0.5)的占比,占比越高越好(一般前两期:ρ(2)和ρ(3)可能不符合要求,我们重点关注后面的期数)
2.发展系数与预测情形的探究
GM(1, 1)适用情况和发展系数的大小有很大关系,《灰色系统理论教程》中给了如下结论:
当|a| > 2时,模型没有意义;当|a| < 2时,GM(1, 1)才有意义。
当a取不同值时,预测的最终效果也不相同,具体讨论如下:
- 当-a < 0.3时,GM(1, 1)模型适合于中期和长期数据的预测
- 当0.3< -a ≤ 0.5时,GM(1, 1)模型适合于短期预测,中长期数据预测应谨慎使用
- 当0.5 < -a ≤ 0.8时,GM(1, 1)模型对于预测短期数据应谨慎使用
- 当0.8 < -a ≤ 1.0时,应对GM(1, 1)进行残差修正(见教材)后使用
- 当-a > 1时,不宜使用GM(1, 1)模型进行预测
所以,我们可以根据预测出的a来和上述范围比较,来确定适用情况。
注意:上面这个结论谨慎使用,按照书上的结果,应该是发展系数越小预测的越精确。
3.GM(1, 1)模型的拓展
------源自《灰色系统理论教程》
4.什么时候用灰色预测
下面是参考清风up主的看法,使用哪种模型进行预测是仁者见仁智者见智的事情:
- 数据是以年份度量的非负数据(如果是月份或者季度数据一定要用时间序列模型)
- 数据能经过准指数规律的检验(除了前两期外,后面至少90%的期数的光滑比要低于0.5)
- 数据的期数较短且和其他数据之间的关联性不强(小于等于10,也不能太短了,比如只有3期数据),要是数据期数较长,一般用传统的时间序列模型比较合适
六、关于预测题目
1.预测题目的一些小套路
- 看到数据后先画时间序列图并简单的分析下趋势(例如:时间序列分解)
- 将数据分为训练组和试验组,尝试使用不同的模型对训练组进行建模,并利用试验组的数据判断哪种模型的预测效果最好(比如我们可以使用SSE这个指标来挑选模型,常见的模型有指数平滑、ARIMA、灰色预测、神经网络等)
- 选择上一步骤中得到的预测误差最小的那个模型,并利用全部数据来重新建模,并对未来的数据进行预测
- 画出预测后的数据和原来数据的时序图,看看预测的未来趋势是否合理
2.对于预测模型的看法
真正的预测要结合背景,而不是直接套用模型。
预测两要
- 要结合背景
- 要合理假设
预测两不要
- 不要硬套模型
- 不要不做解释
------参考看法:清风