时间序列分析

时间序列模型简介

2018-10-19  本文已影响0人  胡拉哥

目录

  1. 平稳序列
  2. 判断样本的平稳性
  3. 时间序列模型
  4. 参数选择
  5. 实验代码

1. 平稳序列

时间序列是一列观测值X_t的集合, 其中每个观测值是在时段t观测所得(t是自然数 ). 给定时间序列\{X_t\}_{t=1}^n, 如果对任意的t=1,\ldots,n, 它满足下列条件:
i. \text{var}(X_t)<\infty
ii. \mathbb{E}(X_t) = \mu
iii. \text{cov}(X_r, X_s) = \text{cov}(X_{r+t}, X_{s+t}), \forall r,s = 1, ..., n
我们把它叫做(弱)平稳(weakly stationary)序列.(下文我们简称平稳序列.)

通俗地讲, 平稳序列的期望, 方差, 协方差不随时间变化. 例如, X_t服从同一个分布时, 它是平稳的.

例1 下图中的时间序列由X_t\sim N(2, 1)生成. 从直观上看, 这个序列是"平稳的".

Fig1. 平稳的时间序列

例2 下图的中的时间序列由X_t= 2 + 0.9X_{t-1}+W_t生成, 其中X_0=0, W_t= N(0, 1). 它起初有明显地增长, 然后趋于平稳. 利用ADF检验(详情见下文), 我们发现该序列是平稳的(p-value < 0.01).

Fig2. 平稳的时间序列

Remark 弱平稳性的"弱"主要体现在时间序列在全局上是平稳的, 即,时间序列局部是波动的,但整体上看是平稳的, 或者随着时间的变化其样本的均值收敛.

2. 判断样本的平稳性

我们用统计学中假设检验的方法来判断样本的平稳性. 常用的是Augmented Dickey-Fuller(ADF)检验[1].

在显著水平\alpha=0.05的条件下, 我们可以通过计算p-value来接受或者拒绝H_0:

Python3中statsmodels.tas.stattools中的adfuller函数[3]实现了ADF检验. 使用方法如下所示.

from statsmodels.tsa.stattools import adfuller


def test_stationarity(data, alpha=0.05, print_detail=True):
    """ Test stationarity of time series data.
    :param data: time series data, formatted as list
    :param alpha: significance level.
    :param print_detail: if True print additional information. 
    """
    result = adfuller(data)
    is_stationary = True if result[1] <= alpha else False
    if print_detail:
        print('ADF statistic: %f' % result[0])
        print('p-value: %f' % result[1])
        print('critical values:')
        for key, value in result[4].items():
            print('\t%s: %.3f' % (key, value))
    return is_stationary

3. 时间序列模型

前面之所以介绍平稳序列的概念及检验方法, 是因为它是很多基础的时间序列模型的前提假设. 在本节我们介绍一些常见的时间序列模型(更多内容可以参考[4], [5]).

AR(p)

AR代表自回归(Autoregression). 假设时间序列\{X_t\}是平稳的, 它可以被表示成如下形式:
X_t = \delta + \sum_{i=1}^p \phi_iX_{t-i} + W_t.

MA(q)

MA代表移动平均(Moving Average). 假设时间序列\{X_t\}是平稳的, 它可以被表示成如下形式:
X_t = \delta + \sum_{i=1}^q \theta_iW_{t-i} + W_t.

ARMA(p,q)

ARMA模型是AR和MA的组合. 假设同上. 它可以被表示为如下形式:
X_t = \delta + \sum_{i=1}^p \phi_iX_{t-i} + \sum_{i=1}^q \theta_iW_{t-i} + W_t.

ARIMA(p,d,q)

ARIMA模型是ARMA模型的推广, 全称是Autoregressive Integrated Moving Average. 当时间序列\{X_t\}不满足平稳性时, 我们通常使用差分的技巧把序列变得平稳, 然后再应用ARMA模型.

参数d代表差分的阶数. 下面是差分的计算公式(\Delta为差分算子):

