数学建模|预测方法:灰色预测模型

这篇具有很好参考价值的文章主要介绍了数学建模|预测方法:灰色预测模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

灰色系统理论是由华中理工大学邓聚龙教授于1982年提出并加以发展的。二十几年来,引起了不少国内外学者的关注,得到了长足的发展。目前,在我国已经成为社会、经济、科学技术在等诸多领域进行预测、决策、评估、规划控制、系统分析与建模的重要方法之一。特别是它对时间序列短、统计数据少、信息不完全系统的分析与建模,具有独特的功效,因此得到了广泛的应用.

适用范围

该模型使用的不是原始数据的序列,而是生成的数据序列。核心体系是Grey Model,即对原始数据作累加生成(或其他处理生成)得到近似的指数规律再进行建模的方法。

优点

在处理较少的特征值数据,不需要数据的样本空间足够大,就能解决历史数据少、序列的完整性以及可靠性低的问题,能将无规律的原始数据进行生成得到规律较强的生成序列。

缺点

只适用于中短期的预测,只适合近似于指数增长的预测。

灰色系统

灰色系统是黑箱概念的一种推广。
我们把既含有已知信息又含有未知信息的系统称为灰色系统,作为两个极端,我们将称信息完全未确定的系统为黑色系统;称信息完全确定的系统为白色系统。区别白色系统与黑色系统的重标志是系统各因素之间是否具有确定的关系。

特点
    1. 用灰色数学处理不确定量,使之量化.
    1. 充分利用已知信息寻求系统的运动规律.
    1. 灰色系统理论能处理贫信息系统.

灰色生成

将原始数据列中的数据,按某种要求作数据处理称为生成。客观世界尽管复杂,表述其行为的数据可能是杂乱无章的,然而它必然是有序的,都存在着某种内在规律,不过这些规律被纷繁复杂的现象所掩盖,人们很难直接从原始数据中找到某种内在的规律。对原始数据的生成就是企图从杂乱无章的现象中去发现内在规律。

常用灰色系统生成方式
    1. 累加生成
    1. 累减生成
    1. 均值生成
    1. 级比生成
  • ……

累加生成

累加生成,**即通过数列间各时刻数据的依个累加以得到新的数据与数列。**累加前的数列称原始数列,累加后的数列称为生成数列。累加生成是使灰色过程由灰变白的一种方法,它在灰色系统理论中占有极其重要地位,通过累加生成可以看出灰量积累过程的发展态势,使离乱的原始数据中蕴含的积分特性或规律加以显化。累加生成是对原始数据列中各时刻的数据依次累加,从而生成新的序列的一种手。

数学建模|预测方法:灰色预测模型

数学建模|预测方法:灰色预测模型

GM(1,1)预测模型

推导

数学建模|预测方法:灰色预测模型

数学建模|预测方法:灰色预测模型

数学建模|预测方法:灰色预测模型

数学建模|预测方法:灰色预测模型

数学建模|预测方法:灰色预测模型

数学建模|预测方法:灰色预测模型

精度检验

模型选定之后,一定要经过检验才能判定其是否合理,只有通过检验的模型才能用来作预测。
灰色模型的精度检验一般有三种方法:

  • 相对误差大小检验法
  • 关联度检验法
  • 后验差检验法

下面主要介绍后验差检验法

数学建模|预测方法:灰色预测模型

数学建模|预测方法:灰色预测模型

数学建模|预测方法:灰色预测模型

精度检验等级参照表

数学建模|预测方法:灰色预测模型

算法总结

主要步骤
    1. 累加生成
    1. 建立GM(1,1)模型
    1. 检验预测值

Matlab代码

function []=greymodel(y)
% 本程序主要用来计算根据灰色理论建立的模型的预测值。
% 应用的数学模型是 GM(1,1)。
% 原始数据的处理方法是一次累加法。
y=input('请输入数据 ');
n=length(y);
yy=ones(n,1);
yy(1)=y(1);
for i=2:n
    yy(i)=yy(i-1)+y(i);
end
B=ones(n-1,2);
for i=1:(n-1)
    B(i,1)=-(yy(i)+yy(i+1))/2;
    B(i,2)=1;
end
BT=B';
for j=1:n-1
    YN(j)=y(j+1);
end
YN=YN';
A=inv(BT*B)*BT*YN;
a=A(1);
u=A(2);
t=u/a;
i=1:n+2;
yys(i+1)=(y(1)-t).*exp(-a.*i)+t;
yys(1)=y(1);
for j=n+2:-1:2
    ys(j)=yys(j)-yys(j-1);
end
x=1:n;
xs=2:n+2;
yn=ys(2:n+2);
plot(x,y,'^r',xs,yn,'*-b');
det=0;

sum1=0;
sumpe=0;
for i=1:n
    sumpe=sumpe+y(i);
