【数据分析】指数移动平均线的直观解释

@slavahead

一、介绍

        在时间序列分析中,通常需要通过考虑先前的值来了解序列的趋势方向。序列中下一个值的近似可以通过多种方式执行,包括使用简单基线或构建高级机器学习模型。

        指数(加权)移动平均线是这两种方法之间的稳健权衡。在幕后有一个简单的递归方法可以有效地实现该算法。同时,它非常灵活,可以成功适应大多数类型的序列。

        本文介绍了该方法背后的动机、其工作流程和偏差校正的描述——一种克服近似中偏差障碍的有效技术。

二、动机

        想象一个近似随时间变化的给定参数的问题。在每次迭代中,我们都知道它之前的所有值。目标是根据先前的值来预测下一个值。

        一种幼稚的策略是简单地取最后几个值的平均值。这在某些情况下可能有效,但不太适合参数更依赖于最新值的情况。

        克服此问题的可能方法之一是将较高的权重分配给较新的值,并将较少的权重分配给先前的值。指数移动平均线正是遵循这一原则的策略。它基于这样的假设:变量的较新值比先前值对下一个值的形成贡献更大

三、公式

        为了理解指数移动平均线的工作原理,让我们看看它的递归方程:

        指数移动平均公式

  • vₜ 是近似给定变量的时间序列。它的索引 t 对应于时间戳 t。由于该公式是递归的,因此需要初始时间戳 t = 0 的值 v₀。实际中,v₀通常取0。
  • θ 是当前迭代的观测值。
  • β 是一个介于 0 和 1 之间的超参数,定义权重重要性应如何在先前平均值 vₜ-₁ 和当前观测值 θ 之间分布

        让我们为前几个参数值写下这个公式:

        第t个时间戳的获取公式

        结果,最终的公式如下所示:

        第 t 个时间戳的指数移动平均值

        我们可以看到,最近的观测值 θ 的权重为 1,倒数第二个观测值 — β,倒数第三个 — β² 等。由于 0 < β < 1,乘法项 βᵏ 随着 k 的增加呈指数下降,因此,观察结果越旧,它们就越不重要。最后,将每个总和项乘以 (1 -β)。

实际上,β 的值通常选择接近 0.9。

不同时间戳的权重分布(β = 0.9)

四、数学解释

        利用数学分析中著名的第二奇妙极限,可以证明以下极限:

        通过替换 β = 1 - x,我们可以将其重写为以下形式:

        我们还知道,在指数移动平均值的方程中,每个观测值都乘以项 βᵏ,其中 k 表示计算观测值之前的时间戳。由于两种情况下的底数 β 相等,因此我们可以使两个公式的指数相等:

        通过使用这个方程,对于选定的 β 值,我们可以计算权重项达到值 1 / e ≈ 0.368 所需的时间戳 t 的近似数量。这意味着在最后 t 次迭代中计算的观测值具有大于 1 / e 的权重项,而在最后 t 次时间戳范围内计算出的更先例的权重项则低于 1 / e,其重要性要小得多。

        实际上,低于 1 / e 的权重对指数加权平均值的影响很小。这就是为什么说对于给定的 β 值,指数加权平均值会考虑最后 t = 1 / (1 - β) 观测值

        为了更好地理解该公式,让我们为 β 代入不同的值

例如,取 β = 0.9 表示大约在 t = 10 次迭代中,与当前观测值的权重相比,权重衰减至 1 / e。换句话说,指数加权平均值主要取决于最后 t = 10 个观测值。