例3 下图是原始的时间序列. 通过观察, 它的均值有明显的上升趋势且不收敛, 因此不是平稳序列(ADF检验的p-value为0.94).

对该序列进行一阶差分后, 我们得到如下平稳的时间序列(p-value为0.00).

ARIMA(p,d,q)\times(P,D,Q,s)

该记号代表季节性(或周期性)ARIMA模型, 详细的表达式可以参考[4](4.1 Seasonal ARIMA models), 其中

我们可以把它看成两阶段模型: 第一阶段在全局使用ARIMA(p,d,q); 第二阶段通过指定周期长度s, 再利用ARIMA(P,Q,D)模型考虑周期之间的关系.

例4 考虑如下周期性的平稳时间序列(s=18).

season.png

对序列进行周期性差分: Y_t = X_t - X_{t-18}得到新的时间序列\{Y_t\}如下图所示(红色部分)

deseason.png

通过使用周期性差分, 我们可以把原有时间序列的周期性移除. 同理, 通过采用周期性的自回归和移动平均系数, 我们可以把周期之间的依赖关系考虑进模型.

例5 考虑周期s=18的数据(蓝色曲线). 用\text{ARIMA}(1,0, 0)\text{ARIMA}(1, 0, 0)\times(0, 1, 0, 18)分别进行预测的结果如下.

不考虑周期性的ARIMA模型的预测结果(灰色曲线)逐渐收敛到时间序列的均值. 由于序列是平稳的, 这样的预测结果符合我们的期望. 考虑到该时间序列有比较强的周期性, 且通过观察发现周期s=18. 在本例中, 我们仅使用周期差分, 最终得到了如图所示(红色曲线)的周期性预测结果.

ARCH(p)

ARCH的全称是Autoregressive Conditionally Heteroscedasticity, 它可以用来考虑样本的方差随着时间变化(或震荡)的时间序列. 设时间序列\{X_t\}是平稳的, \text{ARCH}(p)模型可以被表示成如下形式:

X_t = \sigma_tW_t,\quad W_t \overset{\text{iid}}{\sim} N(0,1)
其中
\sigma_t^2 = \alpha_0 + \sum_{i=1}^p \alpha_iX_{t-i}^2.

GARCH(p,q)

GARCH即Generalized ARCH, 是ARCH模型的推广[6]. 设时间序列\{X_t\}是平稳的, \text{GARCH}(p,q)模型可以被表示成如下形式:
X_t = \sigma_tW_t,\quad W_t \overset{\text{iid}}{\sim} N(0,1)
其中
\sigma_t^2 = \alpha_0 + \sum_{i=1}^p \alpha_iX_{t-i}^2 + \sum_{i=1}^q \beta_i\sigma^2_{t-i}.

Remark ARCH/GARCH随机过程产生的数据是什么样的? 前面提到它们允许样本的方差随时间变化, 但是由于\{X_t\}必须满足平稳性(前提假设), 因此样本的方差从局部看是变化(震荡)的, 但从整体看应该是"平稳的"序列. 例如下图是一个\text{GARCH}(1,1)过程生成的时间序列(\alpha_0=5, \alpha_1=\beta_1=0.5).

VAR(p)

VAR即Vector Autoregression, 它是多变量的自回归模型. 类似地, 我们有\text{VARMA}(p, q), 它是\text{ARMA}(p,q)的向量版本. 需要注意的是, VARMA模型处理的时间序列可以有趋势. 我们不做详细的展开, 感兴趣的读者可以参考[4]章节11.2: Vector Autoregressive models VAR(p) models.

4. 参数选择

给定时间序列的观测样本, 选定预测模型之后如何确定模型的参数? 本节我们介绍两种常用的方法: 1. 画出ACF/PACF图, 然后观察出p,q的值; 2. 通过计算相关的统计指标, 自动化地选择参数.

4.1 观察ACF/PACF

ACF

