时间序列 介绍(一)「建议收藏」

时间序列 介绍(一)「建议收藏」引言DT时代,数据的重要性已经不必再强调了。最近几年深度学习,机器学习,人工智能炙手可热,各行各业的人,无论是单纯的蹭热度也好,还是真的想做一些改变,都在往这三个概念上靠,但我相信,绝大部分人是真

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

引言

DT时代,数据的重要性已经不必再强调了。

最近几年深度学习,机器学习,人工智能炙手可热,各行各业的人,无论是单纯的蹭热度也好,还是真的想做一些改变,都在往这三个概念上靠,但我相信,绝大部分人是真的希望借着人工智能的‘好风’做出些成绩的。而这些所谓的‘高科技’对数据却又是强依赖的。 那么对数据深入了解,做到知己知彼,可以说是很有必要的。

数据中,有一种数据叫时间序列数据,是很重要的一种数据。这种数据在各行各业都占有很大的比重。目前,在金融界,时间序列的研究是最热的。没办法,人家那可是最直接的真金白银。而其他行业对此研究可就有点跟不节奏了。希望接下来的系列文章对大家能有所帮助。

1.时间序列分解

时间序列是按照时间次序排列的随机变量序列。如股价变动,CPU使用率波动等等。下图是某地历史上的降雨量时间序列图:(是不是感觉和你熟悉的数据样子差不多?)
时间序列 介绍(一)「建议收藏」

任何时间序列经过合理的函数变换后,都可以被认为是由三个部分叠加而成的,即:趋势项部分,周期项部分,以及随机噪声项部分。

用公式表示:

\[X_t = T_t + S_t + R_t, t = 1,2,3,… \]

其中 T是趋势项,S是周期项,R是随机项,X则是时间序列项。t代表的是时间。

研究时间序列的最主要目的当然是预测。 而从时间序列中把这三个部分分解出来是序列分析、预测的的首要任务,这一过程被称为时间序列分解(Time Series Decomposition, TSD)。

1.1 分解时间序列

趋势项是时间序列中总体的变化趋势,是缓慢的,长期的。一般先把趋势项分离出来,再依次分离周期项、随机项。其分解方式有以下几种:

1.1.1 分段常数法

这是最简单最直接的方法,比如,把股票的月均价做为股价的趋势变化。然后用时间序列减掉趋势项,剩下周期项与随机项。可再以周均值或日均值做为周期项,再减掉即剩下随机项了,也即随机项的估计了。

1.1.2回归趋势

另一种比较简单的趋势拟合即是采用线性回归。从趋势项的角度,可简单地认为时间序列与时间有简单的线性关系:

\[X_t = a + bt + \epsilon_t, \ \ t = 1,2,3,… \]

或者可以认为是二次曲线的趋势:

\[X_t = a + bt + ct^2 + \epsilon_t, \ \ t= 1,2,… \]

当然,一说到回归,选择也就多了起来,不必拘泥某一种形式,根据相关数据选择最优的模型是关键。

1.1.3 逐步平均法

可理解为在时间维度上的分段平均法。

1.2 平稳序列

可以看到,时间序列中的趋势项,以及周期项是比较容易提取的,其中应用到的知识也是比较长规,甚至可以说是简单。当剔除趋势项以及周期项,时间序列往往表现出某种平稳波动性,即平稳序列。我们之所以研究时间序列,或者说时间序列可研究,是因为我们认为时间序列数据是蕴含数据的变化信息的。基于此,我们才可以在知道历史数据时,对未来做出预测。而平稳性是要满足的一个条件。(如果不满足怎么办?那我们后面会谈到如何将非平稳的变成平稳序列。如果变不成呢?那就没辙了。

1.2.1基本概念

在讲平稳序列之前,我们先来说说基本概念:

随机变量序列\(\{Y_t: t= 0,\pm1,\pm2,…\}\) 称为一个随机过程,并以之作为观测时间序列模型。已知该过程完整的概率结构是由所有 Y 的有限联合分布构成的分布族决定的。大家不要被其中的关于随机过程的相关名词吓到,没必要,你只要知道他是以数学的方式来描述时间序列就够了。我只需关注下面的一些概念就可以了。

对于随机过程:\(\{Y_t: t= 0,\pm1,\pm2,…\}\)

  1. 均值函数:

    \[\mu_t = E(Y_t), t= 0,\pm1,\pm2,… \]

    \(\mu_t\) 恰是过程在t时刻的期望值,一般地,不同时刻\(\mu_t\) 可取不同的值。

  2. 自协方差函数:

    \[\gamma_{t,s} = Cov(Y_t,Y_s), t,s = 0,\pm1,\pm2,… \]

    其中 \(Cov(Y_t,Y_s) = E[(Y_t – \mu_t)(Y_s – \mu_s)] = E(Y_tY_s) – \mu_t\mu_s\)

  3. 自相关函数:

    \[\rho_{t,s} = Corr(Y_t,Y_s), t,s = 0,\pm1,\pm2,… \]

    其中\(Corr(Y_t,Y_s) = \frac{Cov(Y_t,Y_s)}{\sqrt{Var(Y_t)Var(Y_s)}} = \frac{\gamma_{t,s}}{\sqrt{\gamma_{t,t}\gamma_{s,s}}}\)

从上面可以推知:

\[\gamma{t,s} = \gamma{s,t}; \ \ \ \ \ \ \rho_{t,t} = 1 \]

\[\gamma_{t,t} = Var(Y_t);\ \ \ \ \ \ \ \ \ \rho_{t,s} = \rho_{s,t} \]

\[|\gamma_{t,s} \le \sqrt{\gamma_{t,t}\gamma_{s,s}}|; \ \ \ \ \ |\rho_{t,st} \le 1| \]

上面是最最基本的概念了,大家不要被公式吓到,你能看到这篇文章,99% 说明你上过大学,这些充其量也就是高中知识,多一分钟思考,之后的概念才好理解。以后不必要的公式绝不放上来,有用的公式我一定会‘大白话’给大家解释。’冻挖瑞~’

1.2.2随机游动

\(e_1, e_2\), … 为一列独立同分布随机变量序列,简记为\(e_1, e_2,\dots *i.i.d*. 假定 var(\)e_1$) = \(\sigma\), \(Ee_1 = 0\)

按下面的方式给出的序列{\(X_t\):和=1, 2, …},称为随机游动(random walk):

\[\left. \begin{aligned} X_1 & = & \epsilon_1 \\ X_2 & = & \epsilon_1 + \epsilon_2 \\ &\vdots& \\ X_t & = & \epsilon_1+\epsilon_2 + \dots+\epsilon_t \end{aligned} \right\} \]

