时间序列建模三部曲

news2024/11/24 20:09:21

与大多数高级分析解决方案不同,时间序列建模是一种低成本解决方案,可提供强大的洞察力。

本文将介绍构建质量时间序列模型的三个基本步骤:使数据平稳,选择正确的模型并评估模型的准确性。这篇文章中的例子使用了一家主要汽车营销公司的历史页面浏览数据。最近我们被客户要求撰写关于时间序列建模的研究报告,包括一些图形和统计输出。

步骤1:

时间序列涉及使用按时间间隔(分钟,小时,天,周等)进行索引的数据。由于时间序列数据的离散性质,许多时间序列数据集都在数据中嵌入了季节和/或趋势元素。时间序列建模的第一步是考虑现有季节(固定时间段内的重复模式)和/或趋势(数据中的向上或向下移动)。考虑到这些嵌入式模式,我们称之为数据固定。下面的图1和图2可以看出趋势和季节数据的例子。

图1:向上趋势数据示例

图2:季节数据示例

什么是平稳性?

正如我们前面提到的,时间序列建模的第一步是消除数据中存在的趋势或季节的影响,以使其静止不动。我们一直在抛弃术语平稳性,但究竟意味着什么?

一个平稳的系列就是这个系列的平均值不再是时间的函数。有了趋势数据,随着时间的增加,该系列的平均值会随着时间的推移而增加或减少(想想随着时间的推移,房价会持续上涨)。对于季节性数据,系列的平均值会根据季节波动(考虑每24小时的温度增减)。

我们如何实现平稳?

有两种方法可用于实现平稳性,差异数据或线性回归。为了有所作为,您可以计算连续观察值之间的差异。要使用线性回归,可以在模型中包含季节性组件的二元指示符变量。在我们决定应用哪些方法之前,让我们来探索一下我们的数据。我们使用SAS Visual Analytics绘制历史日常页面浏览量。

图3:原始页面视图的时间序列图

最初的模式似乎每七天重复一次,表明每周的季节。随着时间的推移浏览页面数量的持续增长表明存在略微上升的趋势。随着数据的总体思路,我们应用了平稳性统计检验,增强型Dickey-Fuller(ADF)检验。ADF测试是平稳性的单位根检验。我们在这里不会涉及细节,但是单位根表明系列是否是非平稳的,所以我们使用这个测试来确定处理趋势或季节(差异或回归)的适当方法。基于上述数据的ADF测试,我们通过在一周中的某天回归虚拟变量来移除七天的季节,并通过区分数据来消除趋势。由此产生的平稳数据可以在下图中看到。

图4:删除季节和趋势后的平稳数据

第2步:建立您的时间序列模型

现在数据是平稳的,时间序列建模的第二步是建立一个基准水平预测。我们还应该注意到,大多数基准级预测不需要将数据平稳的第一步。这仅仅是更高级的模型所需要的,比如我们将要讨论的ARIMA建模。

建立基准预测

有几种类型的时间序列模型。要建立一个可以准确预测未来页面浏览量的模型(或者您对预测感兴趣的任何内容),有必要确定适合您数据的模型类型。

最简单的选择是假定y的未来值(您对预测感兴趣的变量)等于y的最新值。

第二种类型的模型是平均模型。在这个模型中,数据集中的所有观察值都被赋予相同的权重。y的未来预测以观测数据的平均值计算。如果数据是水平的,所产生的预测可能相当准确,但如果数据趋势化或具有季节性组成部分,则会提供非常差的预测。下面可以看到使用平均模型的页面查看数据的预测值。

图5:平均模型预测

如果数据具有季节性或趋势元素,那么对于基准级模型来说,更好的选择是实施指数平滑模型(ESM)。ESM在上述模型和平均模型之间找到了一个媒介,其中最近的观测被赋予了最大的权重,并且之前所有观测的权重都呈指数级下降到过去。ESM还允许将季节性和/或趋势分量纳入模型。下表提供了初始权重0.7以0.3的比率呈指数下降的例子。

Yt(目前的观察)0.7

YT-10.21

YT-20.063

YT-30.0189

YT-40.00567

表1:过去观察Y的指数下降效应的例子。

在时间序列预测中可以实施各种类型的ESM。使用的理想模型将取决于您拥有的数据类型。下表根据数据中的趋势和季节组合提供了使用何种类型的ESM的快速指南。

指数平滑模型的类型趋势季节

简单的ESM

线性ESMX

