Matlab预测模型-灰色预测模型

news2025/1/15 13:08:41

预测模型-灰色预测模型

在这里插入图片描述

  1. 灰色预测是对既含有已知信息又含有不确定信息的系统进行预测,就是对在一定范围内变化的、与时间有关的灰色过程进行预测。
  2. 灰色预测对原始数据进行生成处理来寻找系统变动的规律,并生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展超势的状况。

灰色预测模型

  1. 灰色预测模型(Gray Forecast Model)是通过少量的、不完全的的信息,建立数学模型并做出预测的一种预测方法.当我们应用运筹学的思想方法解决实际问题,制定发展战略和政策、进行重大问题的决策时,都必须对未来进行科学的预测.预测是根据客观事物的过去和现在的发展规律,借助于科学的方法对其未来的发展趋势和状况进行描述和分析,并形成科学的假设和判断。

  2. 灰色系统理论是研究解决灰色系统分析、建模、预测、决策和控制的理论.灰色预测是对灰色系统所做的预测。
    目前常用的一些预测方法(如回归分析等),需要较大的样本,若样本较小,常造成较大误差,使预测目标失效。灰色预测模型所需建模信息少,运算方便,建模精度高,在各种预测领域都有着广泛的应用,是处理小样本预测问题的有效工具。

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

灰色系统

  1. 白色系统
    系统的信息是完全明确的。
  2. 灰色系统
    系统的部分信息已知吗,部分信息未知。
  3. 黑色系统
    系统的内部信息是未知的。
  4. 灰色系统特点:
    (1)用灰色数学处理不确定量,使之量化.
     (2)充分利用已知信息寻求系统的运动规律.
     (3)灰色系统理论能处理贫信息系统.

GM(1,1)模型概述

在这里插入图片描述

在这里插入图片描述

建模过程

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

模型检验

在这里插入图片描述
在这里插入图片描述

模型结果分析

在这里插入图片描述

灰色预测模型的使用要点

在这里插入图片描述
在这里插入图片描述

案例

在这里插入图片描述

GM(1,1) code

function gm11 = GM11_model(X,td)

%GM11_model用于灰色模型c(1,1)的建立和预测
%输入参数x为原始数据,td为未来预测期数
%输出参数gm11为一个结构体,包括。
%Coeff_a为发展系数,Coeff_u为灰作用量,
%Predict_Value为预测值,包括当前值和未来td期预测值
%AbsoluteBrror为绝对误差,RelativeErrorMean为相对误差均值
%C为方差比,P误差为小概率,R为关联度

%% 输入参数的控制与默认值

 if nargin < 2
    warning('输入参数为2个,td将默认使用默认值5')
    td = 5;
 elseif td < 0
    warning('未来预测期数td不能为负值,td将默认使用默认值0')
    td = 0;
 end
  
 %%数据预处理:累加,平均
 n  = length(X);    %%获取原始数据个数
 Ago = cumsum(X);    %% 原始数据一次累加 获取新1-AGO序列xi(1)
 % Z(i) 为xi(1)的紧邻均值生成序列
 % Z = (Ago(1:n-1)+Ago(2:end))/2;
 Z = (Ago(1:end-1) + Ago(2:end) ) / 2;  % 计算紧邻均值生成数列(长度为n-1)

 %%构造B和Ynz矩阵
 Yn = X(2:end)'; %Yn是常数项向量 X(2),x(3)
 B= [-Z;ones(1,n-1)]'; %% 累加生成数据作均值

 %% 最小二乘法求解发展系数a和灰色作用量u

 LS_solution = (B'*B)\(B'*Yn); %% 利用公式求解a,u
 a = LS_solution(1);   %%发展系数a
 u = LS_solution(2);  %%灰色作用量u


 %%建立灰度GM(1,1)模型,白化一元一阶微分方程
 F = [X(1),(X(1)-u/a)./exp(a*(1:n+td-1))+u/a];

 %% 还原序列,得到预测数据
 PreData = [F(1),F(2:end)-F(1:end-1)];


 %% 数据可视化
 t = 1:n;
 plot(t,X,'ko-','MarkerFaceColor','k')  %%原数据图像
 hold on;
 grid on

 %%预测当前数据图像
 plot(t,PreData(1:n),'b*-','LineWidth',1.5)  

 %% 未来td期数据图像
 plot(n:n+td,PreData(n:n+td),'r*-','LineWidth',1.5)
 title('GM(1,1) model --- Original VS Current And Future Predict');
 legend('OriginalData','ForecastData','ForecastFutureData','Location','best')
 legend('boxoff')
 set(get(gca, 'XLabel'), 'String', 'Time');
 set(get(gca, 'YLabel'), 'String', 'Value');



 %% 模型校验

 Err = abs(X-PreData(1:n));  %真实值与预测值误差
 q = mean(Err./X);%真实值与预测值误差
 XVar = std(X,1);%原数据的标准方差,前置因子1/n
 ErrVar = std(Err(2:end):1);%残差(2:end)的标准方差,前置因子1/n
 C = ErrVar/XVar;  %后验方差比
 %小误差率
 P = sum(abs(Err-mean(Err))<0.6745*XVar)/n;  
 R_k = (min(Err)+0.5*max(Err))./(Err+0.5*max(Err)); %rho=0.5
 R = sum(R_k)/length(R_k); %关联度

