数学建模灰色预测模型 -- 学习笔记

文章目录

  • 前言
  • 灰色预测
    • 灰色关联度比较
      • 灰色关联度案例
    • 灰色预测模型
      • 累加
      • 累减
      • 加权邻值生成
      • 灰色模型GM(1,1)
        • 模型推导
    • 灰色预测示例
      • 题目
      • 解题
        • 级比检测
        • 累加处理
        • 带入模型算a b
        • 误差运算
  • 代码
    • 关联代码
    • 预测代码
  • 总结

前言

本片博文只是一篇笔记博文,略有不当之处请务必多多指正!望各位大佬不吝赐教!

灰色预测

何为灰色预测,这个历史就不多说了。我们更加关心的是这个玩意他能够干什么,适合那些方面的预测,以及相关的原理是什么?对应的灰色预测能够解决那些问题?
那么先说句不是人话:
·灰色预测是对既含有已知信息又含有不确定信息的系统进行预则,就是对在一定范围内变化的、与时间有关的灰色过程进行预测。

灰色关联度比较

这个其实有点类似与我们的层次分析法,他们都能够对某一个事件进行评比,比较,但是区别在于利用层次分析法我们需要制定相关的权重,需要进行一致性检验,换句话来说在这方面,如果我们使用层次分析法的话,那么会带有一定的主观性,而缺乏对应的客观性,虽然我们可以是我们是通过了一致性检验的,但是总体上似乎缺少一点信服力。
那么在灰色比较的话,那么则更像是我们提供了一个完美的样本,我们现在手头上的样本和它的相似度有多少?越接近那么就意味着当前样本越是接近完美,那么我们就可以通过这个来实现样本之间的比较。例如我们通过这个来评比最优员工,最佳老师等等,如果我们使用层次分析的话,那么我们就要考虑每一项技能之间的权重,那么必然会导致意见不统一,甚至在建模过程中直接发现一致性检验不通过。
那么如此我们先来看看具体的例子看看如何使用。现在我们需要评价一组老师的绩效。

灰色关联度案例

数学建模灰色预测模型 -- 学习笔记_第1张图片
现在我们需要评价哪个老师最好。
1.那么首先第一步是找到一组参考向量,也就是相当于模范样本。我们假设为{9 9 9 9 9 9 9},因为这里最高就是9,写10 的话大家都不满足。我们记住这一组向量为X0={9 9 9 9 9 9 9}
2.我们把每一组与标准组相减去,取绝对值。
数学建模灰色预测模型 -- 学习笔记_第2张图片
3.我们找到最小的与最大的。
数学建模灰色预测模型 -- 学习笔记_第3张图片
4.我们通过公式进行计算,这个公式求取相关性,怎么来的不要紧,我们暂时不关心,我们只关心怎么用
在这里插入图片描述
其中那个 P 是 0到1之间的数
当我们计算第一组的时候就可以这样算。
数学建模灰色预测模型 -- 学习笔记_第4张图片
然后我们得到了这样一组数列。
数学建模灰色预测模型 -- 学习笔记_第5张图片
之后我们可以对每个老师的评分求取平均值
在这里插入图片描述
那么这个时候我们就求到了每个人的关联序,那么我们就可以进行比较了。此方法相对于层次分析法来看显然更加清晰简便。

灰色预测模型

首先灰色预测更加适合小样本的预测,也就是当给的数据不是很多的时候,此外灰色预测其实是顺着时间线进行正向的预测,例如通过往年降雨量,预测明年降雨量最典型的例子就是。还有以前的题目预测什么非典的。
那么灰色预测的主要核心其实是对数据进行处理,把看起来没有规律的数据通过 累加 累减 加权累加的过程处理后再通过积分得到预测数据,通常预测几个,再复杂可能就要用到拟合了。

累加

其实就是把前N个数据加起来得到新的数列。
例如 1 2 3 4 5
处理后: 1 3 6 10 15
我们把初始数列记作:
在这里插入图片描述

处理后为:
数学建模灰色预测模型 -- 学习笔记_第6张图片
累加 r 次我们记作
在这里插入图片描述
那么在图像上经过处理后是这样的
数学建模灰色预测模型 -- 学习笔记_第7张图片
数学建模灰色预测模型 -- 学习笔记_第8张图片

累减

那就更加简单了,那就是后一项减去前一项。
例如 1 2 3 4 5
处理后: 0 1 1 1 1
下面是个示例:
数学建模灰色预测模型 -- 学习笔记_第9张图片

加权邻值生成

那个就是把两相邻的数据按照比例加起来。
原始数列:
在这里插入图片描述
处理后,那个 阿尔法 取值0 到 1
在这里插入图片描述

灰色模型GM(1,1)

这个就是我们用来把前面的东西穿起来做预测的玩意。