五、偏差校正

        使用指数加权平均值的常见问题是,在大多数问题中,它不能很好地近似第一个系列值。发生这种情况的原因是第一次迭代时缺乏足够的数据。例如,假设我们给出以下时间序列:

        目标是用指数加权平均值来近似它。然而,如果我们使用正常公式,那么前几个值将对 v₀ 施加很大的权重,即 0,而散点图上的大多数点都在 20 以上。因此,第一个加权平均值的序列将太低精确地近似原始序列。

        其中一个简单的解决方案是采用接近第一个观测值 θ1 的 v0 值。尽管这种方法在某些情况下效果很好,但它仍然不完美,特别是在给定序列不稳定的情况下。例如,如果 θ2 与 θ1 差异太大,则在计算第二个值 v2 时,加权平均值通常会比当前观测值 θ2 更重视先前趋势 v1。结果,近似值将非常差。

        一种更灵活的解决方案是使用一种称为“偏差校正”的技术。它们不是简单地使用计算值 vₖ,而是除以 (1 —βᵏ)。假设选择的 β 接近 0.9-1,则对于 k 较小的第一次迭代,该表达式趋于接近 0。因此,现在不是慢慢累加 v₀ = 0 的前几个值,而是将它们除以相对较小的数字,将它们缩放为更大的值。

        带和不带偏差校正的指数移动平均计算示例

        一般来说,这种缩放效果非常好,并且精确地适应了前几项。当k变大时,分母逐渐接近1,从而逐渐忽略不再需要的这种缩放的影响,因为从某个迭代开始,算法可以高度可信地依赖其最近的值,而无需任何额外的缩放。

六、结论

        在本文中,我们介绍了一种非常有用的近似时间序列序列的技术。指数加权平均算法的鲁棒性主要是通过其超参数β来实现的,β可以适应特定类型的序列。除此之外,引入的偏差校正机制使得即使在信息太少的早期时间戳上也可以有效地近似数据。

        指数加权平均在时间序列分析中有着广泛的应用范围。此外,它还用于梯度下降算法的变体中以加速收敛。其中最受欢迎的之一是深度学习中的动量优化器,它消除了优化函数不必要的振荡,使其更精确地对准局部最小值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Unity中的A星寻路】Navigation导航寻路系统四大页签详解

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

STL map容器与pair类模板(解决扫雷问题)

CSTL之Map容器 - 数据结构教程 - C语言网 (dotcpp.com)https://www.dotcpp.com/course/118CSTL之Pair类模板 - 数据结构教程 - C语言网 (dotcpp.com)https://www.dotcpp.com/course/119 刷到一个扫雷的题目&#xff0c;之前没有玩怎么过扫雷&#xff0c;于是我就去玩了玩…

M3u8视频地址如何转为mp4视频

在当今数字化的时代&#xff0c;视频格式的转换已成为日常需求。M3u8格式的视频由于其分段的特性&#xff0c;常常给播放和编辑带来不便。而MP4格式则因其通用性和高质量而广受欢迎。那么&#xff0c;如何将M3u8视频地址转换为MP4格式呢&#xff1f;接下来&#xff0c;我们将为…

网络安全B模块(笔记详解)- 数字取证

数据分析数字取证-attack 1.使用Wireshark查看并分析Windows 7桌面下的attack.pcapng数据包文件,通过分析数据包attack.pcapng找出恶意用户的IP地址,并将恶意用户的IP地址作为Flag(形式:[IP地址])提交; 解析:http.request.method==POST ​ Flag:[172.16.1.102] 2.继续…

This is probably not a problem with npm.

项目场景&#xff1a; 新创建的vue3项目&#xff0c;根据elementplus官网安装步骤进行按需导入安装&#xff0c;运行项目报错 This is probably not a problem with npm.There is likely additional logging output above. 原因分析&#xff1a; 是elementplus安装版本和自动…

克隆clone github上某个项目的子目录

有时会遇到只需要克隆github某个项目的子目录&#xff0c;此时可以使用以下方法实现&#xff1a; 需求示例&#xff1a; 现需要克隆&#xff1a;https://github.com/SingleZombie/DL-Demos项目中的ddim项目 注&#xff1a;ddim项目的地址为&#xff1a;https://github.com/Sing…

Pytorch上采样

文章目录 Upsample特殊上采样 Upsample 所谓上采样&#xff0c;实则是一个插值过程。所以上采样对象在初始化时&#xff0c;需要指定一个插值类型&#xff0c;Upsample是torch.nn中最基础的上采样类&#xff0c;初始化参数如下 Upsample(sizeNone, scale_factorNone, modenea…

