数学建模常用模型(六):时间序列预测

news2024/11/16 13:36:21

数学建模常用模型(六):时间序列预测

时间序列预测是数学建模中的一个重要领域,用于预测时间序列数据中未来的趋势和模式。时间序列预测可以帮助我们了解数据的演变规律,做出合理的决策和规划。
这是我自己总结的一些代码和资料(本文中的代码以及参考书籍等),放在github上供大家参考:https://github.com/HuaandQi/Mathematical-modeling.git

1.常用的时间序列预测方法

  1. 移动平均法(Moving Average):通过计算过去一段时间内的观测值的平均值来预测未来的值。简单移动平均(SMA)和加权移动平均(WMA)是常用的移动平均法。
  2. 指数平滑法(Exponential Smoothing):利用指数加权的方式对历史数据进行平滑处理,较新的数据具有更高的权重。简单指数平滑(SES)和双指数平滑(DES)是常见的指数平滑方法。
  3. 自回归移动平均模型(Autoregressive Moving Average Model,ARMA):ARMA模型结合了自回归(AR)和移动平均(MA)的特点,用于描述时间序列数据的自相关和移动平均结构。
  4. 季节性自回归移动平均模型(Seasonal Autoregressive Moving Average Model,SARMA):SARMA模型在ARMA模型的基础上考虑了时间序列数据的季节性特征。
  5. 长短期记忆网络(Long Short-Term Memory,LSTM):LSTM是一种递归神经网络,具有记忆单元和门控机制,适用于处理时间序列数据的长期依赖关系。
    这些方法在时间序列预测中都有广泛的应用,选择合适的方法取决于数据的特点、预测的目标和模型的要求。在实际应用中,常常需要根据具体情况进行模型选择、参数调整和模型评估,以获得准确和可靠的预测结果。

2.程序实例

下面是一个使用Python进行时间序列预测的简单例子,我们将使用ARIMA模型来预测未来的气温变化。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.arima.model import ARIMA

# 读取气温数据
data = pd.read_csv('temperature.csv')

# 将日期列转换为日期时间类型
data['Date'] = pd.to_datetime(data['Date'])

# 设置日期列为索引
data.set_index('Date', inplace=True)

# 绘制原始数据图
plt.figure(figsize=(10, 4))
plt.plot(data.index, data['Temperature'], label='Actual')
plt.xlabel('Date')
plt.ylabel('Temperature')
plt.title('Temperature Time Series')
plt.legend()
plt.show()

# 拆分训练集和测试集
train_data = data.loc['1980-01-01':'2010-12-31']
test_data = data.loc['2011-01-01':'2015-12-31']

# 创建ARIMA模型
model = ARIMA(train_data['Temperature'], order=(2, 1, 0))

# 拟合模型
model_fit = model.fit()

# 预测未来5年的气温
forecast = model_fit.forecast(steps=5)

# 打印预测结果
print("Forecasted Temperature:")
print(forecast)

# 绘制预测结果图
plt.figure(figsize=(10, 4))
plt.plot(data.index, data['Temperature'], label='Actual')
plt.plot(forecast.index, forecast, label='Forecast')
plt.xlabel('Date')
plt.ylabel('Temperature')
plt.title('Temperature Time Series Forecast')
plt.legend()
plt.show()

在这个示例中,我们首先读取气温数据,并将日期列转换为日期时间类型。然后,我们将数据拆分为训练集和测试集,以2010年为界限。接下来,我们创建了ARIMA模型,并使用训练集进行拟合。然后,我们使用拟合的模型进行未来5年气温的预测,并打印出预测结果。最后,我们绘制了原始数据和预测结果的图表。

3.运行结果

在这里插入图片描述
请确保将代码中的数据文件路径和模型参数进行适当的调整,以适应您自己的数据和预测需求。

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

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

相关文章

FCPX插件-16个手绘卡通素描涂鸦图形文字标题动画 Scribble Sketch Lower Thirds

Scribble Sketch Lower Thirds包含16个手绘卡通素描涂鸦图形文字标题动画模板,一个简约的卡通标题动画,由手绘的文本动画组成,可帮助您轻松改善您影片创意。 这个插件包提供了各种独特的手绘风格的标题动画模板,包括涂鸦笔画、草…

最新FLstudio21.0.3中文版本下载更新及内容介绍

在现在这个数字音乐时代,各种音乐中都或多或少有些电子音乐的影子,或是合成器音色、或是通过数字效果器制作出的变幻莫测的变化效果。而小马丁、Brooks、Eliminate等众多电子音乐巨头便是使用FL Studio来制作音乐的。今天小编就以FL Studio五年的资深用户…

你尚未连接--代理服务器可能有问题,或地址不正确。

这种情况可能是你装了梯子之后,自动开启了代理服务器 解决方法: 1、控制面板->网络和Internet 2、网络和共享中心->internet选项 3、连接->局域网设置 4、把代理服务器的沟沟取消 这样就解决了

多线程与并发编程【线程休眠、线程让步、线程联合、判断线程是否存活】(二)-全面详解(学习总结---从入门到深化)

目录 线程休眠 线程让步 线程联合 Thread类中的其他常用方法 判断线程是否存活 线程的优先级 线程休眠 sleep()方法:可以让正在运行的线程进入阻塞状态,直到休眠时间 满了,进入就绪状态。sleep方法的参数为休眠的毫秒数。 public class…

数据库常见4种范式

