这篇博客主要记录人大出版《应用时间序列分析》第一章的笔记。

时间序列数据

数据类型

数据分析中的数据大致分为三类:时间序列数据、横截面数据、面板数据。下面分别介绍这三类数据。

时间序列数据:在不同时间点搜集到的数据,这些数据通常会随时间的变化而变化。比如股票价格、每日温度等

横截面数据:在相同或近似相同时间点搜集到的数据。比如绝大多数通过问卷调查搜集到的数据、人口普查数据

面板数据:针对不同对象在一段时间中搜集到的数据,可以理解为横截面随时间变化的数据,综合了时序数据与横截面数据的特点。比如所有股票在2018年的收盘价,数据结构如下表所示:

日期 贵州茅台 上海汽车 中国软件 ... 通达信
2018-01-01          
2018-01-02          
...          
2018-12-31          

上表中每一行都是横截面数据,每一列都是是时序数据,是最简单的面板数据示例。上表仅展示了收盘价一个变量,多个变量的面板数据无法在一个二维表中展示,可以将这些二维表堆叠成为三维表。

时间序列数据与横截面数据的不同

为什么要区分数据类型呢?为什么要专门针对时序数据开发算法呢?这是因为时间序列数据与横截面数据的性质不同。横截面数据的样本采自同一总体,用于估计同一个随机变量;而时序数据的样本点采集自不同的时间,属于不同的随机变量。横截面数据的样本之间一般没有相关性;而时序数据则存在较强的自相关性。

举个例子,用户对CSDN的满意度是一个随机变量,为了探究这一随机变量我们做一次满意度调查,这些调查的数据均是这一随机变量的样本。而北京市在夏天与冬天的温度显然是不同的随机变量。用表来表示的话如下:

随机变量 X1 X2 X3 Xt
样本 x1 x2 x3 xt

X1, X2, X3, Xt是每个时间点上的随机变量,x1, x2, x3, xt是每个时间点上的观测值。我们可以得出时间序列的第一个特点:不同的时间点对应着不同的随机变量,每个时点上的随机变量仅有一个观测值。这也是时间序列数据与横截面数据最大的不同。

众所周知,统计学需要基于大样本,否则得出的结论是不靠谱的。而时间序列数据中每个随机变量仅有一个观测值,这使得无法直接使用横截面数据的算法来分析时间序列数据。

时间序列数据通常是以上一个时点为基础来变化的,比如股票的涨跌幅均是在前一日的收盘价基础上计算。即使不是以上一个时点为基础来变化,也会由于惯性或者向均值回归而与之前的数据产生这样或者那样的联系。所以时间序列数据往往具有较强的自相关性。

平稳性

之所以要提出平稳性这个概念,是由于不同的时间点对应着不同的随机变量,每个时点上的随机变量仅有一个观测值。而当样本容量为1时,所有的统计学方法全都失效。那么我们就无法分析时间序列数据了。

解决样本容量过少问题的最直观方法就是增大样本量,这在横截面数据的分析中可行,但是时间具有单向一维性,不可重来,我们无法重新观测已经发生过的事件。平稳性就是为了解决样本容量为1的问题。

平稳性分为严平稳与宽平稳,由于严平稳的时序十分罕见,下面仅仅介绍宽平稳的定义:

宽平稳时序是指一阶矩与二阶矩均平稳的时间序列。简单来说,就是任取t,有  是常数,当k固定时, 也是常数。即宽平稳时间序列中所有随机变量的均值、方差存在且为常数,协方差仅仅与时间间隔有关

我们把  称作自协方差函数,简记为  。

可以看出,如果时序具有宽平稳性,均值、方差与自协方差均不会随着时间的改变而改变,可以使用横截面数据的分析方法进行区间估计与假设检验。值得注意的是,宽平稳时间序列仅仅在二阶矩的范围内平稳,这意味着我们不能将宽平稳时间序列直接当作横截面数据进行处理,否则会出现一些问题。比如,如果将具有强自相关性的宽平稳时间序列进行线性回归建模依然会导致虚假回归的问题。(关于虚假回归的问题会在后续博客中介绍)

