时间序列分析教程(二):移动平均与指数平滑

2023-11-05

之前介绍了时间序列的基本概念和性质,现在就正式介绍一些处理时间序列的模型方法,第一个是移动平均法。

移动平均法很简单,就是用最近的数据预测未来短时间内的数据。有简单移动平均法,真的很简单,就是用最近的一组数据,去平均,作为下一时刻的预测:
S i = ( x i − 1 + x i − 2 + . . . + x i − n ) / n S_i = (x_{i-1} + x_{i-2} + ...+ x_{i-n})/n Si=(xi1+xi2+...+xin)/n
简单移动平均最大的优点就是通过计算平均可以减小随机波动的影响,当时序数据受到周期变动和随机波动的影响而起伏较大时,通过移动平均就能消除这种影响,进一步分析出它的发展方向与趋势。

简单移动平均的升级版就是加权移动平均,其实就是在各个时刻的数据加上一个权重,考虑了不同时刻的数据对未来的预测的作用的不同,不同于机器学习的模型,这里的权重更多是根据经验法和试算法确定的,个人觉得没有太大研究价值,不再深入讨论。

第二个要介绍的模型是指数平滑模型,它包括一次指数平滑、二次指数平滑、三次指数平滑,当时间序列没有明显趋势变化时,可以使用一次指数平滑进行预测,一次指数平滑的基本公式就是:
S i = α ∗ x i + ( 1 − α ) S i − 1 S_i = \alpha * x_i + (1-\alpha)S_{i-1} Si=αxi+(1α)Si1
其中S_i是时刻t的预测值,x_i是时刻t的真实值,S_i-1是时刻t-1的预测值,a是平滑常数。一次指数平滑的预测公式是:
x i + k = s i x_{i+k} = s_i xi+k=si
一次指数平滑可以看成通过结合过去信息和当前信息进行预测,结合的方式就是通过合适的权重进行加权求和,得到的结果是一条直线,所以在序列没有明显趋势的时候才适用(即具有平稳性)。

如果序列具有线性趋势变化,就可以使用二次指数平滑,二次指数平滑的基本公式是:
S i = α ∗ x i + ( 1 − α ) ( S i − 1 + t i − 1 ) S_i= \alpha *x_i + (1-\alpha)(S_{i-1} + t_{i-1}) Si=αxi+(1α)(Si1+ti1)
t i = β ∗ ( s i − s i − 1 ) + ( 1 − β ) t i − 1 t_i = \beta * (s_i - s_{i-1}) + (1-\beta)t_{i-1} ti=β(sisi1)+(1β)ti1
可以看出,二次指数平滑和一次指数平滑相比,加多了一项t_i用于表示趋势,在每个时刻对趋势进行分析,再加入到一次指数平滑中。预测公式是:
x i + h = s i + h ∗ t i x_{i+h} = s_i + h*t_i xi+h=si+hti
还记得之前提到过,一般的时间序列可表示为:
Z t = T t + S t + X t Z_t = T_t + S_t + X_t Zt=Tt+St+Xt
其中包含了平稳的序列,趋势变化以及季节性变化,在二次指数平滑的预测公式中,我们看到预测值的等于一次指数平滑的预测值加上表示趋势变化的t_i,如果再继续引入季节性变化呢,就得到三次指数平滑了:
S i = α ∗ ( x i − p i − k ) + ( 1 − α ) ( S i − 1 + t i − 1 ) S_i = \alpha *(x_i-p_{i-k}) + (1-\alpha)(S_{i-1} + t_{i-1}) Si=α(xipik)+(1α)(Si1+ti1)
t i = β ∗ ( s i − s i − 1 ) + ( 1 − β ) t i − 1 t_i = \beta * (s_i - s_{i-1}) + (1-\beta)t_{i-1} ti=β(sisi1)+(1β)ti1
p i = γ ∗ ( x i − s i ) + ( 1 − γ ) p i − k p_i = \gamma * (x_i - s_i ) + (1-\gamma)p_{i-k} pi=γ(xisi)+(1γ)pik
预测公式为:
x i + h = s i + h ∗ t i + p i − k + h x_{i+h} = s_i + h*t_i + p_{i-k+h} xi+h=si+hti+pik+h
总的来说,指数平滑的实质就是对现在的数据进行加权线性变换,不论是一次二次还是三次,即使是加入趋势和季节变化信息,也是用基本公式表示这些信息,然后汇总起来。