季节性ESMX

Winters ESMXX

表2:模型选择表

由于七天的强劲季节和数据的上升趋势,我们选择了一个冬季增温ESM作为新的基准水平模型。所产生的预测做了一个体面的工作,继续轻微的上升趋势并捕捉七天的季节。

图6:ESM预测

ARIMA建模

在确定了最能说明数据趋势和季节的模型后,您最终将获得足够的信息来生成一个体面的预测,如上面的图2所示。然而,这些模型仍然存在局限性,因为它们没有考虑到在过去一段时间内利益变量与自身的相关性。我们将这种相关性称为自相关,它通常在时间序列数据中找到。如果数据与我们的数据具有自相关性,那么可能会进行额外的建模,以进一步改进基线预测。

为了捕获时间序列模型中自相关的影响,有必要实施自回归整合移动平均(或ARIMA)模型。ARIMA模型包含了考虑季节和趋势的参数(例如使用虚拟变量来表示一周中的天数和差异),还允许包含自回归和/或移动平均项来处理数据中嵌入的自相关。通过使用适当的ARIMA模型,我们可以进一步提高页面浏览量预测的准确性,如图3所示。

图7:季节性ARIMA模型预测

第3步:评估模型的准确性

虽然您可以看到提供的每个模型的精度都有所提高,但从视觉上确定哪个模型具有最佳精度并不总是可靠的。计算MAPE(平均绝对误差百分比)是一种快速简便的方法,可以比较所提出模型的总体预测精度 - MAPE越低预测精度越好。比较先前讨论的每个模型的MAPE,很容易看出季节性ARIMA模型提供了最佳的预测精度。请注意,还有其他几种可用于模型比较的比较统计信息。

模型错误验证

Winters ESM6.9

季节性ARIMA4.4

表3:模型错误率比较

概要

总而言之,构建一个强大的时间序列预测模型的诀窍是尽可能多地消除噪音(趋势,季节和自相关),以便数据中唯一剩下的运动是纯粹的随机性。对于我们的数据,我们发现具有回归变量的季节ARIMA模型提供了最准确的预测。

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

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

相关文章