%%计算变量组合,生成输出结构体变量
 gm11.Coeff_a = a;
 gm11.Coeff_u = u;
 gm11.Predict_Value = PreData;
 gm11.AbsoluteError = Err;
 gm11.RelativeErrorMean = q;
 gm11.R = R;
 gm11.C = C;
 gm11.P = P;
 
    
end
X = [174,179,183,189,207,234,220.5,256,270,285,300,320,344,365];
gm11 = GM11_model(X,5)
%%未来预测值
prd  = gm11.Predict_Value(end-5+1:end)


%{
gm11 = 

  包含以下字段的 struct:

              Coeff_a: -0.0621
              Coeff_u: 156.7876
        Predict_Value: [1×19 double]
        AbsoluteError: [0 6.1049 0.9646 6.7429 1.2753 12.3899 15.2986 5.1045 3.0410 0.9490 2.2373 1.5880 1.8225 0.9147]
    RelativeErrorMean: 0.0185
                    R: 0.7182
                    C: NaN
                    P: 1


        根据模型评价标准
        p=1,C=0.0724,预测等级为:好;
        相对误差均值0.085,合格
        关联度0.7182,勉强合格
        由于-a系数小于0.3,适合中长期预测。
        从运行结果看,对于线性的数据使用GM(11)预测,其拟合效果还是不错。


%%未来预测值        
prd =
  387.3958  412.1987  438.5896  466.6702  496.5486
%}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/679134.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux学习[19]管线命令详解1---cut, grep, sort, wc, uniq

文章目录 1. 何为管线2. 摘取命令&#xff1a;cut, grep2.1 cut2.2 grep 3. 排序命令sort,wc,uniq3.1 sort3.2 uniq3.3 wc 总结 1. 何为管线 管线命令和Linux学习18里面的连续执行指令少许不同。他是只有在前面指令执行正确的时候&#xff0c;才会执行管线命令。 即这个管线命…

基于Vue+Node.js的宠物领养网站的设计与开发-计算机毕设 附源码 83352

基于VueNode.js的宠物领养网站的设计与开发 摘 要 随着互联网大趋势的到来&#xff0c;社会的方方面面&#xff0c;各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去&#xff0c;而其中最好的方式就是建立网络管理系统&#xff0c;并对其进行信息管理。由…

彻底卸载mysql的详细步骤

目录 一、前言 二、操作步骤 &#xff08;一&#xff09; 停止mysql的服务 &#xff08;二&#xff09;控制面板卸载 &#xff08;三&#xff09;清除残留的文件 &#xff08;四&#xff09;删除注册表内容 &#xff08;五&#xff09;删除MySQL环境变量 一、前言 卸载…

spider-flow新手暴力入门

1.入口 链接跳转: spider-flow 或者本地有git软件直接输入gittt中的链接地址&#xff0c;回车键梭哈即可 2.环境部署&#xff0c;必备jdk8mysql idea打开项目&#xff0c;重点修改如下 mysql用小皮软件&#xff08;phpstudy&#xff09;自带的mysql5,navicat软件导入sql文…

SEO一般多久时间才会有效果?

&#x1f482; 个人网站:【海拥】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 前言什么是SEOSEO的时间…

Sui x KuCoin Labs夏季黑客松第二批入围项目公布

Sui x KuCoin Labs夏季黑客松仍在如火如荼地进行中。自第一批入围项目名单公布后一周&#xff0c;第二批入围项目现已经过审核&#xff0c;入围最终Demo Day。 第二批入围名单 Vimverse Vimverse是一个基于Sui构建的创新生态金融平台&#xff0c;旨在释放去中心化储备货币协…

计算物理专题:主值积分

计算物理专题&#xff1a;主值积分 吴式枢理论 主值积分 设在以及上可积&#xff0c;其中为任意小的正数&#xff0c;当两者独立地趋于零&#xff0c;极限存在。如果&#xff0c;这个极限存在&#xff0c;则称它为瑕积分的主值&#xff0c;记作无界函数的改造则该瑕积分的主值…