在github写的自然语言处理入门教程,持续更新:NLPBeginner

在github写的机器学习入门教程,持续更新:MachineLearningModels

想浏览更多关于数学、机器学习、深度学习的内容,可浏览本人博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

时间序列分析教程(二):移动平均与指数平滑 的相关文章

  • R语言 时间序列ARIMA模型方法

    原理什么的百度一搜一堆 看不明白 先学会用这个工具吧 ARIMA 全称为自回归积分滑动平均模型 Autoregressive Integrated Moving Average Model 简记ARIMA 是由博克思 Box 和詹金斯 Je
  • 时间序列分析-电视广告呼入次数预测

    案例 电视广告呼入次数预测 import pandas as pd import numpy as np np random seed 1206 import matplotlib pyplot as plt matplotlib inli
  • 时序预测

    时序预测 MATLAB实现时间序列回归之似然检验 目录 时序预测 MATLAB实现时间序列回归之似然检验 基本介绍 程序设计 学习小结 参考资料 基本介绍 使用 CNLM 假设制定的 t 和 F 检验版本可以在创新分布偏离规范的各种情况下提
  • 干预分析模型- China GDP

    干预分析模型 GDP预测 加载pandas matplotlib等包 处理时间序列 import pandas as pd import numpy as np import matplotlib pylab as plt matplotl
  • 多维时序

    多维时序 MATLAB实现TPA LSTM 时间注意力注意力机制长短期记忆神经网络 多输入单输出 目录 多维时序 MATLAB实现TPA LSTM 时间注意力注意力机制长短期记忆神经网络 多输入单输出 预测效果 基本介绍 环境介绍 程序设计
  • 时序预测

    时序预测 MATLAB实现基于PSO LSTM LSTM时间序列预测对比 目录 时序预测 MATLAB实现基于PSO LSTM LSTM时间序列预测对比 效果一览 基本描述 程序设计 参考资料 效果一览 基本描述 MATLAB实现基于PSO
  • R和Python概率分布统计和Python验证独立性和平稳性时间序列

    R概率分布和统计 R 基础知识 汇总统计数据 图形显示 概率基础知识 概率规则 条件概率 后验概率和贝叶斯 可靠性 离散分布介绍 几何分布 概率密度函数 概率密度函数 pdf 定义为 P X x
  • 时序预测

    时序预测 MATLAB实现贝叶斯优化LSTM时间序列预测 BO LSTM 预测效果 基本介绍 相对于模型的参数而言 Parameter 我们知道机器学习其实就是机器通过某种算法学习数据的计算过程 通过学习得到的模型本质上是一些列数字 如树模
  • 多维时序

    多维时序 MATLAB实现SCNGO CNN Attention多变量时间序列预测 目录 多维时序 MATLAB实现SCNGO CNN Attention多变量时间序列预测 预测效果 基本介绍 程序设计 参考资料 预测效果 基本介绍 1 S
  • 华为出品Python入门教程:从零基础入门到精通,这一篇就够了

    前言 本文罗列了了python零基础入门到精通的详细教程 内容均以知识目录的形式展开 01 python由来与发展介绍 02 项目开发流程 第一章 markdown编辑器 01 markdown基本语法 02 Typora简介与安装 03
  • 用python实现时间序列自相关图(acf)、偏自相关图(pacf)

    自相关图是一个平面二维坐标悬垂线图 横坐标表示延迟阶数 纵坐标表示自相关系数 偏自相关图跟自相关图类似 横坐标表示延迟阶数 纵坐标表示偏自相关系数 自相关图与偏自相关图的python代码实现 from statsmodels graphic
  • 【数据预处理】Pandas缺失的数据处理

    目录 缺少数据基础 何时 为何 数据丢失 被视为 缺失 的值 日期时间 插入缺失数据 缺少数据的计算 Sum Prod of Empties Nans GroupBy中的NA值 清理 填写缺失数据 填充缺失值 fillna 用PandasO
  • 基于数据驱动的电动车电池数据分析(一)

    基于数据驱动的电动车电池数据分析 一 欢迎关注笔者的微信公众号 笔者过去一年多的时间都在国内一家头部新能源企业实习 主要参与一些数据分析和平台研发的工作 在工作中积累了一些数据分析的经验 其中新能源领域比较多的是一些化工生产 智能制造方面的
  • 多层多输入的CNN-LSTM时间序列回归预测(卷积神经网络-长短期记忆网络)——附代码

    目录 摘要 卷积神经网络 CNN 的介绍 长短期记忆网络 LSTM 的介绍 CNN LSTM Matlab代码运行结果 本文Matlab代码 数据分享 摘要 本文使用CNN LSTM混合神经网络对时间序列数据进行回归预测 本模型的输入数据个
  • 时间序列之协整检验(3)

    协整检验 1 协整检验 cointegration test 2 常用的协整检验 3 研究变量之间的协整关系 对研究经济问题的定量分析有着重要的意义 5 用Eviews代码进行协整检验 4 用Python代码进行协整检验 1 协整检验 co
  • TensorFlow时间序列tfts-seq2seq

    关注我的公众号YueTan进行交流探讨 欢迎关注时间序列仓库 https github com LongxingTan Time series prediction 时间序列1 概述 时间序列2 transformers 时间序列3 seq
  • 多维时序

    多维时序 MATLAB实现ELM极限学习机多维时序预测 股票价格预测 目录 多维时序 MATLAB实现ELM极限学习机多维时序预测 股票价格预测 效果一览 基本介绍 程序设计 结果输出 参考资料 效果一览 基本介绍
  • 时序预测

    时序预测 MATLAB实现趋势外推时间序列预测 含移动平均 指数平滑对比 目录 时序预测 MATLAB实现趋势外推时间序列预测 含移动平均 指数平滑对比 基本介绍 程序设计 学习总结 参考资料 基本介绍 MATLAB实现趋势外推时间序列预测
  • 时序预测

    时序预测 MATLAB实现TCN LSTM时间卷积长短期记忆神经网络时间序列预测 目录 时序预测 MATLAB实现TCN LSTM时间卷积长短期记忆神经网络时间序列预测 预测效果 基本介绍 模型描述 程序设计 参考资料 预测效果 基本介绍
  • TimeGPT:时序预测领域终于迎来了第一个大模型

    时间序列预测领域在最近的几年有着快速的发展 比如N BEATS N HiTS PatchTST和TimesNet 大型语言模型 llm 最近在ChatGPT等应用程序中变得非常流行 因为它们可以适应各种各样的任务 而无需进一步的训练 这就引