ACF的全称是Autocorrelation Function. 对变量h=1,2, ..., ACF的值代表X_tX_{t-h}之间的相关性.
\text{ACF}(h) = \frac{\text{cov}(X_t, X_{t-h})}{\text{var}(X_t)}

PACF

PACF的全称是Partial Autocorrelation Function. 对变量h=1,2,..., PACF的值代表已知X_{t-1}, ... X_{t-h+1}的条件 下, X_tX_{t-h}之间的相关性.
\text{PACF}(h) = \frac{\text{cov}(X_t,X_{t-h}|x_{t-1}, ... x_{t-h+1})}{\sqrt{\text{var}(X_t|x_{t-1}, ... x_{t-h+1})\text{var}(X_{t-h}|x_{t-1}, ... x_{t-h+1})}}

例6W_t\sim N(0, 1). 考虑下面三个模型生成的时间序列, 并计算相应的ACF/PACF.

  1. \text{AR}(1): X_t=2 + 0.5X_{t-1}+W_t

  2. \text{MA}(1): X_t=2 + 0.5W_{t-1}+W_t

  3. \text{ARMA}(1,1): X_t=2 + 0.5X_{t-1}+ 0.5W_{t-1}+W_t

指导原则(参考[4])
模型 ACF PACF 说明
AR(p) 逐渐趋近于0或像正弦曲线一样收敛到0 p个值非常显著, 其余的值不显著 p值主要参考PACF
MA(q) q个值非常显著, 其余的值不显著 逐渐趋近于0或像正弦曲线一样收敛到0 q值主要参考ACF
ARMA(p,q) 逐渐趋近于0或像正弦曲线一样收敛到0 逐渐趋近于0或像正弦曲线一样收敛到0 p,q值靠猜

4.2 自动化地决定参数

基本思想是通过计算一些指标, 并选择参数使得相关的指标值尽可能小. 下面我们介绍一些常用的指标.

为方便描述, 我们先定义一些记号.

AIC(Akaike Information Criterion)[7]

\text{AIC} = 2k - 2\ln(L_{\max})

AICc[8]

(AIC的改良版, 解决小样本过拟合的问题)
\text{AICc} = \text{AIC} + \frac{2k^2 + 2k}{n-k-1}

BIC(Bayesian Information Criterion)[9]

(也称为Schwartz Criterion, SBC, SBIC)

\text{BIC} = \ln(n)k - 2\ln(L_{\max})

HQIC(Hannan–Quinn Information Criterion)[10]

\text{HQIC} = 2k\ln(\ln(n)) -2\ln(L_{\max})

Remark 建议在实际中综合考虑这些指标.

5. 实验代码

Python3 code on Github

参考文献


  1. Wikipedia. Augmented Dickey-Fuller test.

  2. Dickey, D. A.; Fuller, W. A. Distribution of the Estimators for Autoregressive Time Series with a Unit Root. Journal of the American Statistical Association. 74(366): 427–431, 1979.

  3. https://www.statsmodels.org/dev/generated/statsmodels.tsa.stattools.adfuller.html

  4. Lecture notes of Applied Time Series Analysis (SATA 510). The Pennsylvania State University.

  5. Jan Grandell. Time series analysis (lecture notes).

  6. Bollerslev, T. Generalized autoregressive conditional heteroscedasticity. Journal of Econometrics, 31, 307–327, 1986.

  7. Hirotugu Akaike. A new look at the statistical model identification, IEEE Transactions on Automatic Control, 19 (6): 716–723, 1974.

  8. Wikipedia. https://en.wikipedia.org/wiki/Akaike_information_criterion#AICc.

  9. Schwartz E.S. The Stochastic Behavior of Commodity Prices: Implications for Valuation and Hedging'. J Finance 52(3) Papers and Proceedings Fifty-Seventh Annual Meeting, American Finance Association, New Orleans, Louisiana, 923-973, 1997.

  10. Hannan, E. J. and B. G. Quinn. The Determination of the order of an autoregression, Journal of the Royal Statistical Society, Series B, 41: 190–195, 1979.

上一篇 下一篇

猜你喜欢

热点阅读