目錄
- 平穩(wěn)序列
- 判斷樣本的平穩(wěn)性
- 時間序列模型
- 參數(shù)選擇
- 實驗代碼
1. 平穩(wěn)序列
時間序列是一列觀測值的集合, 其中每個觀測值是在時段
觀測所得(
是自然數(shù) ). 給定時間序列
, 如果對任意的
, 它滿足下列條件:
i.
ii.
iii.
我們把它叫做(弱)平穩(wěn)(weakly stationary)序列.(下文我們簡稱平穩(wěn)序列.)
通俗地講, 平穩(wěn)序列的期望, 方差, 協(xié)方差不隨時間變化. 例如, 服從同一個分布時, 它是平穩(wěn)的.
例1 下圖中的時間序列由生成. 從直觀上看, 這個序列是"平穩(wěn)的".
例2 下圖的中的時間序列由生成, 其中
,
. 它起初有明顯地增長, 然后趨于平穩(wěn). 利用ADF檢驗(詳情見下文), 我們發(fā)現(xiàn)該序列是平穩(wěn)的(p-value < 0.01).
Remark 弱平穩(wěn)性的"弱"主要體現(xiàn)在時間序列在全局上是平穩(wěn)的, 即岸裙,時間序列局部是波動的,但整體上看是平穩(wěn)的, 或者隨著時間的變化其樣本的均值收斂.
2. 判斷樣本的平穩(wěn)性
我們用統(tǒng)計學(xué)中假設(shè)檢驗的方法來判斷樣本的平穩(wěn)性. 常用的是Augmented Dickey-Fuller(ADF)檢驗[1].
-
Null Hypothesis
: 樣本中存在unit root[2]. 如果接受
, 則意味著樣本是非平穩(wěn)的.
-
Alternate Hypothesis
: 樣本中不存在unit root. 如果拒絕
, 則意味著樣本是平穩(wěn)的.
在顯著水平的條件下, 我們可以通過計算p-value來接受或者拒絕
:
-
: 接受
.
-
: 拒絕
.
Python3中statsmodels.tas.stattools
中的adfuller
函數(shù)[3]實現(xiàn)了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. 時間序列模型
前面之所以介紹平穩(wěn)序列的概念及檢驗方法, 是因為它是很多基礎(chǔ)的時間序列模型的前提假設(shè). 在本節(jié)我們介紹一些常見的時間序列模型(更多內(nèi)容可以參考[4], [5]).
AR(p)
AR代表自回歸(Autoregression). 假設(shè)時間序列是平穩(wěn)的, 它可以被表示成如下形式:
-
是常數(shù).
-
, 它表示時段
的誤差(隨機變量).
-
代表自回歸階數(shù).
MA(q)
MA代表移動平均(Moving Average). 假設(shè)時間序列是平穩(wěn)的, 它可以被表示成如下形式:
-
是常數(shù).
-
, 它表示時段
的誤差(隨機變量).
-
代表移動平均階數(shù).
ARMA(p,q)
ARMA模型是AR和MA的組合. 假設(shè)同上. 它可以被表示為如下形式:
-
是自回歸階數(shù)
-
是移動平均階數(shù)
ARIMA(p,d,q)
ARIMA模型是ARMA模型的推廣, 全稱是Autoregressive Integrated Moving Average. 當(dāng)時間序列不滿足平穩(wěn)性時, 我們通常使用差分的技巧把序列變得平穩(wěn), 然后再應(yīng)用ARMA模型.
參數(shù)代表差分的階數(shù). 下面是差分的計算公式(
為差分算子):
- 一階差分
- 二階差分
-
階差分
例3 下圖是原始的時間序列. 通過觀察, 它的均值有明顯的上升趨勢且不收斂, 因此不是平穩(wěn)序列(ADF檢驗的p-value為0.94).
對該序列進行一階差分后, 我們得到如下平穩(wěn)的時間序列(p-value為0.00).
ARIMA(p,d,q)
(P,D,Q,s)
該記號代表季節(jié)性(或周期性)ARIMA模型, 詳細的表達式可以參考[4](4.1 Seasonal ARIMA models), 其中
-
的意義同上.
-
代表周期性自回歸階數(shù)(前
個周期對應(yīng)觀測值的自回歸).
-
代表周期性差分階數(shù).
-
代表周期性移動平均階數(shù)(前
個周期對應(yīng)的移動平均).
-
代表一個周期的長度.
我們可以把它看成兩階段模型: 第一階段在全局使用ARIMA(p,d,q); 第二階段通過指定周期長度, 再利用ARIMA(P,Q,D)模型考慮周期之間的關(guān)系.
例4 考慮如下周期性的平穩(wěn)時間序列().
對序列進行周期性差分: 得到新的時間序列
如下圖所示(紅色部分)
通過使用周期性差分, 我們可以把原有時間序列的周期性移除. 同理, 通過采用周期性的自回歸和移動平均系數(shù), 我們可以把周期之間的依賴關(guān)系考慮進模型.
例5 考慮周期s=18的數(shù)據(jù)(藍色曲線). 用和
分別進行預(yù)測的結(jié)果如下.
不考慮周期性的ARIMA模型的預(yù)測結(jié)果(灰色曲線)逐漸收斂到時間序列的均值. 由于序列是平穩(wěn)的, 這樣的預(yù)測結(jié)果符合我們的期望. 考慮到該時間序列有比較強的周期性, 且通過觀察發(fā)現(xiàn)周期. 在本例中, 我們僅使用周期差分, 最終得到了如圖所示(紅色曲線)的周期性預(yù)測結(jié)果.
ARCH(p)
ARCH的全稱是Autoregressive Conditionally Heteroscedasticity, 它可以用來考慮樣本的方差隨著時間變化(或震蕩)的時間序列. 設(shè)時間序列是平穩(wěn)的,
模型可以被表示成如下形式:
其中
-
代表
的自回歸階數(shù).
GARCH(p,q)
GARCH即Generalized ARCH, 是ARCH模型的推廣[6]. 設(shè)時間序列是平穩(wěn)的,
模型可以被表示成如下形式:
其中
-
代表
的自回歸階數(shù).
-
代表
的移動平均階數(shù).
Remark ARCH/GARCH隨機過程產(chǎn)生的數(shù)據(jù)是什么樣的? 前面提到它們允許樣本的方差隨時間變化, 但是由于必須滿足平穩(wěn)性(前提假設(shè)), 因此樣本的方差從局部看是變化(震蕩)的, 但從整體看應(yīng)該是"平穩(wěn)的"序列. 例如下圖是一個
過程生成的時間序列(
).
VAR(p)
VAR即Vector Autoregression, 它是多變量的自回歸模型. 類似地, 我們有, 它是
的向量版本. 需要注意的是, VARMA模型處理的時間序列可以有趨勢. 我們不做詳細的展開, 感興趣的讀者可以參考[4]章節(jié)11.2: Vector Autoregressive models VAR(p) models.
4. 參數(shù)選擇
給定時間序列的觀測樣本, 選定預(yù)測模型之后如何確定模型的參數(shù)? 本節(jié)我們介紹兩種常用的方法: 1. 畫出ACF/PACF圖, 然后觀察出的值; 2. 通過計算相關(guān)的統(tǒng)計指標, 自動化地選擇參數(shù).
4.1 觀察ACF/PACF
ACF
ACF的全稱是Autocorrelation Function. 對變量, ACF的值代表
與
之間的相關(guān)性.
PACF
PACF的全稱是Partial Autocorrelation Function. 對變量, PACF的值代表已知
的條件 下,
與
之間的相關(guān)性.
例6 設(shè). 考慮下面三個模型生成的時間序列, 并計算相應(yīng)的ACF/PACF.
指導(dǎo)原則(參考[4])
模型 | ACF | PACF | 說明 |
---|---|---|---|
AR(p) | 逐漸趨近于0或像正弦曲線一樣收斂到0 | 前 |
|
MA(q) | 前 |
逐漸趨近于0或像正弦曲線一樣收斂到0 |
|
ARMA(p,q) | 逐漸趨近于0或像正弦曲線一樣收斂到0 | 逐漸趨近于0或像正弦曲線一樣收斂到0 |
|
4.2 自動化地決定參數(shù)
基本思想是通過計算一些指標, 并選擇參數(shù)使得相關(guān)的指標值盡可能小. 下面我們介紹一些常用的指標.
為方便描述, 我們先定義一些記號.
-
= 樣本的大小
-
= 模型中需要擬合的參數(shù)數(shù)量(例如正態(tài)分布有的數(shù)量是2:
和
)
-
= 通過最大似然估計得到的最大Likelihood
AIC(Akaike Information Criterion)[7]
AICc[8]
(AIC的改良版, 解決小樣本過擬合的問題)
BIC(Bayesian Information Criterion)[9]
(也稱為Schwartz Criterion, SBC, SBIC)
HQIC(Hannan–Quinn Information Criterion)[10]
Remark 建議在實際中綜合考慮這些指標.
5. 實驗代碼
參考文獻
-
Wikipedia. Augmented Dickey-Fuller test. ?
-
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. ?
-
https://www.statsmodels.org/dev/generated/statsmodels.tsa.stattools.adfuller.html ?
-
Lecture notes of Applied Time Series Analysis (SATA 510). The Pennsylvania State University. ? ? ? ?
-
Jan Grandell. Time series analysis (lecture notes). ?
-
Bollerslev, T. Generalized autoregressive conditional heteroscedasticity. Journal of Econometrics, 31, 307–327, 1986. ?
-
Hirotugu Akaike. A new look at the statistical model identification, IEEE Transactions on Automatic Control, 19 (6): 716–723, 1974. ?
-
Wikipedia. https://en.wikipedia.org/wiki/Akaike_information_criterion#AICc. ?
-
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. ?
-
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. ?