那么对于非平稳时序如何进行分析呢?我们通常会使用差分等操作将非平稳时序转化为平稳时序后再进行操作。

自协方差函数与自相关函数

由于时间序列通常具有较强的自相关性,我们通常使用自协方差函数与自相关函数(ACF)来描述时间序列。当时间序列具有宽平稳的性质时,可以使用样本数据来估计它们,下面介绍ACF(k)的计算方法。

假设时序  共有T期观测值,我们可以构建出 T - k 个数组。计算这T - k 个数组组成的dataframe的样本协方差,将协方差除以时序方差的点估计即可以得到自相关函数的点估计。

单纯计算ACF值是没有意义的,我们还需要对 ACF(k) 进行显著性检验,这通常使用ACF图来进行检验,在Python中画ACF图的代码如下:

from statsmodels.graphics.tsaplots import plot_acf
import matplotlib.pyplot as plt
plot_acf([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], lags=9, alpha=0.05)
plt.show()

结果如下:

纵轴是ACF(k),横轴是k,蓝色区域是95%置信区间。plot_acf模型中的lags是图中显示的最大k数,alpha是显著性水平。

当铅垂线端点在蓝色区域外时,我们认为该ACF(k)显著。如果在k之后没有ACF(k)显著,则称该时间序列ACF k 阶截尾。如果一直有ACF(k)显著,则称该时间序列ACF 拖尾。

问题1:为什么ACF(0) = 1?

问题2:  为什么lags越大置信区间越宽?

思考一下,下面给答案:

答案1:ACF(0)即自己与自己的相关系数,恒为1

答案2:用样本估计ACF(k)时共使用了T - k 个样本。k越大则样本量越小,相同置信水平下的置信区间越大

误区

  1. 将时序数据直接当作横截面数据处理!!比如直接估计均值与方差,直接进行回归等。正确的做法是使用专门的时序模型进行分析。
  2. 在检验时序的平稳性通过后就把时序数据直接引入回归方程!!ADF检验与PP检验均是检验时序的宽平稳性质,针对宽平稳时序也只能进行二阶矩以内的数据分析方法,直接引入回归方程依然有可能会导致虚假回归的问题!正确的做法是使用ARIMAX模型。
  3. 在使用ACF图定阶之前不检验时序的平稳性!!只有平稳时序的ACF才是常数,才能够使用样本估计,理论上讲仅有平稳时序的ACF图才是有意义的。如果一定要针对非平稳时序画ACF图,则ACF图的显著性检验失效。

