时间序列预测:移动平均线、指数平滑和 SARIMA

news2024/10/6 7:42:45

一、说明

        在我的上一篇文章中,我们介绍了用于数据分析和清理的不同技术,以准备用于预测的数据。在完成数据的分析和提炼后,我们成功实现了获得不存在任何缺失值、异常值或其他异常的原始数据集的目标。

        现在,我们将继续使用上一篇文章中准备的相同数据集,并探索预测过程中的进一步步骤。

二、训练测试分割

        让我们在测试和训练之间分割数据。我们将使用 85% 的数据作为训练数据,其余作为测试数据。

        这样,我们就成功地将数据分为训练子集和测试子集。我们将在下面的预测方法中使用这些子集。

三、预测方法一:简单移动平均线

        简单移动平均线(SMA)是时间序列预测的常用方法。它是一种统计技术,计算指定数量的周期或时间间隔内的序列的平均值。SMA 方法假设过去的值代表未来的模式,并使用此假设来预测未来的值

在上面的代码中,我采用了 6 个月的移动平均窗口。下面是测试、训练和预测数据集的图。

        现在,让我们检查错误以评估准确性。

        该模型的准确度低于 50%,这意味着它不是该数据集的良好模型。值得注意的是,SMA 方法是一种简单直观的方法,但它有一些局限性。它可能无法捕获底层数据的复杂模式或变化。此外,它对窗口内的所有数据点给予相同的权重,这可能并不适合所有时间序列。其他高级方法(如指数平滑、ARIMA 或机器学习算法)可用于克服这些限制并提供更准确的预测。

四、预测方法 2:简单指数平滑

        简单指数平滑 (SES) 是一种基本的时间序列预测方法,它为过去的观测值分配指数递减的权重。

        考虑下面的代码。这里我们从 statsmodel 包中导入 SimpleExpSmoothing 来创建模型

上面我使用了 0.001 的平滑级别来获得最佳精度。下面是测试、训练和预测数据集的图。

        现在,让我们检查错误以评估准确性。

        该模型的准确率约为 53.2%,这肯定比以前更好,但仍然不是一个好的模型。

五、预测方法 3:季节性自回归综合移动平均线 (SARIMA)

        SARIMA,全称季节性自回归综合移动平均线,是一种将 ARIMA 模型与季节性相结合的时间序列预测模型。它是 ARIMA 模型的扩展,旨在处理呈现季节性模式的时间序列数据。

        ARIMA 模型对于预测平稳时间序列数据(均值和方差恒定的数据)非常有效。然而,许多现实世界的时间序列都表现出季节性,即模式定期重复,例如每天、每月或每年。SARIMA 通过将季节性差异和季节性成分纳入 ARIMA 模型来解决此问题。

5.1 确认平稳性

        为了确认时间序列数据的平稳性,有两种常用的方法:Augmented Dickey-Fuller (ADF) 检验和 Kwiatkowski-Phillips-Schmidt-Shin (KPSS) 检验。这些检验检查平稳性的不同方面,并且可以在评估数据集的平稳性时相互补充。

  1. 增强迪基-富勒 (ADF) 测试。ADF 检验检查是否存在单位根,表明非平稳性。如果 p 值低于选定的显着性水平,则该序列被视为平稳。

5.2 ADF测试

        上面代码中的dataFinal是我们在上一篇文章中准备的数据。该代码给出的p 值为0.016,小于临界值 0.05,这意味着根据此测试系列是平稳的

        2. Kwiatkowski-Phillips-Schmidt-Shin (KPSS) 检验:KPSS 检验侧重于平稳性的原假设。如果 p 值高于显着性水平,则该序列是平稳的。

5.3 KPSS测试

        该代码给出的p 值为0.1,该值大于临界值 0.05,这意味着零假设被拒绝,因此该序列是平稳的。

        现在让我们应用 SARIMA 方法来获取将用于拟合的模型参数