end
pe=sumpe/n;
for i=1:n;
    sum1=sum1+(y(i)-pe).^2;
end
s1=sqrt(sum1/n);
sumce=0;
for i=2:n
    sumce=sumce+(y(i)-yn(i));
end
ce=sumce/(n-1);
sum2=0;
for i=2:n;
    sum2=sum2+(y(i)-yn(i)-ce).^2;
end
s2=sqrt(sum2/(n-1));
c=(s2)/(s1);
disp(['后验差比值为:',num2str(c)]);
if c<0.35
    disp('系统预测精度好')
else if c<0.5
        disp('系统预测精度合格')
    else if c<0.65
            disp('系统预测精度勉强')
        else
            disp('系统预测精度不合格')
        end
    end
end
            
disp(['下个拟合值为 ',num2str(ys(n+1))]);
disp(['再下个拟合值为',num2str(ys(n+2))]);

实际案例

[724.57, 746.62, 778.27, 800.8, 827.75,871.1, 912.37, 954.28, 995.01, 1037.2]

[2.874,3.278,3.337,3.390,3.679]

例子

数学建模之灰色预测实例含代码(城市交通噪声的例子)

GM(2,1)、DGM(2,1)模型、Verhulst模型

GM(1,1)模型适用于较强指数规律的序列,只能描述单调的变化过程,对于非单调的摆动发展序列或者有饱和的S形序列,可以考虑建立GM(2,1)、DGM、Verhulst模型。

GM(2,1)模型

数学建模|预测方法:灰色预测模型

弱化算子

对于初期增长势头过于猛烈的模型,为了提高精度,可以考虑使用弱化算子处理原始数列。

数学建模|预测方法:灰色预测模型

对应的,依旧是最小二乘估计参数,再对微分方程求解,得到

数学建模|预测方法:灰色预测模型

数学建模|预测方法:灰色预测模型

数学建模|预测方法:灰色预测模型

DGM模型建立

数学建模|预测方法:灰色预测模型

数学建模|预测方法:灰色预测模型

数学建模|预测方法:灰色预测模型

Verhulst预测模型

Verhulst模型的定义如下

数学建模|预测方法:灰色预测模型

对于模型参数,使用最小二乘估计有以下结果

数学建模|预测方法:灰色预测模型

最终,可以求得灰色Verhulst的解为

数学建模|预测方法:灰色预测模型

数学建模|预测方法:灰色预测模型

Verhulst模型应用:道路交通事故预测

数学建模|预测方法:灰色预测模型

对于交通事故死亡人数统计数据,我们首先做出大体曲线变化图,以从整体上着手

数学建模|预测方法:灰色预测模型

可见曲线呈现S型,考虑使用verhulst建模。建模过程如下

数学建模|预测方法:灰色预测模型

数学建模|预测方法:灰色预测模型

最后我们还要进行一步模型精度检验。灰色模型有一套具体的检验标准,后注。

检验三个指标:**相对误差、绝对关联度、均方差比值。**利用MATLAB检验结果如下:

数学建模|预测方法:灰色预测模型

可见:

平均相对误差为 3.74% ,则模型精度为二级;同时算得绝对关联度 g 为 0.9845,
均方差比值 C 为 0.2355,则模型精度为一级,可见模型精度较高,可用于事故预测。

Matlab程序
clc,clear
x1=[4.93 5.33 5.87 6.35 6.63 7.15 7.37...
7.39 7.81 8.35 9.39 10.59 10.94 10.44];
n = length(x1);
nian=1990:2003;
plot(nian,x1,'o-');
x0=diff(x1); %作累减生成
x0=[x1(1),x0]
z1=0.5*(x1(2:n)+x1(1:n-1)) %求紧邻均值生成序列
B=[-z1',z1'.^2]
Y=x0(2:end)'
ab_hat=B\Y %估计参数 a,b 的值
x=dsolve('Dx+a*x=b*x^2','x(0)=x0'); %求解常微分方程
x=subs(x,{'a','b','x0'},{ab_hat(1),ab_hat(2),x1(1)}); %代入参数值
yuce=subs(x,'t',0:14) %计算预测值
%下面显示微分方程的解,为了提高计算精度,把该语句放在计算预测值之后
x=vpa(x,6)
x1_all=[x1,9.92,10.71]; %加上 2004 年的两个观测值
yuce(16)=yuce(15); %2004 年有两个观测值,要对应两个相同的预测值
epsilon=x1_all-yuce %计算残差
delta=abs(epsilon./x1_all) %计算相对误差
delta_mean=mean(delta) %计算平均相对误差
x1_all_0=x1_all-x1_all(1); %观测值数据列的始点零化像
yuce_0=yuce-yuce(1); %预测值数据列的始点零化像
s0=abs(sum(x1_all_0(2:end-1))+0.5*x1_all_0(end));
s1=abs(sum(yuce_0(2:end-1))+0.5*yuce_0(end));
tt=yuce_0-x1_all_0;
s1_s0=abs(sum(tt(2:end-1))+0.5*tt(end));
absdegree=(1+s0+s1)/(1+s0+s1+s1_s0) %计算灰色绝对关联度
c=std(epsilon,1)/std(x1_all,1) %计算标准差比值

