当前位置: 首页 > news >正文

【数学建模竞赛】预测类赛题常用算法解析

解析常见的预测类算法

灰色预测模型

灰色预测模型是一种利用少量的、不完全的信息,建立数学模型并进行预测的方法。该方法通过对系统行为特征的发展变化规律进行估计预测,同时也可以对行为特征的异常情况发生的时刻进行估计计算,并研究特定时间区间内事件的未来时间分布情况。灰色预测主要使用灰色系统理论中的GM(1,1)模型进行处理。该模型在工业、农业、商业等经济领域,以及环境、社会和军事等领域中都有广泛的应用。它可以根据已有的数据对未来的发展趋势进行预测分析,具有较高的精度和可靠性。

级比检验

级比检验是用来判断原始数据是否满足准指数规律的一种方法。

在灰色预测中,首先需要对原始数据进行级比检验。

级比公式如下,X0表示原始数据。

级比检验的目的是判断数据是否满足准指数规律。 

在级比检验中,首先需要计算级比,即原始数据与其前一期数据的比值。然后对级比进行统计分析,如计算平均值、方差等。根据级比的统计结果,可以判断数据是否满足准指数规律。如果级比的绝对值接近1,则说明数据满足准指数规律;如果级比的绝对值远离1,则说明数据不满足准指数规律。 级比检验是灰色预测中一个重要的步骤,它可以帮助我们判断数据是否适合进行灰色预测分析。根据级比检验的结果,我们可以选择合适的灰色预测模型进行预测。 

x=input('请输入数据');
n=length(x);
jibi = ones(1,n-1);
for i = 2:n
jibi(i-1) = x(i-1)/x(i);
end
max1 = max(jibi);
min1 = min(jibi);
fanwei = exp(2/(n+2))-exp(-2/(n+1))
if max1 - min1 <fanwei
disp(['数据通过级比检验']);
else
disp(['数据不通过级比检验']);
end

灰色预测过程 

1.首先生成累加数列。

2.再通过加权邻值生成等权邻值生成数。

3.通过推导可知我们生成的等权邻值生成数满足一定的指数规律,我们的目标就是求出下列灰微分方程中a,b的值:

4.得到灰微分方程后我们就可以对数据进行预测了。

5.最后进行检验,本文用了两种常见的检验方式。

x=input('请输入数据');%x表示原数据
n=length(x);
x1 = ones(1,n);
x1(1)=x(1);
%%生成一次累加数列
for i=2:n
x1(i)=x1(i-1)+x(i)% x1表示累加后的数据
end
z=ones(n-1,2);
%%加权生成数列z
for i=1:(n-1)
z(i,1)=-(x1(i)+x1(i+1))/2;
z(i,2)=1;
end
B=z';
for i=1:(n-1)
x0(i)=x(i+1);%x0表示初始数据的2-n项
end
x0=x0';
U=inv(B*z)*B*x0;
a=U(1);
b=U(2);
t=b/a;
t_test=input('输入需要预测的个数');
i=1:t_test+n;
yucezhi1(i+1)=(x(1)-t).*exp(-a.*i)+t;
yucezhi1(1)=x(1);
yucezhi0 = x(1);
for j=n+t_test:-1:2
yucezhi0(j)=yucezhi1(j)-yucezhi1(j-1);
end
x_init = x;
x=1:n;
xs=2:n+t_test;
yn=yucezhi0(2:n+t_test);
plot(x,x,'^r',xs,yn,'*-b');
% det=0;
% for i=2:n
% det=det+abs(yn(i)-x(i));
% end
% det=det/(n-1);
% disp(['百分绝对误差为:',num2str(det),'%']);
x0 = x0';
%%进行普通的残差检验
for i = 1:n
cancha0(i) = abs((x_init(i)-yucezhi0(i))/x_init(i));
end
cancha_max = max(cancha0);
if cancha_max<0.1
disp(['数据达到较高的要求'])
elseif cancha_max<0.2
disp(['数据达到一般的要求'])
else
disp(['数据不满足要求'])
end
%%进行后验差检验
cancha1(i) = (x_init(i)-yucezhi0(i));
s1 = 0;
s2 = 0;
x_average = sum(x_init)/n;
e_average = sum(cancha1)/n;
for i = i:n
s1 = s1+(x_init(i)-x_average)^2;
s2 = s2+(cancha1(i)-e_average)^2;
end
s1 = s1/n;
s2 = s2/n;
C = s2/s1;
if C<=0.35
disp(['一级,效果好']);
elseif C<=0.5 &C>0.35
disp(['二级,合格']);
elseif C<=0.65 &C>0.5
disp(['三级,勉强']);
else
disp(['四级,不合格']);
end
disp(['预测值为:',num2str(yucezhi0(n+1:n+t_test))]);