等价地,(定义\(X_0\)= 0):

\[X_t = X_{t-1} + \epsilon_t, \ t = 1, 2, … \]

即 t 时刻的变量是与(t-1)时刻有关的。

刚可以很得到下面的一些结论:

\[\mu_t = EX_t = E(\epsilon_1 + \epsilon_2 + \dots + \epsilon_t) = 0,\ \ t=1, 2, … \]

\[\gamma_{t,s} = \sum_{i = 1}^t\sum_{j=1}^s cov(\epsilon_i,\epsilon_j) = s\sigma^2, 1 \le s \le t \]

\[\rho_{t,s} = \frac{\gamma_{t,s}}{\sqrt{\gamma_{t,t,}\gamma_{s,s}}} = \frac{s\sigma^2}{\sqrt{t\sigma^2s\sigma^2}} = \sqrt{\frac{s}{t}}, 1\le s\le t \]

这里也就是说,对于满足随机游动的时间序列,它的序列均值是0,方差是一个定值,t,s两时点的数据相关系数只与两者所在时间有关,而与其他无关。

下图是一个随机游动模拟的例子:

时间序列 介绍(一)「建议收藏」

1.2.3 平稳性

接下来,我们就要了解下平稳性的概念了。平稳性可分为严平稳以及宽平稳两种:

  1. 时间序列\(\{X_t : t= 0,\pm1,\pm2,…,\}\) 称为严平稳,若其(联合)概率分布具有推移不变性。即对任意整数\(s\le t\) 及正整数\(n \ge 1\),随机向量\((X_s,X_{s+1},…,X_{s+n})\)\((X_t,X_{t+1},…X_{t+n})\) 具有相同的(联合)概率分布。通俗地说,即随便取两段相同长度的时间序列数据,’看起来‘应该差不多,没有明显区别。

如果在生产生活中碰到严平稳数据应该高兴因为它一定会很好处理,但绝大部分都不符合严平稳的性质。但我们会经常碰到宽平稳数据:

  1. 时间序列\(\{X_t : t= 0,\pm1,\pm2,…,\}\) 称为宽平稳:若其满足如下3条:
  • \(EX_t^2 \le \infty, t=0,\pm1,\pm2,…\)
  • 均值函数为常数,$\mu_t = EX_t =c, t = 0,\pm1,\pm2,… $
  • 自协方差函数\(\gamma_{t,s}\) 只依赖于时间间隔(t-s) (等价地 ( s-t ) ),即:\(\gamma_{t,s} = \gamma_{s,t}, \ \ \ \ \ t,s = 0,\pm1,\pm2,…\)

以后指的平稳性,如无特指,即指的是宽平稳。

