2022年全国大学生数学建模竞赛E题目-小批量物料生产安排详解+思路+Python代码时序预测模型(一)

简介: 2022年全国大学生数学建模竞赛E题目-小批量物料生产安排详解+思路+Python代码时序预测模型(一)

前言


最近项目不是很赶,手头的活也做完了,也正好遇到今年的全国数模大赛,作为一个已经退休的数模老学长岂有不参与一下的理由!博主参与过十余次数学建模大赛,美赛获得过M奖,国赛二等奖。这次写此博文纯属于自娱自乐,大家可以参考,主要是E题正好命中我最近研究的课题,时间序列预测模型,正筹找不到数据呢,这不就来了~顺便还能给大家提供一点思路,当然粉丝内部可以得到更多的思路和代码,也是第一次写关于数模思路的文章,可能一些写入太多哈。期待各位的关注。


博主会长期维护博文,有错误或者疑惑可以在评论区指出,感谢大家的支持。


一、赛题分析


我们直接从赛题题目提出的问题来分析,进入赛题重述环节:


1.问题一


请对附件中的历史数据进行分析,选择 6 种应当重点关注的物料(可从物料需求出现的频数、数量、趋势和销售单价等方面考虑),建立物料需求的周预测模型(即以周为基本时间单位,预测物料的周需求量,见附录(1)),并利用历史数据对预测模型进行评价。


这里我们需要注意一下附件的说明:


将附件数据第 1 次出现的时间(2019 年 1 月 2 日)所在的周设定为第 1 周,以后的每周从周一开始至周日结束,例如,2019 年 1 月 7 日至 13 日为第 2 周,以此类推。

在制定本周的生产计划时,可以使用任何历史数据、需求特征以及预测数据,但不能使用本周及本周以后的实际需求数据。

服务水平 = 1 −缺货量/实际需求量 。

库存量和缺货量分别指物料在周末的库存量和缺货量。


再来看看附录数据:


1e49739cadab4de889779ae302d958be.png


非常标准的时序数据,太好了我之前做时序预测模型正好缺乏此时序数据,这里正好可以拿来使用一下。那么根据上述信息我们来着手问题分析了。


问题分析


首先我们抓住题目的重点-选择 6 种应当重点关注的物料,注意括号里面的内容:

可从物料需求出现的频数、数量、趋势和销售单价等方面考虑

题目也是给的很明显,那么我们就根据这些指标来进行相应的分析:


8eff4b70ce5d430598212d8eb2ddfb6c.png

我们发现总共有22453行数据,从19年1月2日星期一到22年5月21日,这里我们需要看一下日期:


7a353d2c18c74cb1beba74387389b657.png


附件数据第 1 次出现的时间(2019 年 1 月 2 日)所在的周设定为第 1 周,那么也就是周三开始,到19年1月6日结束,这只有5天为第一周,与其他7天一周不同。再看22年5月21日:


35398eb31f704e719972363f0d6b9c4b.png


那么最后一周也只有16号道21号这6天,这需要注意一下,第一周的仅有五天,而最后一周只有6天。周期余留问题解决后,我们在来统计一下物料出现的频率:


物料频率


这个好解决,直接Pandas分析即可:


098c2d53d0dd4e03b0fe10a72cf95777.png

03d2996c433e4bf4a953fb5f56f1b3f0.png


觉大多数是出现在1-82的频次的,但是题目让我们选出六种那么我们需要综合考虑,我们可以进行排序将前10位的物料排名出来。


f86ba7cf4613427b87154a811da27af5.png


需求量


需求量分析的话就更简单,我们需要进行聚合操作之后再排序,考虑总体需求量即可,当然也可以做的更细,将时间和频率结合起来,但是不需要,因为我们后续会整合统一考虑。


89466dbea3624b0bacbf7305b3525445.png

依然选出前10,当然我们根据后续的选择可以扩大范围,不用那么着急:


a74db54516764b7f82aba3e51a146f9a.png

cf13c232fb834770914ca15f7f692213.png

趋势


趋势的话我们需要集合时间序列来分析,也就是物料需求的时序长度,这个也与频次有关。我们先来看一个物料的需求变化:

2fe647e4fbd44aed9cc2837d836e5bc0.png

那么我们需要知道可以反应趋势的统计变量有哪些:

  • MACD
  • DMI
  • DMA
  • EXPMA

这几个随便挑一个用就行了,我这里有已经编写好了的MACD方法调用即可:


05024997ba96401e92e483a2c63f376d.png


销售单价


销售单价最重要的考虑点是应该和需求量结合考虑的,而不应该单独考虑,我们需要计算成本:


