首页 > 其他分享 >灰色预测代码的讲解

灰色预测代码的讲解

时间:2024-07-07 19:31:28浏览次数:14  
标签:灰色 gca 预测 画出 代码 时序 讲解 数据 模型

本章通过一个例题,来讲解灰色预测代码。由于笔者只是以学习者的身份,以做笔记为目的写这篇博客,因此欢迎大家学习交流,代码(非本人所写)会附在最后面

目录

一、总述————如何处理预测题目?

1.画出时序图,分析趋势

2.检验与比较模型————训练与试验

将数据分为训练组和试验组,尝试使用不同的模型对训练组进行建模,并利用试验组的数据判断哪种模型的预测效果最好(比如我们可以使用SSE这个指标来挑选模型,常见的模型有指数平滑、ARIMA、灰色预测、神经网络等)。

3.得出结论————模型结果可视化

选择上一步骤中得到的预测误差最小的那个模型,并利用全部数据来重新建模,并对未来的数据进行预测。
画出预测后的数据和原来数据的时序图,看看预测的未来趋势是否合理。

二、用EXCEL画出时序图

时期 原始数据 累加数据 紧邻均值生成序列
1 12.2 12.2
2 15.2 27.4 19.8
3 10.9 38.2 32.8
4 15.0 53.2 45.7
5 14.7 67.9 60.6
6 14.4 82.3 75.1
7 19.8 102.1 92.2
8 17.2 119.3 110.7
9 17.5 136.8 128.1
10 17.9 154.8 145.8
11 14.4 169.2 162.0
12 16.3 185.5 177.3
这是我们目前的数据,使用EXCEL画出散点图

1.设置主次坐标轴

可以看到,累加后的数据明显大于原始数据,如果我们需要将其制作在同一张图上,就要把数量级较小的数据放置在次坐标轴上,方法如下图所示

三、matlab代码实现

1.数据的输入与创造时序图

数据的输入不必多言,此处我们讲解一下创造时序图所设计的代码

(1)set(gca,'xtick',year(1:1:end))

set(gca,'xtick',year(1:1:end))
在画出图后,“gca”代表当前坐标区或图,单独gca会返回图的信,如横轴与纵轴的数据。
而用“set”函数可以对坐标轴进行设置。此处,我们对gac的'xtick'参数进行了设置,也就是对横坐标的刻度进行了设置,设置成了year的第一个数到最后一个数的间隔为1,保证时间序列的连续性

(2)xlabel('年份'); ylabel('排污总量')

xlabel('年份'); ylabel('排污总量') 为给x轴与y轴添加名称

2.判断数据是否符合要求

因为灰色预测模型对数据量有要求:一般要求>3,不然数据量太少,模型失效;<10,数据量多,可能有更适合的模型
此段代码还有把数据转化成列向量的作用

3.进行准指数规律检验

(1)计算光滑度

if ERROR == 0 % 如果上述错误均没有发生时,才能执行下面的操作步骤 disp('------------------------------------------------------------') disp('准指数规律检验') x1 = cumsum(x0); % 生成1-AGO序列,cumsum是累加函数哦~ 注意:1.0e+03 *0.1740的意思是科学计数法,即10^3*0.1740 = 174 rho = x0(2:end) ./ x1(1:end-1) ;

标签:灰色,gca,预测,画出,代码,时序,讲解,数据,模型
From: https://www.cnblogs.com/dlmuwxw/p/18288625

相关文章

  • Python极简美学:用一行代码完成的26个日常任务!
    Python以其简洁优雅著称,能够用最少的代码行数实现强大的功能。本文特别为Python初学者设计,旨在展示Python如何以一行代码解决常见的编程任务,让你体验Python的极简美学。通过这些实例,你不仅能够学习到Python的基础知识,还能掌握一些高效编码的小技巧。1.计算列表平均值number......
  • 数据结构:二叉树的顺序结构及代码实现
    一:二叉树的顺序结构普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操......
  • 数据结构:二叉树的链式结构及代码实现
    一.二叉树的链式结构1.1前置说明在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能学习其相关的基本操作。由于现在大家对二叉树结构掌握还不够深入,为了降低大家学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉树操作学习,等二叉树结构了解的差不多时,我们反过头......
  • 代码随想录算法训练营第55天 | 42. 接雨水 、84.柱状图中最大的矩形
    接雨水接雨水这道题目是面试中特别高频的一道题,也是单调栈应用的题目,大家好好做做。建议是掌握双指针和单调栈,因为在面试中写出单调栈可能有点难度,但双指针思路更直接一些。在时间紧张的情况有,能写出双指针法也是不错的,然后可以和面试官在慢慢讨论如何优化。https://p......
  • Google Java Style Guide深度解读:打造优雅的代码艺术
    在软件工程的世界里,代码不仅仅是实现功能的工具,它也是团队之间沟通的桥梁,是软件质量和可维护性的直接反映。GoogleJavaStyleGuide作为一套广受认可的编码规范,不仅定义了代码的书写规则,更深刻地影响着Java开发者的思维方式和编码习惯。本文将深入解析GoogleJavaStyleGuide......
  • 无人机集群路径规划:四种优化算法(GOOSE、APO、LPO、SBOA)求解无人机集群路径规划,提供MAT
     一、单个无人机路径规划模型介绍无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化飞行时间和节省能量消耗。二、无人......
  • 无人机集群路径规划:四种优化算法(GOOSE、APO、DCS、SBOA)求解无人机集群路径规划,提供MAT
     一、单个无人机路径规划模型介绍无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化飞行时间和节省能量消耗。二、无人......
  • C语言下结构体、共用体、枚举类型的讲解
    主要内容结构体结构体数组结构体指针包含结构体的结构链表链表相关操作共用体枚举类型结构体结构体的类型的概念         结构体实现步骤结构体变量的声明structstruct 结构体名{                     ......
  • 代码4:非递归的汉诺塔
    Intro:绪论2:应用视角的操作系统。目的:改写为非递归的汉诺塔,理解“状态机模型”。一、递归版汉诺塔课本上最基础的做法,递归是模拟某一步:把n-1个盘子从from移到via,就能把剩下的一个盘子从from移到to,最后把n-1个盘子从via移到to即可。voidhanoi_r(intn,charfrom,charto,......
  • MATLAB算法实战应用案例精讲-【数模应用】偏最小二乘回归分析(PLS)(附MATLAB和python代码
    目录前言知识储备回归的方法回归的检验算法原理数学模型偏最小二乘回归建模原理:PLS的准则函数偏最小二乘基本算法​编辑 ​编辑PLS回归模型算法思想PLS回归与MLS、PCR、MRA比较SPSSAU案例应用其他说明SPSS示例(PLS命令) 变量列表(PLS命令) MODEL......