1.2.4 两类重要的平稳时间序列

  1. 白噪声

    设时间序列\(\{\epsilon_t: t = 0,\pm1,\pm2,\dots\}\) 满足:

    \[E\epsilon_t = 0, cov(\epsilon_t,\epsilon_s) = \left\{ \begin{aligned} \sigma^2, \qquad t = s && \\ && t,s = 0,\pm1,\pm2,\dots \\ 0 , \qquad t\ne t && \\ \end{aligned} \right. \]

    则称\(\{\epsilon_t\} =\{\epsilon_t: t = 0,\pm1,\pm2,…\}\) 为白噪声,简记为:\(\{\epsilon_t\}\sim WN(0,\sigma^2)\).

    可知对于白噪声:

    \[\gamma_k = \left\{\begin{aligned} \sigma^2, \quad k = 0 &&\\ && k = 0,\pm1,\pm2,…\\ 0, \quad k \ne 0. &&\\ \end{aligned}\right.​ \]

\[\rho_k = \left\{\begin{aligned} 1, \quad k = 0 &&\\ && k = 0,\pm1,\pm2,…\\ 0, \quad k \ne 0. &&\\ \end{aligned}\right. \]

白噪声的结构相对简单,但却是非常重要的,因为它是后面要讲的众多重要模型或序列的‘生成元’。

  1. 随机余弦波:

    这个也是一个重要的平稳时间序列,但可能后面很多讲都见不到,等见到,咱再讲也不迟。

1.3 总结

作为第一讲,我们从整体上了解了什么是时间序列,也讲了很多概念,更用了很多公式,这些是时间序列最最基本的东西,是后面的知识的基础,大家一定把这里的东西‘吃透’,那后面的知识就会比较轻松。

1.4 参考文献:

PS: 接下来基本上都是以下列文献作为参考文献,所以后面将不再罗列出来,除非新加入的文献,请知悉。

1: 何书元. 应用时间序列分析 北京:北京大学出版社,2003

2: Peter J. Brockwell, Rechard A. Davis 著, 田铮等译. 时间序列的理论与方法(第二版).北京:高等教育出版社,2001

3: Jonathon D. Cryer, Kung-Sik Chan 著,潘红宇等译.时间序列分析及应用:R语言(原书第二版).北京: 机械工业出版社,2011

4: Walter Enders 著,杜江;谢志超译. 应用计量经济学:时间序列分析(第二版).北京:高等教育出版社,2006.

5: Ruey S. Tsay 著,王远林等译.金融时间序列分析(第三版)北京:人民邮电出版社,2012.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167892.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月4日 下午3:00
下一篇 2022年8月4日 下午3:16


相关推荐

  • Dijkstra算法时间复杂度分析[通俗易懂]

    Dijkstra算法时间复杂度分析[通俗易懂]文章目录Dijkstra算法的思路与关键点Dijkstra算法的时间复杂度之前一直默认Dijkstra算法时间复杂度为o(n2)o(n^{2})o(n2),没有思考过具体的时间复杂度,今天把这个弄清楚。Dijkstra算法的思路与关键点思路:广度优先+松弛所有点分为两个集合SSS和TTT,SSS最开始只包括源点sss,剩余点都位于TTT。SSS集合表示已经计算出最短路径的点集合,TTT表示尚未计算出最短路径的点集合。每次从集合TTT中选出一个与集合SSS距离最短的点vvv,将点vvv加

    2022年5月15日
    41
  • idea缺少iml文件

    idea缺少iml文件当 idea 缺失 iml 文件后项目后 idea 就无法识别项目 会出现明明有这个 service 确无论如何也引用不了这时有两个方法解决一 刷新 maven 一般只要刷新 maven 就可以自动生成 iml 文件若是无法自动生成则使用第二种方法二 Alt F12 打开命令行 cd 进入具体缺少 iml 文件的目录下面执行 mvnidea module iml 文件就出现了 再次刷新 maven 就好了还有一种方法就是从同事哪里手动 copy 一下缺少的 iml 问件也是可以的最后若是帮助到你了帮忙点点赞哦

    2026年3月17日
    3
  • 用java实现笛卡尔积_Java实现笛卡尔积

    用java实现笛卡尔积_Java实现笛卡尔积publicclassSingleton{privatestaticSingletonintance;privateSingleton(){}publicstaticSingletongetInstance(){/**一开始多线程进来,遇到锁,一个线程进去,是为空,new对象;后续线程进入,不为空,不操作;最后直接返回*对象不为/***笛卡尔积工具类….

    2022年7月27日
    14
  • sql 聚合函数有哪些

    sql 聚合函数有哪些聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUPBY子句一同使用,SQLSERVER中具体有哪些聚合函数呢?我们来一一看一下:1.AVG返回指定组中的平均值,空值被忽略。例:selectprd_no,avg(qty)fromsalesgroupbyprd_no2.COUNT返回指定组中项目的数量。例…

    2022年6月21日
    26
  • java finalize 作用_java中的finalize方法有什么作用「建议收藏」

    java finalize 作用_java中的finalize方法有什么作用「建议收藏」java中的finalize方法是Object类中提供的一个方法,在GC准备释放对象所占用的内存空间之前,它将首先调用finalize()方法。finalize()方法是Object类中提供的一个方法,在GC准备释放对象所占用的内存空间之前,它将首先调用finalize()方法。其在Object中定义如下:protectedvoidfinalize()throwsThrowable{}…

    2026年1月23日
    5
  • Sublime Text 3 注册/激活方法

    Sublime Text 3 注册/激活方法Sublime是一款很好用的编辑器,虽然是免费使用,但是经常会弹出吆喝着让你购买(purchase)的弹窗,对一名优秀的强迫症来说看久了还是很烦人的。而且现在网上很多注册码都不可用。那么要怎么解决呢?下面提供两种解决方案。(我是在win10系统上操作的)二、方案方案一[1]1)建立一个bat文件(随便取个名字,如“runHost.bat”),复制以下代码到…

    2022年7月27日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号