使用鲁棒优化的定价策略进行微电网不平衡管理研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

童安格杀猪和金钥匙-UMLChina建模知识竞赛第4赛季第7轮

DDD领域驱动设计批评文集 欢迎加入“软件方法建模师”群 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 本轮每题分数较少&#xff0c;需最先答对所有4题&#xff0c;才能获得本轮优胜。 所有题目的回答必须放…

Python 进阶(一):Python连接MySQL数据库和CRUD操作

MySQL数据库的连接和CRUD操作 前言Python连接MySQL的五种方式1. 安装mysql-connector-python2. 连接数据库3. 查询数据4. 插入数据5. 更新数据6. 删除数据 前言 本文基于MySQL8.x版本的学习&#xff0c;python版本基于当前最新的3.x&#xff0c;windows操作系统下mysql的安装流…

对骨架进行去毛刺处理

文章目录 0. 效果1. 基本内容2. 参考 0. 效果 红色&#xff1a;端点 绿色&#xff1a;节点 蓝色线条&#xff1a;毛刺&#xff08;根据长度定义&#xff09; 1. 基本内容 本文中的端点和节点的获取是依据论文《一种有效的骨架毛刺去除算法》中的内容提取的。 端点&#…

Chromium多进程架构,你知道多少?

一、前言 国内外主流的浏览器&#xff0c;大多采用的是谷歌的Chromium 浏览器内核&#xff0c;Chromium是一个多进程多线程架构的Web引擎&#xff0c;很多应用和底层开发者希望了解Chromium中的进程和线程的种类和用途&#xff0c;以便能利用相关信息提升应用的性能。为此&…

C++【一棵红黑树封装 set 和 map】

✨个人主页&#xff1a; 北 海 &#x1f389;所属专栏&#xff1a; C修行之路 &#x1f383;操作环境&#xff1a; Visual Studio 2019 版本 16.11.17 文章目录 &#x1f307;前言&#x1f3d9;️正文1、红黑树的完善1.1、修改默认成员函数1.1.1、默认构造1.1.2、析构 ---> …

nodejs 跳蚤市场网站-计算机毕设 附源码83381

nodejs 跳蚤市场网站 目 录 摘要 1 绪论 1.1选题背景与意义 1.2国内外发展情况 1.3node.js主要功能 1.4node.js功能模块 1.5论文结构与章节安排 2跳蚤市场网站系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据修改流程 2.3.3数据删除流程 …

django公交线路查询系统-计算机毕设 附源码85021

django公交线路查询系统 摘 要 本论文主要论述了如何使用django框架开发一个公交线路查询系统&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述该系统的当前背景以及系统开发的目的&…

售后商品破损回复话术

想必客服们最关注且最头疼的问题便是售后问题了吧&#xff0c;特别是一些商品破损类的问题&#xff0c;是客服们最不想面对的问题之一了&#xff0c;为此小编整理了一份商品破损回复话术提供给大家&#xff0c;希望能对大家有所帮助哦~ 一、询问与核实 1.对不起&#xff0c;由…

Linux系统编程:进程的状态和进程优先级

目录 一. Linux操作系统进程的状态 二. 进程状态的标识 2.1 运行状态R 2.2 睡眠状态S 2.3 前台进程和后台进程 2.4 磁盘睡眠状态D 2.5 暂停状态和调试状态T 2.6 僵尸状态Z 2.7 终止状态X 2.8 孤儿进程 三. 进程优先级 3.1 什么是优先级 3.2 进程优先级的修改和进…

一文带你了解Java的I O机制

Java I/O 一&#xff1a;故事背景二&#xff1a;什么是Java的I\O机制2.1 流2.1.2 字节流和字符流的区别2.1.3 输入流和输出流的区别 2.2 文件 I/O2.3 缓冲 I/O2.4 标准 输入/输出2.5 对象序列化与反序列化2.6 N I/O 三&#xff1a;画图表示Java I/O机制3.1 输入输入系统流程示意…

vue中响应式的数组方法

vue响应式的数组方法 1、push 在数组中追加元素 <div id"app"><ul><li v-for"item in arr">{{item}}</li></ul><button click "change">按钮</button> </div> <script src"js/vue.js&…

普通单目相机标定——准备工作

前言 这里我们还是以普通相机为例(非鱼眼相机)来进行后续的相关标定操作,再回顾下相机的成像模型如下所示。 已知相机内参(fx,fy,u0,v0),畸变系数[k1,k2,k3,p1,p2],相机外参[R|T]。世界坐标系中点Pw(Xw,Yw,Zw),投影至像素坐标系点p(u,v)的计算过程如下。 1)由世…