1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 12.灰色系统下的灰色预测和灰色分析

12.灰色系统下的灰色预测和灰色分析

时间:2022-09-09 13:59:54

相关推荐

12.灰色系统下的灰色预测和灰色分析

灰色系统分析

灰色预测(1) 定义(2) GM(1,1)模型--单变量一阶微分方程(3)扩展GM模型(4)适用场景(5)解题思路灰色分析应用一--看那种因素影响程度高应用二 灰色分析用在综合评价类问题

灰色系统:相对于白色系统和黑色系统而言,系统哦的部分信息已知,部分信息未知。

灰色预测

(1) 定义

灰色预测是对既含有已知信息又含有不确定信息的系统进行预测,就是对在一定范围内变化的、与时间有关的灰色过程进行预测。

灰色预测对原始数据进行生成处理来寻找系统变动的规律,并生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势的状况。

(2) GM(1,1)模型–单变量一阶微分方程

GM(1,1)是使用原始的离散非负数据列,通过一次累加生成削弱随机性的较有规律的新的离散数据列,然后通过建立微分方程模型,得到在离散点处的解经过累减生成的原始数据的近似估计值,从而预测原始数据的后续发展。

灰色微分方程,对数列建立近似的微分方程模型,但是由于微分方程只适合连续可微函数,而时间序列数据非常连续,更谈不上可微性,因此灰色预测建模得到的是近似微分方程

(3)扩展GM模型

全数据GM(1,1):取所有的数据建立模型

部分数据GM(1,1):取部分数据。

新信息GM(1,1) 把预测后的数据带回到数据中继续预测。

新陈代谢:加入新的,去掉老信息。

(4)适用场景

(1)数据是以年份度量的非负数据,月份或者季度数据用时间序列模型

(2)数据能经过准指数规律的检验(除了前两期外,后面至少90%的期数的光滑比要低于0.5)

(3)数据的期数较短且和其他数据之间的关联性不强(小于等于10,也不能太短了,比如只有3期数据),要是数据期数较长,一般用传统的时间序列模型比较合适。

(5)解题思路

(1)看到数据后先画时间序列图并简单的分析下趋势

(2)将数据分为训练组和试验组,尝试使用不同的模型对训练组进行建模,并利用试验组的数据判断哪种模型的预测效果最好(比如我们可以使用SSE这个指标来挑选模型,常见的

模型有指数平滑、ARIMA、灰色预测、神经网络等)。

(3)选择上一步骤中得到的预测误差最小的那个模型,并利用全部数据来重新建模,并对未来的数据进行预测。

(4)画出预测后的数据和原来数据的时序图,看看预测的未来趋势是否合理。

对于传统模型,就先用回归计算系数

最后就是计算绝对残差和相对残差,还有级比偏差检验

而对于新信息的GM(1,1)模型,在此基础上每次预测一个值,更新矩阵。

而对于新陈代谢模型,在此基础上每预测一次,去除开头的,在末尾加上预测的值。

即使我们的数据可以通过检验,但是在最后结果的显示,也是会有偏差,所以还需要通过图片来解决。

set(gca,'xtick',[year(1): 1 :year(end)+predict_num])

总结最后的步骤就是先看第一个准指数检验符不符合

然后找最适合的模型,通过训练组和测试组,最后就是利用最佳模型来进行预测。

一点小扩展。BP神经网络,万能的预测工具。

需要数据量大,预测效果比较好,训练模型时间长。

有三种训练方法

局部最小

贝叶斯正则化,最好且时间最长。

共轭梯度法

灰色分析

在众多的因素中知道哪些是主要因素,那些是次要因素。

灰色关联分析的基本思想是根据序列曲线的几何形状的相似程度来判断其联系是否紧密,曲线越来越接近,相关序列之间的关联度就越大,反之就越小。

应用一–看那种因素影响程度高

(1)画统计图

(2)确定分析数列,目序列和子序列

(3)对变量进行预处理,两个目的,去量纲和缩小变量范围简化计算,线求出均值,再用该指标,再用该指标中的每个元素都除以

其均值。

(4)计算子序列中各个指标与母序列的关联系数。

(5)定义灰色关联度,可以求平均值。

(6)通过比较三个序列和母序列的关联度可以得到结论。

那么和标准化回归的区别在那呢

样本个数n比较大的很好一般适用标准化回归。

当样本个数n比较小的时候,用灰色关联分析。

如果母序列有多个指标,可以分别分析。

应用二 灰色分析用在综合评价类问题

有点类似topsis的操作

1.指标正向化

2.正向化后矩阵进行预处理

3.把预处理后的矩阵的每一行取出最大值构成母序列

4.计算各个指标和母序列的灰色关联度

5.计算各个指标的权重

6.得到对应评分

7.对得分进行归一化。

其他的知识点

元胞数组–存放字符串

{'传统模型','新信息模型','新陈代谢模型'}

对于多变量函数输出,如果只给1个变量,就会只输出一个。

cumsum() %计算累加值

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。