回归预测方法

回归预测方法包括线性回归、逻辑回归以及其他常见的回归模型。线性回归和逻辑回归通常是人们学习预测模型的第一个算法,而了解更多的学者会知道它们只是所有回归模型的主要两种形式。事实上,回归模型有很多种形式,每种回归都有其特定的适用场合。

在实际应用中,我们可以根据具体需求选择合适的回归模型。除了线性回归和逻辑回归,还有其他常见的回归模型,如多项式回归、岭回归、Lasso回归、弹性网络回归、决策树回归以及随机森林回归等。逐步回归是一种常见的逐步拟合回归模型的方法,通过观察统计值和指标来辨别重要的变量,并逐步增加或删除协变量来优化回归模型。对于有创造力的人来说,也可以根据需要对回归参数进行组合或创造出新的回归模型。但在实际应用中,我们通常会使用最常见的几种回归模型来进行预测和分析。

 时间序列分析法

时间序列分析法是一种通过对时间序列中的观察值进行描述和分析来预测未来值或理解序列中的模式和趋势的方法。根据时间序列的不同观察时间,可以是年份、季度、月份或其他任何时间形式。这种方法可以帮助我们了解序列中的趋势、季节性、周期性以及其他可能的影响因素。传统的时间序列分析方法可以将序列中的各个成分分离出来,并通过数学关系式进行分析。这样可以更好地理解序列中的成分之间的关系,并帮助我们做出合理的预测。 时间序列分析法具有简洁、实用的特点,对于利用人力、物力、财力、资源等方面的决策和规划具有很大的帮助。

ARIMA模型 

ARIMA模型是一种用于时间序列分析和预测的经典模型。它是由自回归(AR)移动平均(MA)差分(I)组成的。ARIMA模型可以用来分析具有一定趋势和季节性的时间序列数据。AR模型是指自回归模型,它用过去观测值的线性组合来预测未来观测值。MA模型是指移动平均模型,它使用白噪声误差的线性组合来预测未来观测值。ARIMA模型可以使用AR、MA或I模型的组合来进行模型配置,以便适应特定的时间序列数据模式。

如果想了解更详细的ARIMA模型的具体内容,可以参考Duke大学的网站,他们提供了关于ARIMA模型的详细解释和应用示例。

在ARIMA模型中,参数值为0可以用来表示不使用该模型的某个部分。这意味着ARIMA模型可以被配置为执行ARMA模型的功能,甚至是简单的AR、I或MA模型。

一旦我们得到了一个平稳的时间序列,下一步就是选择合适的ARIMA模型,也就是模式识别。这一步一般涉及对数据进行模型拟合和参数估计,以及用信息准则来选择最佳模型。通过这些步骤,我们可以得到一个适合时间序列数据的ARIMA模型,从而进行进一步的分析和预测。

AR - 自回归

自回归模型,顾名思义,就是及时地“回顾”过去,分析数据中先前的值,并对它们做出假设。这些先前的值称为“滞后”。一个例子是显示每月铅笔销售的数据。每个月的销售总额将被认为是数据集中的一个“进化变量”。这个模型是作为“利益的演化变量根据其自身的滞后值(即先验值)进行回归”而建立的。

I - 表示综合

与类似的“ARMA”模型相反,ARIMA中的“I”指的是它的综合方面。当应用差分步骤时,数据是“综合”的,以消除非平稳性。表示原始观测值的差异,以允许时间序列变得平稳,即数据值被数据值和以前的值之间的差异替换。

MA - 移动平均线

该模型的移动平均方面,是将观测值与应用于滞后观测值的移动平均模型的残差之间的相关性合并。

ARIMA用于使模型尽可能地符合时间序列数据的特殊形式。

一般步骤

① 首先需要对观测值序列进行平稳性检测,如果不平稳,则对其进行差分运算直到差分后的数据平稳;
② 在数据平稳后则对其进行白噪声检验,白噪声是指零均值常方差的随机平稳序列;
③ 如果是平稳非白噪声序列就计算ACF(自相关系数)、PACF(偏自相关系数),进行ARMA等模型识别;
④ 对已识别好的模型,确定模型参数,最后应用预测并进行误差分析。

微分方程 

相关文章:

【数学建模竞赛】预测类赛题常用算法解析

解析常见的预测类算法 灰色预测模型 灰色预测模型是一种利用少量的、不完全的信息&#xff0c;建立数学模型并进行预测的方法。该方法通过对系统行为特征的发展变化规律进行估计预测&#xff0c;同时也可以对行为特征的异常情况发生的时刻进行估计计算&#xff0c;并研究特定…...

