引言
DT時代,數據的重要性已經不必再強調了。
最近幾年深度學習,機器學習,人工智能炙手可熱,各行各業的人,無論是單純的蹭熱度也好,還是真的想做一些改變,都在往這三個概念上靠,但我相信,絕大部分人是真的希望借着人工智能的‘好風’做出些成績的。而這些所謂的‘高科技’對數據卻又是強依賴的。 那么對數據深入了解,做到知己知彼,可以說是很有必要的。
數據中,有一種數據叫時間序列數據,是很重要的一種數據。這種數據在各行各業都占有很大的比重。目前,在金融界,時間序列的研究是最熱的。沒辦法,人家那可是最直接的真金白銀。而其他行業對此研究可就有點跟不節奏了。運維域內的數據絕大部分都是時間序列數據,而對於這些數據的挖掘是非常重要的。咱不能讓人家落下。希望接下來的系列文章對大家能有所幫助。
1.時間序列分解
時間序列是按照時間次序排列的隨機變量序列。如股價變動,CPU使用率波動等等。下圖是某地歷史上的降雨量時間序列圖:(是不是感覺和你熟悉的數據樣子差不多?)
任何時間序列經過合理的函數變換后,都可以被認為是由三個部分疊加而成的,即:趨勢項部分,周期項部分,以及隨機噪聲項部分。
用公式表示:
其中 T是趨勢項,S是周期項,R是隨機項,X則是時間序列項。t代表的是時間。
研究時間序列的最主要目的當然是預測。 而從時間序列中把這三個部分分解出來是序列分析、預測的的首要任務,這一過程被稱為時間序列分解(Time Series Decomposition, TSD)。
1.1 分解時間序列
趨勢項是時間序列中總體的變化趨勢,是緩慢的,長期的。一般先把趨勢項分離出來,再依次分離周期項、隨機項。其分解方式有以下幾種:
1.1.1 分段常數法
這是最簡單最直接的方法,比如,把股票的月均價做為股價的趨勢變化。然后用時間序列減掉趨勢項,剩下周期項與隨機項。可再以周均值或日均值做為周期項,再減掉即剩下隨機項了,也即隨機項的估計了。
1.1.2回歸趨勢
另一種比較簡單的趨勢擬合即是采用線性回歸。從趨勢項的角度,可簡單地認為時間序列與時間有簡單的線性關系:
或者可以認為是二次曲線的趨勢:
當然,一說到回歸,選擇也就多了起來,不必拘泥某一種形式,根據相關數據選擇最優的模型是關鍵。
1.1.3 逐步平均法
可理解為在時間維度上的分段平均法。
1.2 平穩序列
可以看到,時間序列中的趨勢項,以及周期項是比較容易提取的,其中應用到的知識也是比較長規,甚至可以說是簡單。當剔除趨勢項以及周期項,時間序列往往表現出某種平穩波動性,即平穩序列。我們之所以研究時間序列,或者說時間序列可研究,是因為我們認為時間序列數據是蘊含數據的變化信息的。基於此,我們才可以在知道歷史數據時,對未來做出預測。而平穩性是要滿足的一個條件。(如果不滿足怎么辦?那我們后面會談到如何將非平穩的變成平穩序列。如果變不成呢?那就沒轍了。
1.2.1基本概念
在講平穩序列之前,我們先來說說基本概念:
隨機變量序列\(\{Y_t: t= 0,\pm1,\pm2,...\}\) 稱為一個隨機過程,並以之作為觀測時間序列模型。已知該過程完整的概率結構是由所有 Y 的有限聯合分布構成的分布族決定的。大家不要被其中的關於隨機過程的相關名詞嚇到,沒必要,你只要知道他是以數學的方式來描述時間序列就夠了。我只需關注下面的一些概念就可以了。
對於隨機過程:\(\{Y_t: t= 0,\pm1,\pm2,…\}\) :
-
均值函數:
\[\mu_t = E(Y_t), t= 0,\pm1,\pm2,… \]即\(\mu_t\) 恰是過程在t時刻的期望值,一般地,不同時刻\(\mu_t\) 可取不同的值。
-
自協方差函數:
\[\gamma_{t,s} = Cov(Y_t,Y_s), t,s = 0,\pm1,\pm2,… \]其中 \(Cov(Y_t,Y_s) = E[(Y_t - \mu_t)(Y_s - \mu_s)] = E(Y_tY_s) - \mu_t\mu_s\)
-
自相關函數:
\[\rho_{t,s} = Corr(Y_t,Y_s), t,s = 0,\pm1,\pm2,… \]其中\(Corr(Y_t,Y_s) = \frac{Cov(Y_t,Y_s)}{\sqrt{Var(Y_t)Var(Y_s)}} = \frac{\gamma_{t,s}}{\sqrt{\gamma_{t,t}\gamma_{s,s}}}\)
從上面可以推知:
上面是最最基本的概念了,大家不要被公式嚇到,你能看到這篇文章,99% 說明你上過大學,這些充其量也就是高中知識,多一分鍾思考,之后的概念才好理解。以后不必要的公式絕不放上來,有用的公式我一定會‘大白話’給大家解釋。'凍挖瑞~'
1.2.2隨機游動
令 \(e_1, e_2\), … 為一列獨立同分布隨機變量序列,簡記為\(e_1, e_2,\dots *i.i.d*. 假定 var(\)e_1$) = \(\sigma\), \(Ee_1 = 0\)
按下面的方式給出的序列{\(X_t\):和=1, 2, …},稱為隨機游動(random walk):
等價地,(定義\(X_0\)= 0):
即 t 時刻的變量是與(t-1)時刻有關的。
剛可以很得到下面的一些結論:
這里也就是說,對於滿足隨機游動的時間序列,它的序列均值是0,方差是一個定值,t,s兩時點的數據相關系數只與兩者所在時間有關,而與其他無關。
下圖是一個隨機游動模擬的例子:
1.2.3 平穩性
接下來,我們就要了解下平穩性的概念了。平穩性可分為嚴平穩以及寬平穩兩種:
- 時間序列\(\{X_t : t= 0,\pm1,\pm2,…,\}\) 稱為嚴平穩,若其(聯合)概率分布具有推移不變性。即對任意整數\(s\le t\) 及正整數\(n \ge 1\),隨機向量\((X_s,X_{s+1},…,X_{s+n})\) 和\((X_t,X_{t+1},...X_{t+n})\) 具有相同的(聯合)概率分布。通俗地說,即隨便取兩段相同長度的時間序列數據,’看起來‘應該差不多,沒有明顯區別。
如果在生產生活中碰到嚴平穩數據應該高興因為它一定會很好處理,但絕大部分都不符合嚴平穩的性質。但我們會經常碰到寬平穩數據:
- 時間序列\(\{X_t : t= 0,\pm1,\pm2,…,\}\) 稱為寬平穩:若其滿足如下3條:
- \(EX_t^2 \le \infty, t=0,\pm1,\pm2,...\)
- 均值函數為常數,$\mu_t = EX_t =c, t = 0,\pm1,\pm2,... $
- 自協方差函數\(\gamma_{t,s}\) 只依賴於時間間隔(t-s) (等價地 ( s-t ) ),即:\(\gamma_{t,s} = \gamma_{s,t}, \ \ \ \ \ t,s = 0,\pm1,\pm2,...\)
以后指的平穩性,如無特指,即指的是寬平穩。
1.2.4 兩類重要的平穩時間序列
-
白噪聲
設時間序列\(\{\epsilon_t: t = 0,\pm1,\pm2,\dots\}\) 滿足:
\[E\epsilon_t = 0, cov(\epsilon_t,\epsilon_s) = \left\{ \begin{aligned} \sigma^2, \qquad t = s && \\ && t,s = 0,\pm1,\pm2,\dots \\ 0 , \qquad t\ne t && \\ \end{aligned} \right. \]則稱\(\{\epsilon_t\} =\{\epsilon_t: t = 0,\pm1,\pm2,...\}\) 為白噪聲,簡記為:\(\{\epsilon_t\}\sim WN(0,\sigma^2)\).
可知對於白噪聲:
\[\gamma_k = \left\{\begin{aligned} \sigma^2, \quad k = 0 &&\\ && k = 0,\pm1,\pm2,...\\ 0, \quad k \ne 0. &&\\ \end{aligned}\right. \]
白噪聲的結構相對簡單,但卻是非常重要的,因為它是后面要講的眾多重要模型或序列的‘生成元’。
-
隨機余弦波:
這個也是一個重要的平穩時間序列,但可能后面很多講都見不到,等見到,咱再講也不遲。
1.3 總結
作為第一講,我們從整體上了解了什么是時間序列,也講了很多概念,更用了很多公式,這些是時間序列最最基本的東西,是后面的知識的基礎,大家一定把這里的東西‘吃透’,那后面的知識就會比較輕松。
1.4 參考文獻:
PS: 接下來基本上都是以下列文獻作為參考文獻,所以后面將不再羅列出來,除非新加入的文獻,請知悉。
1: 何書元. 應用時間序列分析 北京:北京大學出版社,2003
2: Peter J. Brockwell, Rechard A. Davis 著, 田錚等譯. 時間序列的理論與方法(第二版).北京:高等教育出版社,2001
3: Jonathon D. Cryer, Kung-Sik Chan 著,潘紅宇等譯.時間序列分析及應用:R語言(原書第二版).北京: 機械工業出版社,2011
4: Walter Enders 著,杜江;謝志超譯. 應用計量經濟學:時間序列分析(第二版).北京:高等教育出版社,2006.
5: Ruey S. Tsay 著,王遠林等譯.金融時間序列分析(第三版)北京:人民郵電出版社,2012.