1.导论
假设我们按照离散时间顺序观察的某个量 X ,比如每隔一小时观测某地的气温,这样便得到一列气温序列 \{X_n: n=0,\pm1,\pm2,\cdots\} 。我们对 \{X_n: n=0,\pm1,\pm2,\cdots\} 进行统计建模,认为它是一列随机变量。因为该序列随着时间进行演化,故称为时间序列。事实上在生活中我们可以观察到很多时间序列的例子,比如某只股票每天收盘的价格,或者某只基金的每天收益率等。人们希望通过观察某段时间序列,建立统计模型估计它的统计演化规律,进而能够预测将来的值。
2. 定义 1 令n=0,\pm1,\pm2,\cdots\ 为时间格点,随机变量序列 \{X_n: n=0,\pm1,\pm2,\cdots\} 称为一时间序列。
在实际问题中,我们只能观察一段时间的序列,比如 \{x_0,x_1,\cdots,x_n\} 。我们希望通过这一有限观察序列值,找到一个合适的统计模型能够解释它的演化过程,并利用该模型对将来的值进行预测和控制。
3. 平稳过程
平稳过程是一类常见的时间序列统计模型。很多时间序列具备平稳性的特征。所谓平稳性是指不随时间发生改变的统计特征。平稳过程分为严平稳和弱平稳。
定义2 \{X_n: n=0,\pm1,\pm2,\cdots\} 称为弱平稳,如果二阶矩存在且满足
(1) E(X_n)与 n 无关;
(2) Var(X_n) 与 n 无关;
(3)对于任意的 n,m ,Cov(X_{n+k},X_{m+k}) 与 k 无关。
定义3 \{X_n: n=0,\pm1,\pm2,\cdots\} 称为严平稳,如果对于任何正整数 n\geq 1以及任意整数 k
, \{X_1,X_2,\cdots,X_n\} 和 \{X_{1+k},X_{2+k},\cdots,X_{n+k}\} 分布相同。
显然,一个二阶矩存在的严平稳过程是弱平稳过程。
4.自相关系数
令 \rho(X_n,X_m) 为 X_n,X_m 的相关系数, \rho_k=\rho(X_0,X_k) ,则 \rho_0=1,\rho_k=\rho_{-k}=\rho(X_n,X_{n+k})=\rho(X_{n+k},X_{n}) 。称 \rho_k 为间隔为 k 自相关系数。
5.自相关系数的估计
若 x_0,x_1,x_2,\cdots,x_T为一列观测值,那么 \rho_k 的估计为 \hat\rho_k=\frac{\sum^T_{i=k}(x_i-\bar x)(x_{i-k}-\bar x)}{\sum^T_{i=0}(x_i-\bar x)^2} 。可以证明该估计为相合估计。
6.白噪声
\{\omega_n: n=0,\pm1,\pm2,\cdots\} 称为白噪声,如果二阶矩存在,均值为0,方差为大于0的常数,两两互不相关。如果 \omega_n\sim N(0,\sigma^2) ,则称 \{\omega_n: n=0,\pm1,\pm2,\cdots\} 为高斯白噪声。显然对于白噪声来说, \rho_k=0,k\ne 0 。
7.白噪声的检验
给定一时间序列的观测值 x_0,x_1,x_2,\cdots,x_T ,对于任意 k>0 检验 \rho_k 是否为0?
(1)H_0:\rho_k=0\quad VS \quad H_1:\rho_k\neq 0
检验统计量: t=\sqrt T \hat\rho_k
可以证明在 H_0 成立的条件下, t 近似地服从 N(0,1) 。
(2)混成检验
H_0:\rho_1=\rho_2=\cdots=\rho_m=0 vs H_1: 至少一个 \rho_k\neq 0 , k=1,2,\cdots,m
检验统计量: Q^*(m)=T\sum^m_{l=1}\hat\rho_l^2
在 \{X_n: n=0,\pm1,\pm2,\cdots\} 为白噪声的条件下, Q^*(m) 近似服从 \chi^2(m) .
为了提高检验的功效,Ljung和Box把 Q^*(m) 修正为Q(m)=T(T+2)\sum^m_{l=1}\hat\rho_l^2/(T-l) .
一般建议 m\approx ln(T) .Ljung和Box检验常用来检验一平稳序列是否为白噪声。
8.白噪声检验
任给一时间序列,首先我们先诊断是否为白噪声。如果是白噪声,就无需对该序列建立统计模型。对于给定的时间序列,首先我们先计算自相关系数,然后利用Ljung和Box检验来一序列是否为白噪声。下面结合R来说明白噪声的检验。
首先生成一个正态白噪声,然后计算自相关系数,最后给出Ljung和Box检验。
> x<-rnorm(1000)
> plot(ts(x))
> sx<-ts(x)
> plot(sx)
> acf(sx)
> Box.test(sx,12,"Ljung")
Box-Ljung test
data: sx
X-squared = 10.512, df = 12, p-value = 0.5711
检验的p值为0.5711.说明该序列为白噪声。
9 航空数据分析
R软件基本包中有一个经典的航空数据"AirPassengers"。下面我们判断该序列是否为白噪声。
首先调入该数据,并对画出时间序列图。
> data(AirPassengers)
> AP<-AirPassengers
> plot(AP)
显然看出该连续不为白噪声。
> acf(AP)
Ljung和Box检验:
> Box.test(AP,12,"Ljung")
Box-Ljung test
data: AP
X-squared = 1036.5, df = 12, p-value < 2.2e-16
检验的P值< 2.2e-16,说明该序列的相关系数显著不为0,该序列不是白噪声。
最上面的答案说的挺对,但未必是提问的人想要的,参考下我之前写的一篇笔记吧
概念简述
先说两个例子大家体会下:
例1:炒股的人都想预测明天是涨还是跌,实际上我们已经积累了大量的历史数据,说不定还是可以预测的!某股票已经连续涨了3天,明天会不会再涨呢?某股票连续跌了7天了,明天应该不会再跌了吧?
例2:很多商家会在某些节假日时,重点销售某些产品,以求可以卖出更多,圣诞节快到了,应该主推什么产品好呢?实际上各商家的收款系统中,记录了大量的与时间相关的销售数据,如果对这些数据做一下时间序列分析,说不定能找到重大商机。
时间序列分析,顾名思义,输入列都是与时间相关的数据,同时需要考虑季节、历史、周期、趋势等因素,通过一些手段来预测未来某个时间点会怎样。
对于餐饮行业来说,就会经常遇到这样的问题:由于餐饮行业里面生产和销售同时进行,所以销售预测对于餐厅来说十分重要。如何基于菜品历史销售数据,做好餐饮销售预测,以便减少菜品脱销现象和避免因为备料不足而造成的生产延误,从而减少菜品生产等待时间,提供给客户更优质的服务。
餐饮销售预测可以看做是基于时间序列的短期数据预测,预测对象为具体菜品的销售量。
套路
时间序列预处理
拿到一个观察值序列后,首先要对它的纯随机性和平稳性进行检验,这两个检验过程称之为序列的预处理。
根据检验结果可以将序列分为不同的类型,对于不同类型的序列有不同的分析方法。
如图所示
从图中可以看出,白噪声序列是没有信息可提取的平稳序列,没有进行序列分析的必要。
平稳性检验
定义:如果时间序列在某一常数附近波动且波动范围有限,即有常数均值和常数方差,并且延迟k期的序列变量的自协方差和自相关系数是相等的或者说延迟k期的序列变量之间的影响程度是一样的,则称该序列为平稳序列。
其实可以这么理解,平稳即代表没有明显趋势且波动范围有限
检验方法:
时序图检验:根据平稳时间序列的均值和方差都为常数的性质,平稳序列的时序图显示该序列值始终在一个常数附近随机波动,而且波动的范围有界;如果有明显的趋势性或者周期性,那它通常不是平稳序列
自相关图检验:平稳序列具有短期相关性,这个性质表明对平稳序列而言通常只有近期的序列值对现时值得影响比较明显,间隔越远的过去值对现时值得影响越小。随着延迟期数k的增加,平稳序列的自相关系数会比较快的衰减趋向于零,并在零附近随机波动,而非平稳序列的自相关系数衰减的速度比较慢。
单位根检验。指的是是否存在单位根,如果存在单位根,即为非平稳时间序列
目前最常用的方法是单位根检验。
纯随机性检验
若某个序列是纯随机序列,那么它的序列值之间便没有任何关系,即满足y(k)= 0,这是一种理想状况,实际上自相关系数绝对不会为零,但是很接近零,并在零附近随机波动。
纯随机性检验也称为白噪声检验,一般是构造检验统计量来检验序列的纯随机性,常用的检验统计量有Q统计量、LB统计量,由样本各延迟期数的自相关系数可以计算得到检验统计量,然后计算出对应的p值,如果p值显著大于显著性水平a,则表示该序列不能拒绝纯随机的原假设,可以停止对该序列的分析。
点此查看公众号原文 -> qq.com
最近也在做时间序列分析方面的研究,每天晚上都会把一些想法以及一些平时用到的资源分享到 数据魔法屋 这个公众号,可以一起来交流下