OFDM 系统在 AWGN 信道下对不同载波频率偏移 (CFO) 的 BER 灵敏度研究(Matlab代码实现)

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

go基础07-了解map实现原理并高效使用

对于C程序员出身的Gopher来说&#xff0c;map类型是和切片、interface一样能让他们感受到Go语言先进性的重要语法元素。map类型也是Go语言中最常用的数据类型之一。 go 中 map 怎么表现&#xff1f; 一些有关Go语言的中文教程或译本将map称为字典或哈希表&#xff0c;但在这里…...

SpringMVC进阶:常用注解、参数传递和请求响应以及页面跳转

目录 一、常用注解 1.1.RequestMapping 1.2.RequestParam 1.3.ModelAttribute 1.4.SessionAttributes 1.5.RequestBody 1.6.RequestHeader 1.7.PathVariable 1.8.CookieValue 二、参数传递 2.1.基础类型String 2.2.复杂类型 2.3.RequestParam 2.4.PathVariable 2…...

nacos - centos7.x环境单机与集群快速部署

参考官网:https://nacos.io/zh-cn/docs/what-is-nacos.html 官方集群部署手册:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html 【单机部署】 1.下载 & 解压到安装目录 下载:wget -c https://github.com/alibaba/nacos/releases/download/2.1.2/nacos-ser…...

文心一言初体验,和ChatGPT语言理解能力比较

文章目录 第一个考验&#xff0c;语义理解第二个考验&#xff0c;历史问题的回答推荐阅读 百度旗下AI大模型文心一言宣布向全社会全面开放,所有用户都可以体验这款AI大模型了。要比较这两个语言模型&#xff0c;我们先设计好题目。 第一个考验&#xff0c;语义理解 题目1&…...

浏览器进程,性能指标,性能优化

目录 浏览器进程&#xff1a;多进程 主进程&#xff1a;显示、交互&#xff0c;增删进程 UI进程&#xff1a;控制地址栏、书签、前进后退 存储进程&#xff1a;cookie&#xff0c;webstorage&#xff0c;indexDB 渲染进程&#xff1a;每个标签页或窗口都有一个独立的渲染进…...

Python基础set集合定义与函数

set集合 集合的特点&#xff1a; 1.集合是无序 2.集合是去重 定义一个空集合 name_set set() 定义一个非空集合 name_set {a, b, c} 关系测试&#xff1a; 交集&#xff0c;并集&#xff0c;差集&#xff0c;对称差集 1.交集&#xff1a;intersection() 或者 & …...

【大数据之Kafka】九、Kafka Broker之文件存储及高效读写数据

1 文件存储 1.1 文件存储机制 Topic是逻辑上的概念&#xff0c;而partition是物理上的概念&#xff0c;每个partition对应于一个log文件&#xff0c;该log文件中存储的是Producer生产的数据。 Producer生产的数据会被不断追加到该log文件末端&#xff0c;为防止log文件过大导致…...

Android 使用Camera2 API 和 GLSurfaceView实现相机预览

GLSurfaceView 和 SurfaceView 是 Android 中用于显示图像的两个视图类&#xff0c;它们在实现方式和使用场景上有一些区别。 实现方式&#xff1a;GLSurfaceView 基于 OpenGL ES 技术实现&#xff0c;可以通过 OpenGL ES 渲染图像。而 SurfaceView 则是通过基于线程的绘制方式…...

说说IO多路复用

分析&回答 IO多路复用 I/O multiplexing 这里面的 multiplexing 指的其实是在单个线程通过记录跟踪每一个Sock(I/O流)的状态(对应空管塔里面的Fight progress strip槽)来同时管理多个I/O流。直白点说&#xff1a;多路指的是多个socket连接&#xff0c;复用指的是复用一个…...

mysql 锁解决的办法

可以查看锁的信息,TRX_MYSQL_THREAD_ID 为processlist的表中的会话id,用于kill select trx_id,trx_state,trx_started,trx_requested_lock_id,trx_wait_started,trx_weight,trx_mysql_thread_id,trx_query from innodb_trx 可以查看锁的模式&#xff0c;类型&#xff0c;锁的表…...

C++零碎记录(五)

9. 静态成员 ① 静态成员就是在成员变量和成员函数前加上关键字static&#xff0c;称为静态成员。 ② 静态成员分为&#xff1a; 1. 静态成员变量 --所有对象共享同一份数据 --在编译阶段分配内存 --类内声明&#xff0c;类外初始化 2. 静态成员函数 --所有对象共享同一个函数…...