参考博客

【数学建模】灰色预测模型(预测)

【数学建模】灰色系统理论II-Verhulst建模-GM(1,N)-GM(2,1)建模文章来源地址https://www.toymoban.com/news/detail-445622.html

到了这里,关于数学建模|预测方法:灰色预测模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数学建模常用模型(一):灰色预测法

    灰色预测法是一种用于处理少量数据、数据质量较差或者缺乏历史数据的预测方法。它适用于一些非线性、非平稳的系统,尤其在短期预测和趋势分析方面有着广泛的应用。灰色预测法作为一种强大的数学建模工具,通过利用有限的信息,能够在不完备的条件下进行准确的预

    2024年02月09日
    浏览(51)
  • 数学建模之灰色预测方法

    关联系数 计算关联系数公式 步骤 第一步 第二步 求参考数列和待比较数列矩阵数值做差之后的最小值和最大值 第三步利用公式计算关联度系数,其中将最大值最小值耦合到关联系数中,可以保证关联系数位于[0,1]之间,同时上下对称的结构可以消除量纲不同和数值量级悬殊

    2024年02月13日
    浏览(40)
  • 数学建模之灰色预测模型代码(matlab版)

    灰色关联分析步骤 【1】确定比较对象(评价对象)(就是数据,并且需要进行规范化处理,就是标准化处理,见下面例题的表格数据)和参考数列(评价标准,一般该列数列都是1,就是最优的的情况) 【2】确定各个指标权重,可用层次分析确定 【3】计算灰色关联系数 【4】

    2024年02月09日
    浏览(46)
  • 【数学建模-灰色关联分析与灰色预测】

    目录 一.灰色关联度简介 二.灰色关联度 ​灰色关联分析案例 三.灰色预测模型简介 四.灰色预测之灰色生成数列 累加生成 累减生成 加权邻值生成 五.灰色模型GM(1,1) GM(1,1)灰色预测的步骤 1.数据的检验与处理 2.建立GM(1,1)模型 3. 检验预测值  六.灰色预测案例 灰色

    2024年02月20日
    浏览(45)
  • 数学建模之灰色预测

    灰色预测(Grey Forecasting)是一种用于时间序列数据分析和预测的方法,通常用于处理具有 较少历史数据 的情况或者数据不够充分的情况。它是一种非常简单但有效的方法,基于灰色系统理论,用来估计未来的趋势。 以下是灰色预测的基本思想和步骤: 建立灰色模型 :首先

    2024年02月11日
    浏览(40)
  • 数学建模-灰色预测

    灰色预测 1.1白色系统VS黑色系统         白色系统:系统内部的特征是完全已知的         黑色系统相反 1.2灰色系统         部分已知,部分未知 1.3 灰色预测         定义:对含有不确定因素的系统进行预测的方法。         灰色时间序列预测:用观察到的

    2024年02月12日
    浏览(49)
  • 【数学建模】灰色预测法

    灰色预测对原始数据进行生成处理来寻找系统变动的规律,并生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势的状况。 灰色预测是一种对含有 不确定因素 的系统进行预测的方法。 灰色预测通过鉴别系统因素之间发展趋势的相异程度

    2023年04月15日
    浏览(52)
  • 数学建模 | 灰色预测原理及python实现

    目录 一、灰色预测的原理 二、灰色预测的应用及python实现 灰色预测是以灰色模型为基础,灰色模型GM(n,h)是微分方程模型,可用于描述对象做 长期、连续、动态 的反应。其中,n代表微分方程式的阶数,h代表微分方程式的变化数目。在诸多的灰色模型中,以灰色系统中 单序

    2024年01月16日
    浏览(48)
  • 数学建模—评价模型—灰色关联度分析Vs灰色综合评价

            黑色系统:只明确系统和环境的关系,内部未知         白色系统:内部结构、元素、组成、实现机理已知         灰色系统:部分明确系统与环境见关系、系统结构、实现过程。 灰色系统实例:(1)社会经济系统(企业收入、相关因素) 灰色系统理论

    2024年02月04日
    浏览(52)
  • 数学建模:评价性模型学习——灰色关联分析法(GRA模型)

    目录 前言 一、灰色关联分析 1.什么是灰色关联分析? 2.流程介绍 二、综合评价 1.数据无量纲化处理 2.确定参考序列 3.确定权重 4.计算灰色关联系数  5.计算灰色加权关联度 6.代码 总结          继续学习数学建模涉及的评价性模型,这篇会介绍如何使用灰色关联分析法进

    2024年02月04日
    浏览(180)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包