成本=需求量*销售单价得到这个成本指标,再综合考虑。这里还有一个就是可以更加细化考虑的点:那就是销售单价趋势,这个方法和上述需求量趋势波动计算方法一样,采取趋势指标即可。


这里处理过程也是聚合操作,很简单不再展示,直奔周预测模型:


时序预测模型


终于到了时序预测模型了即以周为基本时间单位,预测物料的周需求量。那么关于时序预测模型在我全部系列文章已经写出:

757c64893e7b4aa499648326f18f4715.png


此专栏将所有的时序预测模型展示出:

f155898f17794792ae4aa03abaddcc6a.png

我们只需要将整合的特征数据代入计算,然后交叉验证正确性再选出最优秀的算法即可。


目录
相关文章
|
14天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1545 16
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
14天前
|
机器学习/深度学习 监控 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 E题:高速公路应急车道紧急启用模型 问题分析、数学模型及Python代码
2024年中国研究生数学建模竞赛E题要求建立高速公路应急车道紧急启用模型,以缓解特定路段的拥堵问题。题目提供了四个视频观测点的数据,需分析交通流参数随时间的变化规律,建立拥堵预警模型,并验证模型有效性。此外,还需设计合理的应急车道启用规则和算法,优化视频监控点布局,以提升决策科学性和成本效益。涉及视频数据处理、非线性动态系统建模和机器学习等技术。适合交通工程、数学、计算机科学等多个专业学生参与。需利用Python等工具进行数据处理和建模。具体问题包括统计参数变化、建立拥堵模型、验证模型有效性、设计启用规则和优化监控点布局。
679 12
【BetterBench博士】2024年中国研究生数学建模竞赛 E题:高速公路应急车道紧急启用模型 问题分析、数学模型及Python代码
|
20天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的大学竞赛报名管理系统
基于Python+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的大学竞赛报名管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
33 3
基于Python+Vue开发的大学竞赛报名管理系统
|
1月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的大学竞赛报名管理系统
该项目是基于Python+Vue开发的大学竞赛报名管理系统,旨在帮助大学生掌握Python编程技能及项目开发经验。主要功能包括赛事管理、类型管理、用户管理、统计分析等。项目采用前后端分离设计,前端技术栈为Vue,后端使用Python与Django框架,并基于MySQL数据库。通过实践,学生可提升编程技能,为职业发展奠定基础。项目已部署在线演示,并提供源码下载。
36 2
|
2月前
|
JSON 数据格式 Python
Python快速获取国内最新放假安排数据
Python快速获取国内最新放假安排数据
|
1天前
|
机器学习/深度学习 人工智能 数据可视化
Python比较适合哪些场景的编程?
Python比较适合哪些场景的编程?
14 7
|
6天前
|
数据挖掘 索引 Python
Python数据挖掘编程基础3
字典在数学上是一个映射,类似列表但使用自定义键而非数字索引,键在整个字典中必须唯一。可以通过直接赋值、`dict`函数或`dict.fromkeys`创建字典,并通过键访问元素。集合是一种不重复且无序的数据结构,可通过花括号或`set`函数创建,支持并集、交集、差集和对称差集等运算。
15 9
|
2天前
|
存储 数据处理 开发者
深入浅出:Python编程基础与实战技巧
【9月更文挑战第32天】本文将引导读者从零开始,掌握Python编程语言的核心概念,并通过实际代码示例深入理解。我们将逐步探索变量、数据结构、控制流、函数、类和异常处理等基本知识,并结合实用案例,如数据处理、文件操作和网络请求,提升编程技能。无论您是初学者还是有一定经验的开发者,这篇文章都能帮助您巩固基础,拓展视野。
|
1天前
|
大数据 Python
Python 高级编程:深入探索高级代码实践
本文深入探讨了Python的四大高级特性:装饰器、生成器、上下文管理器及并发与并行编程。通过装饰器,我们能够在不改动原函数的基础上增添功能;生成器允许按需生成值,优化处理大数据;上下文管理器确保资源被妥善管理和释放;多线程等技术则助力高效完成并发任务。本文通过具体代码实例详细解析这些特性的应用方法,帮助读者提升Python编程水平。
18 5
|
2天前
|
数据采集 机器学习/深度学习 人工智能
Python编程之旅:从基础到精通
【9月更文挑战第32天】本文将带你进入Python的世界,从基础语法到高级特性,再到实战项目,让你全面掌握Python编程技能。无论你是初学者还是有一定基础的开发者,都能在这篇文章中找到适合自己的学习路径和方法。让我们一起踏上Python编程之旅,开启一段充满挑战和乐趣的学习历程吧!
下一篇
无影云桌面