玩转Mysql系列 - 第16篇:变量详解

这是Mysql系列第16篇。 环境&#xff1a;mysql5.7.25&#xff0c;cmd命令中进行演示。 代码中被[]包含的表示可选&#xff0c;|符号分开的表示可选其一。 我们在使用mysql的过程中&#xff0c;变量也会经常用到&#xff0c;比如查询系统的配置&#xff0c;可以通过查看系统变…...

Windows云服务器 PHP搭建网站外网无法访问的问题

前言&#xff1a;本人在华为云上租了一台windows的云主机&#xff0c;可以远程访问桌面的那种&#xff0c;然后想搭个网站&#xff0c;最开始想到的是IIS&#xff0c;测试了下用html的文件&#xff0c;没有问题。但是&#xff0c;php文件却不能用&#xff0c;因为少了PHP环境。…...

TuyaOS Sensor Hub组件介绍

文章目录 Sensor Hub 设计思想分层设计Sensor Hub 层(tdl)Sensor Driver 层(tdd) 传感数据元素类型抽象传感器采集策略 Sensor Hub 对上数据与接口数据结构1. 数据读取的触发模式2. 元素型数据订阅规则3. 数据就绪通知回调4. 传感设备信息 应用接口1. 创建传感器实例2. 启动传感…...

【实战】React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(总结展望篇)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…...

Leetcode.321 拼接最大数

题目链接 Leetcode.321 拼接最大数 hard 题目描述 给定长度分别为 m m m 和 n n n 的两个数组&#xff0c;其元素由 0 ∼ 9 0 \sim 9 0∼9 构成&#xff0c;表示两个自然数各位上的数字。现在从这两个数组中选出 k k k ( k ≤ m n ) (k \leq m n) (k≤mn) 个数字拼接成…...

数学建模竞赛常用代码总结-PythonMatlab

数学建模过程中有许多可复用的基础代码&#xff0c;在此对 python 以及 MATLAB 中常用代码进行简单总结&#xff0c;该总结会进行实时更新。 一、文件读取 python (pandas) 文件后缀名&#xff08;扩展名&#xff09;并不是必须的&#xff0c;其作用主要一方面是提示系统是用…...

在Ubuntu上安装CUDA和cuDNN以及验证安装步骤

在Ubuntu上安装CUDA和cuDNN以及验证安装步骤 本教程详细介绍了如何在Ubuntu操作系统上安装CUDA&#xff08;NVIDIA的并行计算平台&#xff09;和cuDNN&#xff08;深度神经网络库&#xff09;&#xff0c;以及如何验证安装是否成功。通过按照这些步骤操作&#xff0c;您将能够…...

SecureCRT ssh链接服务器

SecureCRT通过密钥进行SSH登录 说明&#xff1a; 一般的密码方式登录容易被密码暴力破解。所以一般我们会将 SSH 的端口设置为默认22以外的端口&#xff0c;或者禁用root账户登录。其实可以通过密钥登录这种方式来更好地保证安全。 密钥形式登录的原理是&#xff1a;利用密钥…...

linux之perf(3)top实时性能

Linux之perf(3)top实时性能 Author&#xff1a;Onceday Date&#xff1a;2023年9月3日 漫漫长路&#xff0c;才刚刚开始… 注&#xff1a;该文档内容采用了GPT4.0生成的回答&#xff0c;部分文本准确率可能存在问题。 参考文档: Tutorial - Perf Wiki (kernel.org)perf-to…...

【linux命令讲解大全】076.pgrep命令:查找和列出符合条件的进程ID

文章目录 pgrep补充说明语法选项参数实例 从零学 python pgrep 根据用户给出的信息在当前运行进程中查找并列出符合条件的进程ID&#xff08;PID&#xff09; 补充说明 pgrep 命令以名称为依据从运行进程队列中查找进程&#xff0c;并显示查找到的进程ID。每一个进程ID以一个…...

微信小程序开发---条件渲染和列表渲染

目录 一、条件渲染 &#xff08;1&#xff09;基本使用 &#xff08;2&#xff09;block &#xff08;3&#xff09;hidden 二、列表渲染 &#xff08;1&#xff09;基本使用 &#xff08;2&#xff09;手动指定索引和当前项的变量名 &#xff08;3&#xff09;wx:key的…...

【ES6】require、export和import的用法

在JavaScript中&#xff0c;require、export和import是Node.js的模块系统中的关键字&#xff0c;用于处理模块间的依赖关系。 1、require&#xff1a;这是Node.js中引入模块的方法。当你需要使用其他模块提供的功能时&#xff0c;可以使用require关键字来引入该模块。例如&…...