随机推荐

  • 双亲委派机制

    JVM双亲委派机制 JVM预定义的三种类型类加载器 定义 类加载器 ClassLoader 是Java语言的一项创新 也是Java流行的一个重要原因 在类加载的第一阶段 加载 过程中 需要通过一个类的全限定名来获取定义此类的二进制字节流 完
  • 关于SQL注入报错:Illegal mix of collations for operation ‘UNION‘原因剖析与验证

    关于SQL注入报错 Illegal mix of collations for operation UNION 原因剖析与验证 今天练习了一下DVWA的SQL注入模块 使用了union注入时报错如下 Illegal mix of colla
  • 解决“vue-router子路由默认视图不显示”问题

    今天在看Vue学习视频 老师讲解vue router多级路由的使用 在写完视频里的例子后 自己测试发现一个小问题 当时视频里没有提及 我是用name实现的路由之间的切换 其中一个有子路由 发现子路由的默认显示没有了 第一次默认有 第二次点击
  • JVM GC算法 CMS 详解(转)

    前言 CMS 全称Concurrent Low Pause Collector 是jdk1 4后期版本开始引入的新gc算法 在jdk5和jdk6中得到了进一步改进 它的主要适合场景是对响应时间的重要性需求 大于对吞吐量的要求 能够承受垃圾回
  • Python标准库asyncio模块基本原理浅析

    Python标准库asyncio模块基本原理浅析 本文环境python3 7 0 asyncio模块的实现思路 当前编程语言都开始在语言层面上 开始简化对异步程序的编程过程 其中Python中也开始了在语言层面上对异步编程的简化 特地使用了
  • Redis分布式锁的实现(Jedis和Redisson两个方案)

    应用场景 分布式锁主要用于解决 公司中不同业务系统对同一功能的数据产生脏读或重复插入 比如公司现有三个小组分别开发WAP站 小程序 APP客户端 而这三个系统都存在领红包功能 业务要求每人每日只能领取一个红包 如果有人同时登陆三个系统那么就
  • C语言函数返回值不能直接写数组

    C语言返回值不能直接写数组 ifndef VMATH H define VMATH H ifdef cplusplus extern C endif typedef float Matrix44f 16 Matrix44f translat
  • 分布式事务理论与实践

    一 产生背景 业务服务化拆分 原本一个服务能完成的业务操作现在需要跨多个服务 分库分表 写操作可能跨多个数据库 二 理论基础 2 1 2PC协议 角色说明 事务管理器 负责分布式事务的发起与结束 以及失败重试等 事务发起方 资源管理器 本地
  • pyenv管理python版本

    一 介绍 pyenv 是 Python 版本管理工具 pyenv 可以改变全局的 Python 版本 安装多个版本的 Python 设置目录级别的 Python 版本 还能创建和管理 virtual python environments
  • 编程语言比拼之Java VS C++

    学Java还是C Java和C 都是非常受欢迎的编程语言 各有各的优势和适用场景 以下是对它们的简要比较 性能 C 通常被认为是一种更高效的编程语言 适用于对性能要求较高的应用程序 如游戏开发 嵌入式系统和高频交易等 C 具有更接近底层的控
  • 常用串口调试工具比较

    在PC机上 目前有许多免费的串口调试工具 比较常用的有 1 串口调试助手 V2 2 优点 使用方便 用户群最多 有书介绍及免费源代码 缺点 1 因采用多线程接收技术 接收有时丢数 特别在高波特率或使用USB转串口时丢数较多 2 最大只支持1
  • java数组之二分查找法(折半查找)

    二分法就是用折半的思想 屁话不多说 上源码 public class BinarySearch 二分查找法 折半 折半查找 使用条件 必须是有序数组 需要三个变量 int min 0 int max 数组 length int mid mi
  • 使用OpenCV,Numpy计算直方图,Matplot绘制直方图及分析

    使用OpenCV Numpy计算直方图 Matplot绘制直方图及分析 1 效果图 2 原理 3 源码 3 1 直方图3种计算方法和2种绘制方法 3 2 Mask遮罩图像直方图 参考 这篇博客将介绍如何使用Python OpenCV Num
  • AVALON-MM接口

    AVALON接口分为两类 一种是AVALON MM接口 一般称为MM接口 另一种是AVALON ST接口 刚出来的一种新型接口 MM接口 通过地址读写数据 更多的是用在控制上面 ST接口用于点到点的流数据接口 更多的可以用在有高速通过率的模
  • shell文件通配符(9):任意一个:?、任意数量:*、任意包含[]、[^]:任意不包含

    文章目录 一 有哪些文件通配符 二 匹配任意 匹配任意一个字符 匹配任意数量的字符串 三 匹配任意指定一个字符 1 匹配任意包含 匹配任意包含 字符范围 2 与 匹配任意不包含 四 注意事项 1 通配符组合 2 不能跨越目录层级进行通配 3
  • 云呐工单管理对售后服务的全流程进行精细化的管理

    伴随着市场环境的改变 服务管理已融入到各个行业并起着愈来愈重要的功用 成为企业提升产品附加值 施行差异化发展战略 继而获取核心竞争力的较佳方式 带来良好的服务管理有利于企业获取报告信息 减低顾客流失率和赢得更多新顾客 能够促进企业利润的稳步
  • html文字浮动效果,css浮动怎么理解?

    浮动的意义 设置了浮动属性的元素会脱离普通标准流的控制 移动到其父元素中指定的位置的过程 将块级元素放在一行 浮动会脱离标准流 不占位置 会影响标准流 浮动只有左右浮动 不会出现上下浮动 浮动的使用 基本语法格式 选择器 float 属性值
  • pycharm注释快捷键(多行注释快捷键,三引号注释快捷键...)

    一 前言 相信学习python的小伙伴们对pycharm这款软件并不陌生 有时候我们需要在pycharm里面进行批量注释 但是直接一个一个输入注释符号太麻烦了 下面教大家用快捷键进行注释 二 教程 1 多行 单行注释 import torc
  • element 表格内显示图片

    element 表格内显示图片 先看下效果图 如下 再看下前端代码
  • 时间序列分析教程(二):移动平均与指数平滑

    之前介绍了时间序列的基本概念和性质 现在就正式介绍一些处理时间序列的模型方法 第一个是移动平均法 移动平均法很简单 就是用最近的数据预测未来短时间内的数据 有简单移动平均法 真的很简单 就是用最近的一组数据 去平均 作为下一时刻的预测 S