下面的输出显示了评估模型并提供参数的多个步骤。

让我们检查一下模型摘要。

        现在,有了模型参数,我们就可以拟合模型并对测试数据进行预测

        预测现已准备就绪,让我们绘制相同的图来检查训练和测试数据集的效果。

        上面看起来不错,比以前的型号更好。让我们检查模型的误差和准确性。

        该模型的准确率约为 98.5%,这使得该模型成为所有模型中准确率最高的。因此,这是我们可用于预测风力发电的最终模型。

六、结论

        我们对风电数据集的分析涉及测试三种不同的模型:简单移动平均线、简单指数平滑和 SARIMA。结果显示模型之间的准确性存在显着差异。

        简单移动平均法采用 6 个月的移动窗口,其准确度低于 50%。这种方法可能不适合捕获风力发电数据集中存在的复杂模式和波动。

        另一方面,简单指数平滑方法的表现稍好一些,准确率为 46%。虽然比简单移动平均线有所改进,但它在准确预测风电价值方面仍然存在不足。

        最后,SARIMA 模型表现出了最高的准确率,达到了令人印象深刻的 98.5%。该方法结合了季节性、自回归和移动平均成分,使其能够捕获时间序列数据中的固有模式和依赖性。

        值得注意的是,其他模型,例如基于 LSTM 模型的人工神经网络 (ANN) 或递归神经网络 (RNN) 模型,可能会提供更高的准确度,具体取决于具体用例和数据集的特征。这些模型以其捕获复杂关系和时间依赖性的能力而闻名,这使得它们特别适合时间序列分析。

        在未来的分析中,探索 ANN 或 LSTM 模型在风电数据集上的潜力是值得的,因为它们可以进一步提高准确性。然而,在选择最合适的建模方法之前,必须仔细评估数据的具体要求和特征。

数据科学
时间序列预测
Python
萨里玛

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

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

相关文章

【算法每日一练]-图论(保姆级教程 篇4(遍历))#传送门 #负环判断 #灾后重建

今天继续 目录 题目:传送门 思路: 题目:负环判断 思路: 题目:灾后重建 思路: 题目:传送 门 思路: 先跑一边floyd,然后依次加入每个传送门,O(n^5)不行…

CF1899B 250 Thousand Tons of TNT

题目链接 题目 题目大意 T T T 组测试数据 每组 n n n 个货物,第 i i i 个货物 的重量是 a i a_i ai​ 用k辆货车按顺序装这些货物,条件是每辆车上的货物个数都一样,也即是说 n n n 必须能被 k k k 整除, 求任意两辆车货物总…

什么是PWA(Progressive Web App)?它有哪些特点和优势?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

利用ETLCloud自动化流程实现业务系统数据快速同步至数仓

现代企业有不少都完成了数字化的转型,而还未转型的企业或商铺也有进行数字化转型的趋势,由此可见,数据已经成为企业决策的重要依据。企业需要先获取数据,将业务系统数据同步至数仓进行整合,然后再进行数据分析。为了更…

vivado产生报告阅读分析7-时序报告3

1、“ Timing Summary Report ”详情 “ Timing Summary Report ” ( 时序汇总报告 ) 包含下列部分 : • “ General Information ”部分 • “ Timer Settings ”部分 • “ Design Timing Summary ”部分 • “ Clock Summary ”部…

代码随想录算法训练营第五十八天丨 动态规划part18

739. 每日温度 思路 首先想到的当然是暴力解法,两层for循环,把至少需要等待的天数就搜出来了。时间复杂度是O(n^2) 那么接下来在来看看使用单调栈的解法。 什么时候用单调栈呢? 通常是一维数组,要寻找任一个元素的右边或者左边…

Leetcode刷题详解——斐波那契数

1. 题目链接:509. 斐波那契数 2. 题目描述: 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1…

mock测试数据