Vue + Element UI 前端篇(九):接口格式定义

接口请求格式定义 前台显示需要后台数据&#xff0c;我们这里先把前后端交互接口定义好&#xff0c;没有后台的时候&#xff0c;也方便用mock模拟。 接口定义遵循几个规范&#xff1a; 1. 接口按功能模块划分。 系统登录&#xff1a;登录相关接口 用户管理&#xff1a;用户…...

部署Django报错-requires SQLite 3.8.3 or higher

记一次CentOS7部署Django项目时的报错 问题出现 在部署测试环境时&#xff0c;有需要用到一个python的后端服务&#xff0c;要部署到测试环境中去 心想这不是so easy吗&#xff0c;把本地调试时使用的python版本及Django版本在服务器上对应下载好&#xff0c;然后直接执行命…...

什么是网络存储服务器

网络存储器就像一台只有存储功能的终端&#xff0c;独立地工作&#xff0c;里面带有固定的系统&#xff0c;但可以自己设置部分参数功能&#xff0c;可以接入服务器或者电脑进行设置&#xff0c;网络存储服务器实际上就是精简的、小型化的服务器&#xff0c;同样由主板、CPU&am…...

lv3 嵌入式开发-10 NFS服务器搭建及使用

目录 1 NFS服务器介绍 1.1 NFS服务器的介绍 1.2 NFS服务器的特点 1.3 NFS服务器的适用场景 2 NFS服务器搭建 2.1 配置介绍 2.2 常见错误 3 WINDOWS下NFS服务器搭建&#xff08;扩展&#xff09; 1 NFS服务器介绍 1.1 NFS服务器的介绍 nfs&#xff08;Network File Sys…...

后流量时代的跨境风口:Facebook广告

Facebook拥有超过25亿各个年龄段和人群的每月活跃用户&#xff0c;可以帮助您接触世界各地的相关消费者。无论您是需要吸引新的潜在客户还是吸引回头客访问您的在线商店&#xff0c;Facebook广告都可以为电子商务提供丰厚的投资回报&#xff1b;无论您是在沃尔玛、eBay、亚马逊…...

深圳罗湖做网站/优化大师有必要花钱吗

网站响应时间过长怎么回事&#xff1f;解决方法都有哪些&#xff1f;很多人在完成HTML5和CSS3部分的学习之后&#xff0c;都要独立完成网页制作项目实践&#xff0c;在这个过程中有部分同学发现网页打开很慢&#xff0c;即网站响应时间过长。针对这​个问题&#xff0c;千锋老师…...

网站栅格布局/百度浏览官网

squid for Windows的下载地址为: http://www.acmeconsulting.it/pagine/opensource/squid/SquidNT.htm 先来说一下Squid for Windows的安装&#xff0c;需求&#xff1a;你要拥有一台可联网的、运行着Windows NT/2000/XP/Server 2003的计算机&#xff0c;还要有Squid for wi…...

建设信用卡在网站挂失几步/seo海外推广

一、申请免费的域名 1、链接&#xff1a;http://www.ngrok.cc/login.html 2、注册账号及登录 3、开通隧道 注&#xff1a;隧道名称&#xff1a;brightbright属于自定义的 二、下载客户端 1、客户端下载地址&#xff1a;http://www.ngrok.cc 2、选择Ngrok客户端 3、根据实…...

变更股东怎样在工商网站做公示/百度收录入口提交查询

1722. 执行交换操作后的最小汉明距离 思路&#xff1a; 并查集合并联通分量统计每个联通分量的不同的数字的个数 class UnionFind {int[] f;int N;public UnionFind(int n) {N n10;f new int[N];for(int i0;i<N;i) f[i] i;}public UnionFind() {this((int)5e5);}int fi…...

卖衣服的网站排名/网络营销的产品策略

你可以使用多种绘图程序创建 SVG 图像&#xff0c;包括开源的 Inkscape 和 Adobe Illustrator。让你的图像“能动起来”需要更多的努力。幸运的是&#xff0c;有一些开源解决方案甚至可以引起 Belshazzar 的注意。-- Jeff Macharyas&#xff08;作者&#xff09;开源 SVG&#…...

wordpress外网css/app关键词排名优化

类 1.在python中首字母大写的名称指的是类&#xff0c;在类中的函数称为方法。 2.通过实例访问的变量称为属性。 3.修改属性的值&#xff1a; <1>直接修改属性的值。 <2>通过方法修改属性的值就无需直接访问属性&#xff0c;也可以进行扩展。 <3>通过方…...