时间序列数据、自协方差函数、自相关函数与平稳性相关推荐

  1. 时间序列分析学习笔记:时间序列的预处理(平稳性检验、纯随机性检验)

    1 时间序列预处理 2 平稳性检验 2.1 特征统计量(概率分布的意义) 2.2 时间序列的概率分布 2.3 概率分布族应用的局限性 2.4 特征统计量(均值.方差) 2.5 平稳时间序列的定义(严平 ...

  2. 时间序列的数据分析(七):数据平稳性

    之前已经完成了六篇关于时间序列的博客,还没有阅读过的读者请先阅读: 时间序列的数据分析(一):主要成分 时间序列的数据分析(二):数据趋势的计算 时间序列的数据分析(三):经典时间序列分解 时间序列的 ...

  3. 【R语言实验】基于R语言的时间序列平稳性检验

    一.实验项目名称:基于R语言的时间序列平稳性检验 二.实验目的与要求: 平稳时间序列的概念,平稳性检验的时序图检验方法和自相关图检验方法. 三.实验原理: 时序图和自相关图检验时间序列的平稳性依据: ...

  4. panda提取时间戳中的日期_Pandas处理时间序列数据的20个关键知识点

    时间序列数据有许多定义,它们以不同的方式表示相同的含义.一个简单的定义是时间序列数据包括附加到顺序时间点的数据点. 时间序列数据的来源是周期性的测量或观测.许多行业都存在时间序列数据.举几个例子: 一 ...

  5. pandas rolling方法_Pandas处理时间序列数据的20个关键知识点

    时间序列数据有许多定义,它们以不同的方式表示相同的含义.一个简单的定义是时间序列数据包括附加到顺序时间点的数据点. 时间序列数据的来源是周期性的测量或观测.许多行业都存在时间序列数据.举几个例子: 一 ...

  6. Pandas处理时间序列数据的20个关键知识点

    ​ 时间序列数据有许多定义,它们以不同的方式表示相同的含义.一个简单的定义是时间序列数据包括附加到顺序时间点的数据点. ​ 时间序列数据的来源是周期性的测量或观测.许多行业都存在时间序列数据.举几个例 ...

  7. R语言检验时间序列的平稳性:使用tseries包的adf.test函数实现增强的Dickey-Fuller(ADF)检验、检验时序数据是否具有均值回归特性(平稳性)、不具有均值回归特性的案例

    R语言检验时间序列的平稳性:使用tseries包的adf.test函数实现增强的Dickey-Fuller(ADF)检验.检验时序数据是否具有均值回归特性(平稳性).不具有均值回归特性的案例 目录

  8. R语言检验时间序列的平稳性(tseries包adf.test):时间序列数据是zoo或xts对象,使用coredata函数提取原始数据,再将其传递给adf.test函数

    R语言检验时间序列的平稳性(tseries包adf.test):时间序列数据是zoo或xts对象,使用coredata函数提取原始数据,再将其传递给adf.test函数 目录

  9. R语言检验时间序列的平稳性:使用tseries包的adf.test函数实现增强的Dickey-Fuller(ADF)检验、检验时序数据是否具有均值回归特性(平稳性)、具有均值回归特性的案例

    R语言检验时间序列的平稳性:使用tseries包的adf.test函数实现增强的Dickey-Fuller(ADF)检验.检验时序数据是否具有均值回归特性(平稳性).具有均值回归特性的案例 目录

最新文章

  1. [UE4]判断2个向量是否相等
  2. Stanford University C++课程
  3. python爬虫实例--爬取拉勾网
  4. JMS Java消息服务(Java Message Service)
  5. android中viewpager+fragment,Android开发之ViewPager+Fragment
  6. 【Java从0到架构师】Servlet_JSP
  7. MaxScale Binlog Server实践
  8. 一维二维_Excel教程:二维转一维,方法你绝对没用过
  9. Fultter 实战No toolchains found in the NDK toolchains folder for ABI arm-linux-androideabi
  10. Windows bat命令解压缩文件360zip
  11. IDEA合并SVN分支代码到主干
  12. 电阻阻值换算关系和色环电阻度数
  13. 华为手机android怎么解锁,华为手机解锁密码忘了怎么办?华为手机找回锁屏密码方法...
  14. 全国各地电信DNS服务器地址:
  15. Quartus-II 13.1 详细安装、注册、配置步骤
  16. 2014年感悟:一万年太久,只争朝夕
  17. 【Python 3.7】序数:序数表示位置,如 1st和 2nd。大多数序数都以 th结尾,只有 1、2和 3 例外。
  18. CHM [CHM 电子书 文件格式 定义规范]
  19. 中国石油大学天梯赛真题模拟第三场
  20. linux的qt下wsadata,Qtcpserver仅在调试器下返回listen函数的未知错误

热门文章

  1. 比普通定投高20%的支付宝智能定投策略,30行代码轻松复现
  2. ZigBee、WiFi、蓝牙的区别
  3. 我多想时光都可以典当,你回来带我赎回过往
  4. matlab如何打开dcm_Matlab绘图简明手册
  5. HTML5的字体样式设置方法
  6. Xd等设计可用的相关资源整理
  7. 【C#】 enum 还能这么玩
  8. Xftp6XShell6下载地址
  9. 以太坊私有链POA模式
  10. java nas 存储_虚拟机NAS存储的安装