Django(五)

员工管理系统 1.新建项目 2.创建app python manage.py startapp app012.1 注册app 3. 设计表结构&#xff08;django&#xff09; from django.db import modelsclass Department(models.Model):""" 部门表 """title models.CharField(verbos…

AJAX(一)

一、AJAX简介 AJAX全称为 Asynchronous JavaScript And XML,就是异步的JS和XML。 通过AJAX可以在浏览器中向服务器发送异步请求&#xff0c;最大的优势&#xff1a;无刷新获取数据 AJAX不是新的编程语言&#xff08;使用的js)&#xff0c;而是一种将现有的标准组合在一起使用的…

【Apache-2.0】springboot-openai-chatgpt超级AI大脑产品架构图

springboot-openai-chatgpt: 一个基于SpringCloud的Chatgpt机器人&#xff0c;已对接GPT-3.5、GPT-4.0、百度文心一言、stable diffusion AI绘图、Midjourney绘图。用户可以在界面上与聊天机器人进行对话&#xff0c;聊天机器人会根据用户的输入自动生成回复。同时也支持画图&a…

解决json.decoder.JSONDecodeError: Extra data: line 1 column 721 (char 720)问题

python中将字符串序反列化成json格式时报错 fn result_json[0].decode(utf-8).strip(\00) json_object json.loads(fn) print(type(json_object))排查了以下原因应该是序列化的字符串全都在一行&#xff0c;json库不能一次性处理这么长的序列

每天刷两道题——第三天

1.1两两交换链表中的节点 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09; 输入&#xff1a;[1,2,3,4] 输出&#xff1a;[2,1,4,3…

摄像头监控系统/视频监控云平台EasyCVR鼠标指示故障,该如何解决?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

OLED硬件电路设计

OLED,全称有机自发光二极管。其主要通过控制注入子像素发光材料的电流大小&#xff0c;实现不同颜色的显示。 OLED屏幕的每个像素点都可以理解成一颗独立控制的灯珠&#xff0c;开启时只需要进行显示的像素点即可。不像LCD一样&#xff0c;显示需要整块背光的亮度&#xff0c;…

fastadmin传递参数给html和js,通过身份判断动态显示列表头部住店和离店按钮

首先将管理员或者酒店人员的身份传递给html和js做按钮显示权限 roomorder.php index.html {if $admin_id != 1}<a class="btn btn-success btn-change btn-start btn-disabled" data-params=

2023年总结及2024年目标之关键字“提速”

1. 感受 时光荏苒&#xff0c;都365天下来了&#xff0c;从一开始试水&#xff0c;到后面为素材焦虑&#xff0c;然后有存货了&#xff0c;渐渐也就习惯成自然了&#xff0c;现在回头看&#xff0c;还是那句话"事非经过不知难"&#xff0c;后面再来一句&#xff0c;…

【Linux操作系统】探秘Linux奥秘:进程与任务管理的解密与实战

&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《操作系统实验室》&#x1f516;诗赋清音&#xff1a;柳垂轻絮拂人衣&#xff0c;心随风舞梦飞。 山川湖海皆可涉&#xff0c;勇者征途逐星辉。 目录 &#x1fa90;1 初识Linux OS &…

SpringSecurity-2.7中跨域问题

SpringSecurity-2.7中跨域问题 访问测试 起因 写这篇的起因是会了解到 SSM(CrosOrigin)解决跨域,但是会在加入SpringSecurity配置后,这个跨域解决方案就失效了,而/login这个请求上是无法添加这个注解或者通过配置(WebMvcConfig)去解决跨域,所以只能使用SpringSecurity提供的.c…

Jmeter实现分布式并发

Jmeter实现分布式并发&#xff0c;即使用远程机执行用例。 环境&#xff1a; VMware Fusion Windows系统是win7。 操作过程 1、Master在jmeter.properties添加remote_hosts 2、Slave在jmeter.properties添加server_port 同时把remote_hosts修改为和主机&#xff08;Master…

c++初阶-------类和对象

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…
最新文章