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

@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.mzph.cn/news/591963.shtml

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

相关文章

nginx源码分析-4

这一章内容讲述nginx的模块化。 ngx_module_t&#xff1a;一个结构体&#xff0c;用于描述nginx中的各个模块&#xff0c;其中包括核心模块、HTTP模块、事件模块等。这个结构体包含了一些模块的关键信息和回调函数&#xff0c;以便nginx在运行时能够正确地加载和管理这些模块。…

UE5.1_Gameplay Debugger启用

UE5.1_Gameplay Debugger启用 重点问题&#xff1a; Gamplay Debugger启用不知道&#xff1f; Apostrophe、Tilde键不知道是哪个&#xff1f; Gameplay调试程序 | 虚幻引擎文档 (unrealengine.com) Gameplay Debugger

day02 有序数组的平方 长度最小子数组 螺旋矩阵

题目1&#xff1a;977 有序数组的平方 题目链接&#xff1a;977 有序数组的平方 题意 返回非递减整数数组的每个数字的平方和 也按照递减排序 双指针★ 代码 class Solution { public:vector<int> sortedSquares(vector<int>& nums) {vector<int>…

VMware 虚拟机 ubuntu 20.04 硬盘扩容方法

前言 最近由于需要编译 【RK3568】的 Linux SDK&#xff0c;发现 虚拟机默认的 200G 空间不足了&#xff0c;因此想增加这个 200G 空间的限制&#xff0c;通过网络上查找了一些方法&#xff0c;加上自己亲自验证&#xff0c;确认 硬盘扩容 正常&#xff0c;方法也比较的容易&a…

Vue:Vue与VueComponent的关系图

1.一个重要的内置关系&#xff1a;VueComponent.prototype.proto Vue.prototype 2.为什么要有这个关系&#xff1a;让组件实例对象&#xff08;vc&#xff09;可以访问到 Vue原型上的属性、方法。 案例证明&#xff1a; <!DOCTYPE html> <html lang"en"&…

Java日期和时间(二)

新增的日期和时间 为什么要学习新增的日期和时间 1、代替Calendar LocalDate&#xff1a;年、月、日 LocalTime&#xff1a;时、分、秒 LocalDateTime&#xff1a;年、月、日、时、分、秒 ZoneId&#xff1a;时区 ZoneldDatetime&#xff1a;带时区的时间 2、代替Date Instan…

解决npm,pnpm,yarn等安装electron超时等问题

我在安装electron的时候&#xff0c;出现了超时等等各种问题&#xff1a; &#xff08;RequestError: connect ETIMEDOUT 20.205.243.166:443&#xff09; npm yarn&#xff1a;Request Error: connect ETIMEDOUT 20.205.243.166:443 RequestError: socket hang up npm ER…

【排序】堆排序(C语言实现)

文章目录 前言1. 堆排序1.1 堆排序的思想1.2 堆排序的实现 2. 为什么向下调整而不是向上调整 前言 本章主要会讲堆排序的实现过程以及向上调整和向下调整的时间复杂度&#xff0c;在学习本章前&#xff0c;需要对堆、以及向上调整和向下调整有一个了解&#xff0c;如果不了解的…

vite+Vue3学习笔记(3)——界面设计

1 Element-plus 这是一个基于Vue3的组件库&#xff0c;能够快速构建界面样式。 官网链接&#xff1a; https://element-plus.gitee.io/zh-CN/guide/design.html 1.1 基础组件 1.1.1 安装 项目中的终端输入&#xff1a; npm install --save element-plus 1.1.2 引用 1.1.2.1…

图论及其应用(匈牙利算法)---期末胡乱复习版

目录 题目知识点解题步骤小结题目 T1:从下图中给定的 M = {x1y4,x2y2,x3y1,x4y5},用 Hungariam算法【匈牙利算法】 求出图中的完美匹配,并写出步骤。 知识点 关于匈牙利算法: 需要注意的是,匈牙利算法仅适用于二分图,并且能够找到完美匹配。什么是交替路?从一个未匹…

BDD - Python Behave Retry 机制

