时间序列分析原理

一、定义

时间序列,是指将某种现象某一个统计指标在不同时间上的各个数值,按时间先后顺序排列而形成的序列
生活中各领域各行业有很多时间序列的数据,销售额,顾客数,访问量,股价,油价,GDP,气温。。。

二、平稳性

2.1 平稳性定义

平稳序列(stationary series)是基本上不存在趋势的序列。这类序列中的各观察值基本上在某个固定的水平上波动,虽然在不同的时间段波动的程度不同,但并不存在某种规律,其波动可以看成是随机的。

严平稳与弱平稳:

严平稳:严平稳表示的分布不随时间的改变而改变。
如:白噪声(正态),无论怎么取,都是期望为0,方差为1

白噪声序列的特点表现在任何两个时点的随机变量都不相关,序列中没有任何可以利用的动态规律,因此不能用历史数据对未来进行预测和推断。
定义:如果时间序列{εt,t=1,…,T}满足:
(1)E(εt)=0,Var(e)=σ2;
(2)对任意s≠t,εt和εs不相关,即E(εtεs)=0,
则称{εt,t=1,…,T}为白噪声序列,简称白噪声( white noise)。

宽平稳:期望与相关系数(依赖性)不变

未来某时刻的t的值Xt就要依赖于它的过去信息,所以需要依赖性

2.2平稳性的意义

预测经济系统(或其相关变量)的走势,是我们建立经济计量模型的主要目的。而基于随机变量的历史和现状来推测其未来,则是我们实施经济计量和预测的基本思路。这就需要假设随机变量的历史和现状具有代表性或可延续性。换句话说,随机变量的基本特性必须能在未来一个长时期里维持不变。否则,基于历史和现状来预测未来的思路便是错误的。

样本时间序列展现了随机变量的历史和现状,因此所谓随机变量基本性态的维持不变也就是要求样本数据时间序列的本质特征仍能延续到未来。

我们用样本时间序列的均值、方差、协(自)方差来刻画该样本时间序列的本质特征。于是,我们称这些统计量的取值在未来仍能保持不变的样本时间序列具有平稳性。可见,一个平稳的时间序列指的是:遥想未来所能获得的样本时间序列,我们能断定其均值、方差、协方差必定与眼下已获得的样本时间序列等同。也就是说,均值、方差、协方差必定为常数,不然就是不平稳的,即x和e无关,e服从标准正态分布。那么由此公式生成的时间序列就为非平稳序列。

三、单位根检验

3.1单位根定义

ADF检验全称是 Augmented Dickey-Fuller test,可以认为是一个自回归过程:
X_t = \alpha*X_{t-1} +e_t,其中r( X, e) = 0 , e\sim N(0,1)

  • 如果|a|<1,则上式为平稳序列
  • 如果|a|=1,就是单位根过程

当单位根存在时,自变量和因变量之间的关系具有欺骗性,因为残差序列的任何误差都不会随着样本量(即时期数)增大而衰减,也就是说模型中的残差的影响是永久的。这种回归又称作伪回归。如果单位根存在,这个过程就是一个随机漫步(random walk)。

我们用Python写个简单的函数来测试一下

def time_series(a,n):#a为系数,n为序列长度
    x = [0.0] * n #序列为n的数列
    x[0] = 0.0    #起始的数据定义为0
    for i in range(1,n):
        x[i] = a*x[i-1] + np.random.normal(0, 1, 1)#随机生成数据
    pd.DataFrame(x)[0].astype(float).plot(label = '%.2f,%d'%(a,n) ) 
    plt.legend(loc='best',fontsize = 30)
    return x       

我们先看当a<1时,

fig, ax = plt.subplots(figsize = (15,9))

plt.subplot(221)
x1=time_series(0.05,1000)

plt.subplot(222)
x1=time_series(0.5,1000)


plt.subplot(223)
x1=time_series(0.99,1000)


plt.subplot(224)
x1=time_series(0.99,10000)
a < 1
  • 当a = 0.05时,我们可以发现生成的1000条数据基本上是在0为中心的附近上下波动,没有明显的趋势
  • 当a = 0.5时,我们可以发现生成的1000条数据基本上是在0为中心的附近上下波动,但是上下波动的范围明显要比a = 0.05时要大一些,但没有明显的趋势
  • 当a = 0.99时,我们可以发现生成的1000条数据已经开始有些上升的趋势了
  • 当a = 0.99,当我们把数据加大到10000条时,我们发现数据又呈现在0为中心的附近上下波动的平稳数据了,但是上下波动的范围明显要比a = 0.05时要大很多;

结论:
在a<1时

a越大,数据的波动范围越大

a越大, 时间序列的趋势性越强,回归到均值所需的时间越久.

