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期的序列变量之间的影响程度是一样的,则称该序列为平稳序列。 其实可以这么理解,平稳即代表没有明显趋势且波动范围有限 检验方法:
目前最常用的方法是单位根检验。 纯随机性检验 若某个序列是纯随机序列,那么它的序列值之间便没有任何关系,即满足y(k)= 0,这是一种理想状况,实际上自相关系数绝对不会为零,但是很接近零,并在零附近随机波动。 纯随机性检验也称为白噪声检验,一般是构造检验统计量来检验序列的纯随机性,常用的检验统计量有Q统计量、LB统计量,由样本各延迟期数的自相关系数可以计算得到检验统计量,然后计算出对应的p值,如果p值显著大于显著性水平a,则表示该序列不能拒绝纯随机的原假设,可以停止对该序列的分析。 点此查看公众号原文 -> qq.com 最近也在做时间序列分析方面的研究,每天晚上都会把一些想法以及一些平时用到的资源分享到 数据魔法屋 这个公众号,可以一起来交流下 |