BDD - Python Behave Retry 机制 引言Behave RetryBehave Retry 应用feature 文件创建 step 文件Retry运行 Behave 并生成 rerun 文件重新运行失败的场景 引言 在日常运行测试用例&#xff0c;有时因为环境不稳定造成一些测试用例跑失败了&#xff0c;如果能将这些失败的测试用…

计算字符串的长度几种方法 | 递归 | 指针减指针 | 计数器 | C语言 | 详解 | 期末考试必看!!!

一&#xff0c;使用 递归 计算 字符串 的 长度 1&#xff0c;题目描述 2&#xff0c;分析题目 Ⅰ&#xff0c;题目中要求除了函数的形参&#xff0c;函数中不能够使用多余的变量&#xff08;这是比较苛刻的要求&#xff09;。 Ⅱ&#xff0c;根据此&#xff0c;很自然的…

k3s-安装、卸载、证书过期x509

k3s-安装、卸载、证书过期 K3S 是轻量级的 Kubernetes。易于安装&#xff0c;仅需要 Kubernetes 内存的一半&#xff0c;所有组件都在一个小于 100 MB 的二进制文件中。 环境准备 # 配置yum源 yum install -y yum-utils yum-config-manager --add-repo http://mirrors.aliyu…

回归预测 | MATLAB实OOA-LSTM基于鱼鹰优化算法优化长短期记忆网络的多输入单输出数据回归预测模型 (多指标,多图)

回归预测 | MATLAB实OOA-LSTM基于鱼鹰优化算法优化长短期记忆网络的多输入单输出数据回归预测模型 &#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实OOA-LSTM基于鱼鹰优化算法优化长短期记忆网络的多输入单输出数据回归预测模型 &#xff08;多指标&a…

20231228在Firefly的AIO-3399J开发板的Android11的挖掘机的DTS配置单前置摄像头ov13850

20231228在Firefly的AIO-3399J开发板的Android11的挖掘机的DTS配置单前置摄像头ov13850 2023/12/28 10:42 【碰到一个很神奇的问题】&#xff1a; 昨天晚上前置摄像头怎么也点不亮&#xff01;改了巨多的地方&#xff01;晚上睡觉之前把开发板彻底断电了&#xff01;今天开电脑…

STM32的在线升级(IAP)实现方法:BOOT+APP原理详解

0 工具准备 Keil uVision5 Cortex M3权威指南&#xff08;中文&#xff09; STM32参考手册 1 在线升级&#xff08;IAP&#xff09;设计思路 为了实现STM32的在线升级&#xff08;IAP&#xff09;功能&#xff0c;通常会将STM32的FLASH划分为BOOT和APP两个部分&#xff0c;BOO…

虚幻UE 光源-色温和光度学

文章目录 一、色温二、光度学1、lux勒克斯2、cd坎德拉3、nit尼特4、总结 三、EV曝光值 一、色温 色温可以简单的认为就是颜色的温度。 但他是有范围的&#xff0c;也是有要求的&#xff0c;并不是所有的颜色都可以有色温。 以上就是色温范围图。 而这些颜色的温度是怎么定义…

【算法每日一练]-数论 (保姆级教程 篇2 )#行列式 #甜甜花研究 #约数个数 #模数 #数树 #盒子与球

目录 今日知识点&#xff1a; 辗转相减法化下三角求行列式 组合数动态规划打表 约数个数等于质因数的次方1的乘积 求一个模数 将n个不同的球放入r个不同的盒子&#xff1a;f[i][j]f[i-1][j-1]f[i-1][j]*j 行列式 甜甜花的研究 约数个数 模数 数树 盒子与球 行列…

github短视频去除水印项目Douyin_TikTok_Download_API介绍

当下正值短视频盛行的时代。在我们浏览短视频的同时&#xff0c;经常能发现一些精美的图片、引人入胜的文案以及吸引眼球的视频&#xff0c;想要将它们保存到本地。然而&#xff0c;保存下来的图片或视频通常伴随着不太愉悦的水印&#xff0c;这显著降低了使用体验。因此&#…

开源数据可视化分析工具DataEase本地部署并实现远程访问

目录 前言 1. 安装DataEase 2. 本地访问测试 3. 安装 cpolar内网穿透软件 4. 配置DataEase公网访问地址 5. 公网远程访问Data Ease 6. 固定Data Ease公网地址 结语 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊聊开源数据可视化分析工…