[附源码]Python计算机毕业设计SSM旅行网的设计与实现(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

从零搭建开发脚手架 注意Logback多个配置文档导致配置紊乱问题

文章目录背景查找logback内部状态以及生效的配置文件解决背景 最近项目中出现个问题,自定义的logback.xml不生效,排查发现项目中出现了2个logback.xml,另一个在依赖Jar中,使用的在依赖Jar中的logback.xml,导致我们自定…

Azkaban源码阅读与本地调试

1、架构 2、本地源码加载,gradle会下载依赖。 AzkabanWebServer 配置 参数如下: -Dlog4j.configuration=file:///D:\workspace_com\azkaban\azkaban\azkaban-web-server\src\main\resources\conf\log4j.properties -conf D:\\workspace_com\\azkaban\\azkaban\\azkaban-…

Unity实现摄像头录像功能

Unity实现摄像头录像功能 前言 在之前的很多展馆展示的项目中,甲方有很多要求实现用摄像头录像的功能。使用Unity实现调用USB摄像头画面的功能非常容易实现,但是实现录屏的功能有一些困难,我使用了几种方法都没有实现出想要的效果&#xff…

广播实现强制下线功能

实现强制下线功能 强制下线应该是一个比较常用的功能,比如QQ在比的地方被登陆了,就会强制比被挤下线.强制下线的功能还是比较简单的,只需要在界面上弹出一个框,告知用户无法再进行任何操作即可.只能点击确定然后跳转至登录界面.强制下线功能需要关闭所有的Activity,然后返回到…

5 - 2 单选题

1.下列线索二叉树中(用虚线表示线索),符合后序线索树定义的是:B 后序线索二叉树的构建流程就是: 1.后序遍历二叉树:d b c a 2.第一个结点的前驱是NULL,即d的前驱,d的左孩子为NULL …

在 Android 中创建静态应用程序快捷方式

您是否在日常应用程序中看到过快捷方式示例?可能像 Instagram、Discord、Medium 等。提供它们是为了帮助我们快速导航到应用程序内部的特定功能、屏幕或部分,而无需逐步浏览它们。 在本文中,我们将逐步实现静态快捷方式。但在我们开始编码之前,我们需要知道这个快捷方式到底…

大数据(9h)FlinkSQL之Lookup Join

文章目录概述pom.xmlMySQL建表对应Flink的建表SQLLookup JoinFlinkSQL完整Java代码概述 lookup join通常是 查询外部系统的数据 来 充实FlinkSQL的主表 例如:事实表 关联 维度表,维度表在外部系统(如MySQL)要求: 1个表…

中国多媒体与网络教学学报杂志社中国多媒体与网络教学学报编辑部2022年第9期目录

多媒体信息技术《中国多媒体与网络教学学报》投稿:cn7kantougao163.com 采油工程探索式虚拟仿真实验教学实践——以有杆抽油系统实验为例 窦祥骥 ;何岩峰 ;张少辉 ;王相 ;徐慧 ; 1-5 人体寄生虫课程网络虚拟实验环境的构建及其应用研究 周蕾;贺帅;李晓琳;席…

深入理解mysql执行的底层机制

MySql系列整体栏目 内容链接地址【一】深入理解mysql索引本质https://blog.csdn.net/zhenghuishengq/article/details/121027025【二】深入理解explain以及索引优化https://blog.csdn.net/zhenghuishengq/article/details/124552080【三】深入理解mysql事务本质https://blog.cs…

3dmax如何进行网络渲染?网渲云渲染渲染农场怎么用?

渲染本身是将3d模型转换为2d图像的一个过程,而网络渲染就是把3d模型放在云端进行完成,而本地我们只需要等待结果就好。而云渲染也就是网渲的标准称呼,两个是一个意思。 那怎么进行网络渲染呢? 首先我们需要下载网络渲染客户端&a…

03-Docker-Docker镜像的分层概念

目录 一、镜像是什么 二、UnionFS(联合文件系统) 三、Docker镜像加载原理 四、将容器生成为镜像Commit命令 一、镜像是什么 是一种轻量级、可执行的独立软件包,包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好…

TextBox文本框与PasswordBox密码框水印

在开发一个软件和网页的时候,都会有一个功能,那就是登陆功能,有了登陆那就一定需要用户输入账号和密码,我们在写登陆页面都会想到使用TextBox和PasswordBox去完成这两个功能,但是有一个问题,那就是如果你使…

java EE初阶 — 线程的状态

文章目录1.状态的基本认识2.观察线程的所有状态3.线程状态和状态转移4.多线程的意义1.状态的基本认识 NEW 创建了 Thread 对象,但是还没调用 start(内核里还没有创建对应的PCB)TERMINATED 表示内核中的 PCB 已经执行完毕了,但是 …

zabbix监控触发器与报警动作

目录 一、环境准备 1、搭建zabbix基础环境 2、创建被监控主机 二、触发器概念 三、创建触发器 1、创建触发器步骤 2、触发器表达式 (1)表达式格式 (2)表达式函数 3、配置触发器 四、创建报警动作 1、设置邮箱服务器 …

学生选课系统

项目描述 通过项目背景的分析以及了解到现在学校面临的问题,特别需要一个选课管理系统保证学生信息以及各种课程成绩的准确性和实效性,通过利用计算机的高速计算和快速的统计分析,保证学生信息的最新记录。从教职工的角度老考虑,…

网络套接字编程(UDP协议)

文章目录预备知识socket(网络套接字)编程接口简单的UDP网络程序增加多用户可以互相通信预备知识 网络字节序 大端存储:数据的高字节内容保存在内存的低地址处,数据的低字节内容保存在内存的高地址处 小端存储:数据的高…

婚纱预订小程序开发,商家线上展示平台

婚纱代表着纯洁与忠贞,也是爱情永恒的见证者,穿上洁白的婚纱嫁给自己心爱的人是每个女生的梦想,婚纱对于每一个女生来说都有着重要的意义,所以选择一件美丽且适合的婚纱非常重要,因此人们在选择婚纱时会花费很多的时间…

MySQL数据库之索引

目录 一、MySQL索引简介 二、索引的作用 1、优点 2、缺点 三、创建索引的原则依据 四、索引的分类和创建 1、普通索引 2、唯一索引(创建唯一键即创建唯一索引) 3、主键索引(和创建主键的方式一样) 4、组合索引&#xff…

Python标准库之copy

1. copy标准库简介 Python 中赋值语句不复制对象,而是在目标和对象之间创建绑定 (bindings) 关系。对于自身可变或者包含可变项的集合对象,我们有时会需要生成其副本用于改变操作,进而避免改变原对象。 2. copy常用函数 2.1 copy.copy(x) …