模型推导

这个还是基于前面的例子来的,我们假设原始数列是:
在这里插入图片描述
一次累加后是
数学建模灰色预测模型 -- 学习笔记_第10张图片
我们此时通过累减就会得到原来的数列中的某个值也就是:
在这里插入图片描述
其中d(k)我们叫它灰导数,因为这个是不连续的,那么接下来我们的所有工作其实都是让它可导。
之后邻值加权
在这里插入图片描述
最后我们引入模型GM(1,1)
在这里插入图片描述
或者
在这里插入图片描述

这个算式我们可以发现这个其实类似于最小二乘,当然我们也可以通过矩阵进行运算。
数学建模灰色预测模型 -- 学习笔记_第11张图片
引入线性代数
数学建模灰色预测模型 -- 学习笔记_第12张图片
我们可以算得到 a b
然后我们带入方程
数学建模灰色预测模型 -- 学习笔记_第13张图片
然后求导运算
数学建模灰色预测模型 -- 学习笔记_第14张图片
最后我们可以得到这个玩意
在这里插入图片描述
这个是我们构建的解值,我们最后还要换算回去原始数列。
在这里插入图片描述
到此我们的数据就已经完成预测了。但是我们此时还是需要进行检验的,如果检验不通过我们是无法信任这样的值的。
计算相对差
数学建模灰色预测模型 -- 学习笔记_第15张图片
绝对值小于 0.1 或者 0.2 越小越好
级比差检验
在这里插入图片描述
也是0.1 或者0.2
这个绿色部分是级比
在这里插入图片描述
后一项比前一项的比值,这个级比也是有条件的。
必须在在这里插入图片描述之间否则不能灰色预测。如果可以预测那么后面的级比差检验 计算相对差两者满足一个即可。

灰色预测示例

题目

噪音预测,数据如下:

年份 噪音评分
1986 71.4
1987 72.4
1988 72.4
1989 72.1
1990 71.4
1991 72.0
1992 71.6

解题

级比检测

我们先构造原始数列
数学建模灰色预测模型 -- 学习笔记_第16张图片

在这里插入图片描述
检验通过

累加处理

在这里插入图片描述
算得到
在这里插入图片描述

带入模型算a b

在这里插入图片描述
在这里插入图片描述
得到
数学建模灰色预测模型 -- 学习笔记_第17张图片
得到
在这里插入图片描述
回到
在这里插入图片描述
算的预测值
在这里插入图片描述

误差运算

按照前面的式子
数学建模灰色预测模型 -- 学习笔记_第18张图片
在这里插入图片描述
得到
数学建模灰色预测模型 -- 学习笔记_第19张图片
满足其中一个可以使用

代码

前面BB了这么多最重要的还是代码,手算是不可能的这辈子都不可能的。

关联代码


x1=[
    
    8 9 8 7 5 2 9;
    7 8 7 5 7 3 8;
    9 7 9 6 6 4 7;
    6 8 8 8 4 3 6;
    8 6 6 9 8 3 8;
    8 9 5 7 6 4 8;
]   %需要比较的数列
x=x1;
[r,c]=size(x1);

biaozhun = [9 9 9 9 9 9 9] %标准序列
for i=1:r
    for j=1:c
  x(i,j)=abs(biaozhun(j)-x(i,j))
 end
end
max=x(1,1)
min=x(1,1)
for i=1:r
    for j=1:c
 if x(i,j)>=max
     max=x(i,j)
 end
  end
end
for i=1:r
    for j=1:c
 if x(i,j)<=min
     min=x(i,j)
  end
  end
end
k=0.5 %分辨系数取值
l=(min+k*max)./(x+k*max)%求关联系数矩阵
guanliandu=sum(l')/c
[rs,rind]=sort(guanliandu,'descend') %对关联度进行排序

数学建模灰色预测模型 -- 学习笔记_第20张图片
对比一下上面的表,数据对的上。要用的时候改一改就好了。

预测代码

y=input('请输入数据');
n=length(y);

jibi1=exp(1)^(-2/(n+1));
jibi2=exp(1)^(2/(n+1));
for i=2:n
    jibi = y(n)/y(n-1);
    if jibi>jibi1 && jibi

这里主要输入[]
在这里插入图片描述
(我这中文编码有问题)
数学建模灰色预测模型 -- 学习笔记_第21张图片

总结

通过对这个的了解,那么我们可以知道灰色预测可以进行关联性比较,也就是说可以在某种程度上解决层次分析法的工作。在数据预测方面适合小范围的预测,例如空气水质质量预测,全国人口预测,新型冠状病毒感染预测。当然前提是数据准确忽略其他因素干扰。

你可能感兴趣的:(笔记,算法,数据建模,matlab)