数据库范式 1. 数据库范式1.1 第一范式(1NF)1.2 第二范式(2NF)1.3 第三范式(3NF)1.4 巴斯科德范式(BCNF)1.5 范式的优缺点1.5.1 优点1.5.2 缺点 1. 数据库范式 在关系型数据库中&…

LabVIEW开发汽车安全带张紧测试

LabVIEW开发汽车安全带张紧测试 安全带是车辆乘员安全的主要约束系统,通过遮挡乘员与仪表板或挡风玻璃等接触,显着防止致命或非致命伤害。安全带的实践在三十年内将死亡率降低到相当可观的水平,并且直到今天仍然是许多国家的强制性。 然而&…

基于物理机部署前后端分离项目

软件安装 安装git 安装mysql 安装redis 安装python 安装虚拟环境 安装uwsgi 安装nginx centos安装常见软件_骑台风走的博客-CSDN博客一 卸载mysql### 1 查看mysql的安装情况 rpm -qa |grep -i mysql # -i表示忽略大小写 mysql80-community-release-el7-7.noarch mysql-commun…

如何用 Github Pages 免费部署静态站点

最低成本部署静态网站 所谓静态网站,是指它所有内容都是静态的,即预先编写好并存储在服务器上,访问者获取到的是事先准备好的静态文件。 所以完全不需要购买服务器,除了域名之外,几乎不会有其他花销。 我在构建五个静…

3.7.cuda运行时API-使用cuda核函数加速warpaffine

目录 前言1. warpAffine2. warpAffine案例2.1 导言2.2 main函数2.3 warpaffine_to_center_align函数2.4 warp_affine_bilinear函数2.5 warp_affine_bilinear_kernel核函数2.6 AffineMatrix结构体 3. 补充知识总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0…

【Linux后端服务器开发】软硬链接与动静态库

目录 一、软硬链接 二、动静态库 1. 静态库 2. 动态库 一、软硬链接 软链接:ln -s myfile soft_file.link 硬链接:ln myfile hard_file.link 查看映射关系:ll -li 软硬链接区别:是否具有独立的inode 软链接具有独立的inode…

Appium+python自动化(一)- 环境搭建—上(超详解)

最近整理了一下自动化的东西,先前整理的python接口自动化已经接近尾声。即将要开启新的征程和篇章(Appium&python)。那么首相的问题就是搭建环境了。好久没搭建环境又踩了不少坑,appium的环境搭建比较繁琐,好多同行…

零撸X2E大热门​Salad Venture的空投!

Salad Venture 随着Web3的走红,X to Earn成为热门概念,其中X可指运动、购物、游戏、学习和创作等诸多应用场景,Earn则是通过这些特定场景产生经济收益。与Web2企业将利益分配权牢牢掌握在自己手中不同,X to Earn的本质是将参与者…

Coggle 30 Days of ML(23年7月)任务七:训练TextCNN模型

Coggle 30 Days of ML(23年7月)任务七:训练TextCNN模型 任务七:使用Word2Vec词向量,搭建TextCNN模型进行训练和预测 说明:在这个任务中,你将使用Word2Vec词向量,搭建TextCNN模型进…

【LeetCode热题100】打卡第32天:最长连续序列只出现一次的数字单词拆分环形链表

文章目录 【LeetCode热题100】打卡第32天:最长连续序列&只出现一次的数字&单词拆分&环形链表⛅前言 最长连续序列🔒题目🔑题解 只出现一次的数字🔒题目🔑题解 单词拆分🔒题目🔑题解…

webAPI学习笔记5——移动端网页特效和本地存储

一、移动端网页特效 1. 触屏事件 1.1 触屏事件概述 移动端浏览器兼容性较好,我们不需要考虑以前 JS 的兼容性问题,可以放心的使用原生 JS 书写效果,但是移动端也有自己独特的地方。比如触屏事件 touch(也称触摸事件&#xff09…

联想M7605DW怎么连接WiFi网络

联想M7605DW是一款拥有WiFi功能的打印机,可以通过WiFi连接无线网络,实现打印无线传输。 首先,需要确保你的WiFi网络已经正常连接,并且知道WiFI的网络名称和密码,同时确保你的电脑或手机设备与WiFi相连接。 启动联想M76…

数组、指针练习题及解析(含笔试题目讲解)其一

目录 前言 题目列表: 题目解析 一维数组 字符数组 字符串 字符指针 二维数组 笔试题 总结 前言 前几期的博客已经将有关指针、数组的所以知识都已基本讲解完毕,那么接下来我们就做一些练习巩固,这些练习依据历年来一些公司笔试题进行…

java的ThreadLocal变量

Java的ThreadLocal变量是线程的局部变量,只能被本线程访问,不能被其它线程访问,也就是说线程间进行了隔离。每个线程访问该变量的一个独立拷贝,互相不干扰。感觉跟synchronized的作用相反,synchronized是为了保护线程间…

Kafka入门,mysql5.7 Kafka-Eagle部署(二十五)

官网 https://www.kafka-eagle.org/ 下载解压 这里使用的是2.0.8 创建mysql数据库 创建名为ke数据库,新版本会自动创建,不会创建的话,自己手动创建,不然会报查不到相关表信息错误 SET NAMES utf8; SET FOREIGN_KEY_CHECKS 0;-- ------…

从2023中国峰会,看亚马逊云科技的生成式AI战略

“生成式AI的发展就像一场马拉松比赛,当比赛刚刚开始时,如果只跑了三四步就断言某某会赢得这场比赛,显然是不合理的。我们现在还处于非常早期的阶段。” 近日,在2023亚马逊云科技中国峰会上,亚马逊云科技全球产品副总裁…