只要 a<1 , 时间序列依然围绕均值0上下波动,只是波动范围越大,回到均值所用时间拉长而已.

我们先看当a=1时,

fig, ax = plt.subplots(figsize = (15,9))

plt.subplot(221)
x1=time_series(1,100)

plt.subplot(222)
x1=time_series(1,1000)


plt.subplot(223)
x1=time_series(1,5000)


plt.subplot(224)
x1=time_series(1,10000)
a=1

a=1时,数据会呈现明显的向上或者向下的趋势
无论时间多久,序列几乎不可能回到均值0, 这是非平稳时间序列的典型特征. 序列具有记忆性, 每次在新的起点上加入新的冲击,而历史冲击不会衰减.

序列越长,历史冲击的影响越来越小。 通过不同序列长度对比可知,正是这种历史冲击的影响差异,造成单位根过程无法回到均值附近。

结论:
记忆性越差,数据随机性越强,越能快速回到均值附近.

3.2 单位根检验

ADF检验就是判断序列是否存在单位根:如果序列平稳,就不存在单位根;否则,就会存在单位根。

ADF检验的 H0 假设就是存在单位根,如果得到的显著性检验统计量小于三个置信度(10%,5%,1%),则对应有(90%,95,99%)的把握来拒绝原假设。

我们使用statsmodels包里面的adfuller来进行检验
随机生成一组数据

x1=time_series(0.05,10000)

from statsmodels.tsa.stattools import adfuller
print(adfuller(x1))
平稳序列
(-69.12230006382143, 0.0, 1, 9998, {'1%': -3.431004228818807, '5%': -2.8618291302145686, '10%': -2.566923898875394}, 28018.032277372364)

第一部分是τ(tao)统计量的值。
第二部分是p_value的值。
第三部分是结果使用的延迟阶数。
第四部分是ADF回归和计算临界值所使用的观察次数。
第五部分是临界值。
第六部分是最大的信息准则的值(如果autolag 非空),也就是AIC或者BIC的值。
当我们看序列是否平稳的结果时,一般首先看第二部分的p_value值。如果p_value值比0.05小,证明有单位根,也就是说序列平稳。如果p_value比0.05大则证明非平稳。
源码里有一句note,如果p_value接近于0.05时,则要通过临界值进行判断。也就是说如果p_value接近于0.05就要通过第一部分τ(tao)统计量的值和第五部分的临界值进行对比。τ(tao)统计量的值比临界值小,就证明平稳,反之就是非平稳。我的检测结果τ(tao)统计量的值再临界值5%-10%之间。比5%的临界值大。这里的1%,5%,10%对应的是99%,95%,90%置信区间。
ADF检验只适合AR(P)模型。
且对方差齐性效果好,对异方差性效果不佳。异方差可用PP检验。

我们看到第二个值等于 0.0,小于0.05,所以不存在单位根,是平稳序列

我们生成的数据是a<1的,所以数据是平稳的

差分

定义:当前观察值中减去先前的观察值来执行求差。

差分是一种转换时间序列数据集的方法。它可以用来消除对时间的序列依赖性,即所谓的时间依赖性。这包括趋势和季节性等结构。

X = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
X_diff = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]

data = [i+1 for i in range(20)]
print(data)

plt.plot(data)
plt.show()
原始数据

进行差分

x = pd.DataFrame(data).diff(1)
print(x.values)
pd.DataFrame(data).diff(1)[0].plot()
差分后数据

案例
我们生成一个a=1的序列

x1=time_series(1,10000)

from statsmodels.tsa.stattools import adfuller
print(adfuller(x1))

from statsmodels.tsa.stattools import adfuller
print(adfuller(x1))

(-0.11645535132862225, 0.947774650728789, 0, 9999, {'1%': -3.4310041633725734, '5%': -2.861829101294412, '10%': -2.566923883481157}, 28296.083771638478)

我们看到第二个值等于0.947774650728789,大于0.05,所以存在单位根,不平稳

所以接下来我们对原始数据做一阶差分

x1 =pd.DataFrame(x1).diff(1).dropna()
from statsmodels.tsa.stattools import adfuller
print(adfuller(x1))
(-99.2362102019425, 0.0, 0, 9998, {'1%': -3.431004228818807, '5%': -2.8618291302145686, '10%': -2.566923898875394}, 28290.18651394482)

我们看到第二个值等于 0.0,小于0.05,所以不存在单位根,是平稳序列

当我们的数据变成平稳序列后,就可以开始后面的预测分析了

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,548评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,497评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,990评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,618评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,618评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,246评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,819评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,725评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,268评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,356评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,488评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,181评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,862评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,331评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,445评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,897评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,500评论 2 359

推荐阅读更多精彩内容