写点什么

抽丝剥茧看时间序列预测

作者:CnosDB
  • 2022 年 9 月 25 日
    内蒙古
  • 本文字数:2385 字

    阅读完需:约 8 分钟

抽丝剥茧看时间序列预测

时间序列预测本质上允许企业通过分析以前的数据来预测未来的结果,并让企业了解数据趋势的方向。不过,时间序列预测并非没有挑战,要使用时间序列预测,我们就必须拥有过去的准确数据,并保证这些数据将代表未来事件。今天,我们就来聊聊时间序列预测。


本文仅代表个人观点,如有偏颇之处,还请海涵~

🤠🤠🤠

抽丝剥茧看时间序列预测


时间序列预测是一种通过分析历史数据来预测未来事件的方法。我们可以看到一些例子,比如:年作物产量、月度销售业绩、加密货币交易等。当我们拥有在一段时间内测量的定量数据时,我们就可以使用时间序列预测技术。当然要使其发挥作用,我们仍需要满足一些条件和标准。

条件标准

下面我们就通过举例子的方式来帮助大家理解这些条件和标准。


(1)定义业务问题:假设我们为一家在线出版物工作,公司的老板想要了解网站流量在几周内的波动情况。为了了解这个工作的重要性,我们一般都会询问老板他希望为了用这些数据干什么。这就引出了我们的第一个重要条件:我们要解决的业务问题是什么(定义业务问题)。假设我们想知道未来几周流量是否会急剧下降或增加 —— 如果流量在接下来的几周内似乎会下降,那么企业就会投入成本打广告。


(2)确保有足够的数据来捕获:为了回答上述问题并了解业务问题和可能的解决方案,我们需要拥有执行时间序列分析所需的数据。一般来说,企业拥有的数据越多越好。企业经常会捕获大量的数据,然后才能决定他们有兴趣询问哪些数据。


(3)选择精度:一般来说,我们预测得越远,预测结果就越不准确。通常,时间序列数据以时间戳格式记录,其中包含它发生的年、月、日、小时、分钟、秒和毫秒。无论是一天、一周还是一个月乃至更细的颗粒度,这都取决于我们的选择。在之前网络流量的例子中,我们的数据应该是每周一次,因为如果预测未来 1-2​​周会出现下降,公司希望在广告上支出更多。我们选择的粒度取决于业务需求以及何时需要采取行动。


(4)确定模型输出频率:因为预测是在每周级别进行的,并且要采取的动作是增加广告支出,所以在这个例子中,每 2 周输出一次模型预测是有意义的。我们需要检查预测结果,如果预计网络流量低于阈值,我们需要让广告运营团队增加广告支出以平衡流量的下降。在更高级别的系统中,一旦模型被验证高度有效,其输出甚至可以自动运行,这样业务决策可以更加高效。

常见应用

时间序列预测的应用场景有很多。首先,比如预测天气。我们可以通过区域周围的气候来预测天气情况。可用于执行此分析的变量可能包括:气温、一天中的时间、风速、风向、气压等。通过年复一年的观测,这些小时级或分钟级的数据,我们可以看到其存在季节性和周期性。同时,像地震这样的随机变量也会给这个时间序列模型的噪声。其次,预测股票价格变化也是常见的时间序列预测问题。要执行分析,我们需要在数小时、数天或数月内将特定股票的股票价格输入模型。这种方法很常见,但很难准确预测,所以我们也不指望有重大的突破。最后,预测电子商务网站的网络流量也是常见应用。预测网站上的 Web 交互也在时间序列预测的范围内。通过分析特定重要网页的综合浏览量和重要按钮的点击率,我们可以更详细地了解用户的行为。诸如此类的预测无处不在,在此不再一一举例。

所需元素

我们现在已经知道了时间序列预测的常见应用,下面让我们来看看构建时序模型的关键元素:


(1)级别。在一组时间序列数据中,级别是特定时间段内其值的平均值。我们可以看一个简单的例子,假设我们有 10 天的每日销售数据。如果我们要计算这 10 天的平均每日销售额,然后发现平均值为 100 元,那么这就是该数据的级别。


(2)季节性。在时间序列数据中,有规律的波动在一个日历年内发生。例如,由于季节而导致天气变化,意味着在某些条件下农作物产量高,这就是季节性因素。如果我们绘制一年中冰淇淋的销售量,我们也会看到夏季月份的销售量激增。在商业环境中,重要的是要考虑哪些季节性影响可能与公司的产品或者业务相关。


(3)趋势。每当所述数据发生长期变化(无论是积极的还是消极的)时,数据中的趋势都是可见的。我们这里所说的趋势是数据的长期移动方向,而不是社交媒体上稍纵即逝的趋势话题。一个简单例子是世界人口增长——它可能会在数月或数年内上下波动,但从图表中可以清楚地看出,从长远来看,随着时间的推移,越来越多的人生活在地球上。


(4)周期。数据中任何重复周期性的变化,一般以年为尺度。比如“商业周期”,它由四个阶段组成:繁荣、衰退、萧条和复苏。


(5)噪音。在时间序列预测中,不规则项是数据中随机的、无法解释的噪声,这些噪声是在隔离了上述其他成分后仍然存在的。这些噪音并不能有意义地用于进行预测的时间序列数据。

预测模型

说了这么多,下面我们就简要介绍一下常见的时间序列预测模型,目前常见的模型主要有以下几种:自回归模型(AR Model)、移动平均模型(MA Model)、自回归移动平均模型(ARMA Model)、自回归综合移动平均模型(ARIMA Model)、季节性自回归综合移动平均(SARIMA Model)、向量自回归模型(VAR Model)、矢量纠错模型(VECM Model)。


时间关系,这里我们仅简要介绍一下 AR Model。AR Model 的因变量是因变量过去值的线性函数。自回归模型的阶数表示为“p”,表示用于预测当前值的滞后数。例如,如果 p=0,则意味着我们正在根据前一个时间步长 (t-0) 预测当前时间步长 (t)。如果 p=n,那么我们将基于 n 个过去的时间步长来预测时间步长 (t)。自回归模型的一般形式可以表示为:

时间序列预测广泛的存在于我们的生活中,但从上文中我们也不难发现,我们要做好预测首先基础是存储好这些时间序列数据,没有数据存储何谈预测分析。专注于时间序列数据存储的 CnosDB 仍将不断完善自己的产品,为企业的时序分析助力。


CnosDB 简介

CnosDB 是一款高性能、高易用性的开源分布式时序数据库,现已正式发布及全部开源。

欢迎关注我们的代码仓库,一键三连:https://github.com/cnosdb/cnosdb

发布于: 刚刚阅读数: 3
用户头像

CnosDB

关注

还未添加个人签名 2022.04.18 加入

CnosDB是一个由社区驱动的开源时间序列数据库,适用于各种时序场景,如服务器/应用程序/性能指标/函数接口调用指标、网络流量/探测器数据、日志/市场交易记录等。代码仓库:https://github.com/cnosdb/cnosdb

评论

发布
暂无评论
抽丝剥茧看时间序列预测_IoT_CnosDB_InfoQ写作社区