先看下圖:
這是1986年到2006年的原油月度價格。可見在2001年之后,原油價格有一個顯著的攀爬,這時再去假定均值是一個定值(常數)就不太合理了,也就是說,第二講的平穩模型在這種情況下就太適用了。也因此有了今天這一講。
要處理這種非平穩的數據(比如上圖中的均值不是一個常數),需要用非平穩模型:求和自回歸滑動平均(Autoregressive integrated moving average, ARIMA)。接下來,咱先看一個處理過的石油價格:
是不是似曾相識?! 對的,經過簡單的處理,本來不平穩的數據,立即變成了平穩數據了。這樣再用上一章的模型就可簡單處理了。這種處理方式就叫做差分(馬上會講,別急)。 而ARIMA 模型可以簡單的理解為:差分+平穩模型。你看,這下,這章的內容是不是簡單多了,所謂非平穩模型不就是差分處理下數據,再變有平穩數據,然后再用平穩模型處理嘛~ 確實醬紫~。
那馬上就產生一個問題(或者你早就有疑問了):什么叫做差分?差分是處理時間序列非常重要的工具,在計量經濟學及金融數學中廣泛應用。
3.1 差分運算
3.1.1 差分運算
還是用原油價格(月度數據)作為例子,所謂一階差分就是兩個相鄰月度之間做差。(這么簡單?!對,就是這樣~)。
規范化些:設\(\{X_t,\ t= \pm1,\pm2,\dots\}\) 為一時間序列,則:
稱為時間序\(\{X_t,\ t= \pm1,\pm2,\dots\}\) 的一階差分運算。
比如 2005年原油價格為:46.84 ,48.15, 54.19, 52.98, 49.83, 56.35, 58.99, 64.98 ,65.59, 62.26, 58.32 ,59.41。那這組數據的一階差分即為 1.31, 6.04, -1.21, -3.15, 6.52 , 2.64 , 5.99 , 0.61,-3.33, -3.94,也就是前一個數減去后一個數而已。
那如果我想去差分后的數據再做一次差分呢? 那就是二階差分(就是這么easy~):上面的一階差分數據為1.31, 6.04, -1.21, -3.15, 6.52 , 2.64 , 5.99 , 0.61,-3.33, -3.94,再經一次差分: 4.73 , -7.25, -1.94, 9.67, -3.88, 3.35 , -5.38 , -3.94, -0.61.
那如果想做p次呢(你夠了~),那就叫做p階差分了,定義為:
是不是很簡單?!
3.1.2 k步差分
如果不是相鄰數據間做差呢,比如我想隔幾個數據叫,比如我想用原油數據7月份數據與1月份做差呢? 沒問題,你的需求我一定滿足,這個就叫做k步差分了:
比如2005年7月與1月的價格差值即為: 58.99 - 46.84 = 12.15.也即稱為六步差分了。
3.1.3 差分的選擇
划重點,划重點!!!
- 序列蘊含着顯著的線性趨勢,1 階差分可以實現趨勢平穩,比如上面的原油價格(不過,里面其實做了一個預處理,一會說~).
- 序列蘊含着曲線趨勢的,通常低階(2階或3階)差分就可以取提出曲線趨勢的影響.
- 對於固定周期的序列,通常進行步長為周期長度的差分就可以較好的提取周期信息.
PS: 差分雖好,但也不要貪杯哦, 記住對信息的任何的加工都只會造成信息的損失.
3.1.3* 延遲算子
這一小節作為了解,不喜歡可以_跳過_,不影響理解滴~。
延遲算子,類似一個時間指針,當前序列值乘以一個延遲算子,就相當於把當前序列值的時間向過去拔了一個時刻。(ps: 算子就是映射,就是關系,就是變換![3])
3.1.3.1定義與性質
記 B 為延遲算子,有:\(x_{t-1} = Bx_t, x_{t-2} = B^2x_t,\dots, x_{t-p} = B^p x_{t-p}\)
延遲算子具有如下性質:
- \(B^0\) = 1
- 若 c 為常數, 則有 \(B(c\bullet x_t) = c B(x_t) = c\bullet x_{t-1}\)
- 對任意兩個序列\(有\{x_t\},\{y_t\},有 B(x_t\pm y_t) = x_{t-1}\pm y_{t-1}\)
- \(B^n x_t = x_{t-n}\)
- \(其中(1-B)^n = \sum_{i = 0}^n(-1)^p C_{n}^i B^i,其中 C_n^i = \frac{n!}{i! (n-i)!}\)
3.1.3.2 差分的延遲算子表示
-
p階差分
\[\Delta^p x_t = (1 - B)^p x_t = \sum_{i = 0}^p(-1)^p C_p^i x_{t-i} \quad t = \pm1,\pm2,\dots \] -
k步差分
\[\Delta_k x_t = x_t - x_{t-k} = (1-B^k)x_t \quad t = \pm1,\pm2,\dots \]
3.2* 時間序列分解
這一小節作為了解,不喜歡可以_跳過_,不影響理解滴~
在第一節(時間序列介紹) 中,曾提到過時間序列分解,其實時間序列分解不是靠感覺給出的,它也是有強大理論依據的,這里就支持時間序列分解的兩大定理作簡單的介紹:
3.2.1 Wold 分解
Wold 分解: 對於任何一個離散平穩過程\(\{X_t,\ t= \pm1,\pm2,\dots\}\), 它都可以分解為兩個不相關的平穩序列之和,其中一個分確定性的,另一個為隨機性的 不妨記作:
其中 \(\{V_t\}\) 為確定性序列,而\(\{\xi_t\}\)為隨機序列,且\(\xi_t = \sum_{j = 0}^\infty \phi_j\epsilon_{t -j}\). 滿足:
其中的所謂的'確定性':
對任意的序列\(\{V_t\quad t = \pm1,\pm2,\dots\}\) 對\(V_t\)作 q 期之前的序列值\(\{V_{t-q},V_{t-q-1},\dots,V_{t-1}\}\) 作線性回歸:
其中\(\eta_t\) 為回歸殘差序列: \(Var(v_t) = \tau_q^2\). 如果:
- $\lim_{ q \rightarrow\infty} \tau_q^2 = 0 $ ,則稱 \(\{V_t\}\)為確定性序列;
- \(\lim_{ q \rightarrow\infty} \tau_q^2 = Var(v_t)\), 則稱\(\{V_t\}\) 為隨機序列.
3.2.2 Cramer 分解
Wold分解是現代時間序列分析理論的靈魂. 1938 年 H. Wold 提出此理論時,只是為了分析平穩序列的構成, 不過另一位大牛Cramer於1961年證明此種分析思路同樣適用於非平穩序列.
Crammer 分解: 任意時間序列\(\{X_t\}\) 都可分解成兩部分的疊加:其中一部分是由多項式的確定性分析趨勢成分,另一部分是平穩的零均值誤差成分:
其中\(d < \infty,\beta_1,\beta_2,\dots,\beta_d\)為常數系數,\({a_t}\)為一個零均值白噪聲序列; B 為延遲算子.
Cramer分解說明任何一具序列的波動都可以視為受到了確定性影響和隨機性影響的綜合作用.
3.3 ARIMA 模型
千呼萬喚終於到了ARIMA.
有了上面的知識,就可以很容易推出自回歸滑動平均求和(ARIMA)模型。
如果有一個時間序列\(\{X_t,\ t=\pm1,\pm2,\dots\}\) 的 d 次差分 \(W_t = \Delta X_t\) 是一個平穩的ARMA過程,則稱時間序列\(\{X_t,\ t=\pm1,\pm2,\dots\}\) 為 ARIMA模型。如果\(W_t\)服從 ARMA(p,q) 模型,則稱\(\{Y_t\}\) 是 ARIMA(p,d,q) 過程.
其中 d 通常為1,最多也不過2,3, 所以,不用太擔心模型過於復雜.另外,如果 p = 0, 即不包含自回歸項,稱為IMA(d,q), 如果沒有滑動平均項, 則稱為ARI(p,d).
來來,給個'粟子',先看個簡單的,下圖(上)是某個商店某產品的兩個月銷量的時間序列圖:
(上)圖中 數據顯然是不平穩的; (中)圖是作了一步差分的結果,是不是平穩多了(什么?圖怎么更難看了? 是的, 因為我這個過程是在剔除確定性信息啊~); (下)圖是再一次作一步差分的(也即二階差分), 你會發現這會是真的像白噪聲了.
下面考慮ARIMA(p,1,d), 令\(W_t = Y_t - Y_{t-1}\):
即:
整理:
上式即稱為模型的差分方程形式, 看起來是不是像ARMA(p+1,q)過程? 不過, 其特征多項式(涉及延遲算子,不過只需要知道下面的公式是由上面推出即可,至於怎么推出,需了解上面的星號章節~[^4])滿足:
顯然,x = 1 是 一個根, 意味着這個過程非平穩,而其余的根是平穩過程的\(W_t\)的根.
參考文獻
如第一節參考文獻中所述, 主要的參考文獻都在第一節中列出來了, 下面所列為新加入或當節的參考文獻,請知悉.
1: 王燕 編著, 應用時間序列分析 北京: 中國人民大學出版社,2005
2: http://blog.sina.com.cn/s/blog_a1a5c41501012w3b.html
3: https://wenku.baidu.com/view/aab18a65cfc789eb162dc805.html