1.下载一个jar 架包 地址:链接:https://pan.baidu.com/s/1G5rVF5LlIYpyU-_KHsGjOA?pwdab12 提取码:ab12 2.配置当前电脑java环境变量 3.在同一文件目录下创建json 数据4.在终端切换到当前目录下启动服务, java -jar ./moco-r…

无损音频播放软件 Colibri mac中文版特点介绍

Colibri for mac是一款轻量级的音频播放器软件。它具有简洁的界面设计和快速启动速度,能够提供流畅的音频播放体验。Colibri支持多种常见的音频格式,包括MP3、FLAC、ALAC、AAC等。它还提供了一些实用的功能,如音频均衡器、音频增益控制、播放…

Go 语言数组基础教程 - 数组的声明、初始化和使用方法

数组用于在单个变量中存储相同类型的多个值,而不是为每个值声明单独的变量。 声明数组 在Go中,有两种声明数组的方式: 使用var关键字: 语法 var array_name [length]datatype{values} // 这里定义了长度 或者 var array_n…

asp.net 学校资源信息管理系统VS开发sqlserver数据库web结构c#编程计算机网页项目

一、源码特点 asp.net 学校资源信息管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 asp.net学校资源管理系统 二、功能介绍 本系统使用Microsoft Visual Studio 2019为开发工具,SQL …

hahahaha发到这里吧

一大早上笑死我 恭喜在座的各位,一直以为这次比赛public和private排名会相差不大,结果前6有4个人都是从银牌歘一下上来的,想象地到他们看到结果时的喜悦

C语言每日一题(32)环形链表

力扣网 141.环形链表 题目描述 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾…

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-C卷

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-C卷 2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-C卷A模块基础设施设置/安全加固(200分)A-1:登录安全加固(Windows, Linux)A-2&#…

使用Open3D库处理3D模型数据的实践指南

目录 引言 一、安装Open3D库 二、加载3D模型数据 三、处理3D模型数据 1、去除模型中的无效面 2、提取模型特征 四、存储处理后的3D模型数据 五、可视化处理后的3D模型数据 六、注意事项 结论 引言 在处理3D模型数据时,Open3D库是一个功能强大且易于使用的…

分类预测 | Matlab实现基于PSO-SDAE粒子群优化算法优化堆叠去噪自编码器的数据分类预测

分类预测 | Matlab实现基于PSO-SDAE粒子群优化算法优化堆叠去噪自编码器的数据分类预测 目录 分类预测 | Matlab实现基于PSO-SDAE粒子群优化算法优化堆叠去噪自编码器的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现基于PSO-SDAE粒子群优化算法…

golang标准库-crc32的使用

1.概述 crc32实现了32位循环冗余检测算法的实现。目前crc32内部提供 了三种常用的多项式,采用查表法来提高计算checksum的效率。通过crc32.MakeTable()可以获取对应的表,crc32提供了一个IEETABLE可以直接使用,官方链接如下:crc32 package - h…

值得你一生收藏的BMW宝马汽车底盘代号各个版本说明,方便今后查阅使用!

很少有汽车品牌像宝马一样,本属于内部交流使用的底盘代号(Development Code),最终延伸为粉丝群体用以精准定位某一年代某一款车型的通用语。随着宝马加速推出新产品,每一年的底盘代号都在更新。你挚爱的强哥现将宝马所…

《Deep learning for fine-grained image analysis: A survey》阅读笔记

论文标题 《Deep learning for fine-grained image analysis: A survey》 作者 魏秀参,旷世研究院 初读 摘要 细粒度图像分析(FGIA)的任务是分析从属类别的视觉对象。 细粒度性质引起的类间小变化和类内大变化使其成为一个具有挑战性的…

Mac安装win程序另一个方案

前言 今天跟大家分享的是mac装win程序的另一个思路,不需要大动干戈的装双系统、虚拟机。最后分享感受,先说过程吧。 一、思路介绍 其实,就是利用CrossOver,这个软件的介绍大家可以自行了解。不过不得不说这玩意还是国外的人思路新…