『壹』 (三)時間序列分析的基本方法
1.模型的選擇和建模基本步驟
(1)建模基本步驟
1)用觀測、調查、取樣,取得時間序列動態數據。
2)作相關圖,研究變化的趨勢和周期,並能發現跳點和拐點。拐點則是指時間序列從上升趨勢突然變為下降趨勢的點,如果存在拐點,則在建模時必須用不同的模型去分段擬合該時間序列。
3)辨識合適的隨機模型,進行曲線擬合。
(2)模型的選擇
當利用過去觀測值的加權平均來預測未來的觀測值時,賦予離得越近的觀測值以更多的權,而「老」觀測值的權數按指數速度遞減,稱為指數平滑(exponential smoothing),它能用於純粹時間序列的情況。
對於短的或簡單的時間序列,可用趨勢模型和季節模型加上誤差來進行擬合。對於平穩時間序列,可用自回歸(AR)模型、移動平均(MA)模型或其組合的自回歸移動平均(ARMA)模型等來擬合。
一個純粹的AR模型意味著變數的一個觀測值由其以前的p個觀測值的線性組合加上隨機誤差項而成,就像自己對自己回歸一樣,所以稱為自回歸模型。
MA模型意味著變數的一個觀測值由目前的和先前的n個隨機誤差的線性的組合。
當觀測值多於50個時一般採用ARMA模型。
對於非平穩時間序列,則要先將序列進行差分(Difference,即每一觀測值減去其前一觀測值或周期值)運算,化為平穩時間序列後再用適當模型去擬合。這種經差分法整合後的ARMA模型稱為整合自回歸移動平均模型(Autoregressive Integrated Moving Average),簡稱ARIMA模型(張文彤,2002;薛薇,2005;G.E.P.Box et al.,1994)。
ARIMA模型要求時間序列滿足平穩性和可逆性的條件,即序列均值不隨著時間增加或減少,序列的方差不隨時間變化。但由於我們所關注的地層元素含量變化為有趨勢和周期成分的時間序列,都不是平穩的,這就需要對其進行差分來消除這些使序列不平穩的成分。所以我們選擇更強有力的ARIMA模型。
2.平穩性和周期性研究
有些數學模型要檢驗周期性變化是否為平穩性過程,即其統計特性不隨時間而變化,我們可根據序列圖、自相關函數圖、偏自相關函數圖和譜密度圖等對序列的平穩性和周期性進行識別。當序列圖上表現有明顯分段特徵時可採用分段計演算法,若分段求得的每段頻譜圖基本一致或相似,則認為過程是平穩的,否則是非平穩的。
自相關函數ACF(Autocorrelations function)是描述序列當前觀測值與序列前面的觀測值之間簡單和常規的相關系數;而偏自相關函數PACF(Partial autocorrelations function)是在控制序列其他的影響後,測度序列當前值與某一先前值之間的相關程度。
平穩過程的自相關系數和偏自相關系數只是時間間隔的函數,與時間起點無關,都會以某種方式衰減趨近於0。
當ACF維持許多期的正相關,且ACF的值通常是很緩慢地遞減到0,則序列為非平穩型。
序列的自相關-偏自相關函數具有對稱性,即反映了周期性變化特徵。
3.譜分析
確定性周期函數X(t)(設周期為T)在一定條件下通過傅里葉(Fourier)級數展開可表示成一些不同頻率的正弦和餘弦函數之和(陳磊等,2001),這里假設為有限項,即:
洞庭湖區第四紀環境地球化學
其中,頻率fk=k/T,k=1,2,…,N。
上式表明:如果拋開相位的差別,這類函數的周期變化完全取決於各餘弦函數分量的頻率和振幅。換句話說,我們可以用下面的函數來表示X(t)的波動特徵:
洞庭湖區第四紀環境地球化學
函數p(f)和函數X(t)表達了同樣的周期波動,兩者實際上是等價的,只不過是從頻域和時域兩個不同角度來描述而已。稱p(f)為X(t)的功率譜密度函數,簡稱譜密度。它不僅反映了X(t)中各固有分量的周期情況,還同時顯示出這些周期分量在整體X(t)中各自的重要性。具體說,在X(t)中各周期分量的對應頻率處,譜密度函數圖應出現較明顯的凸起,分量的振幅越大,峰值越高,對X(t)的整體影響也越大。
事實上,無論問題本身是否具有周期性或不確定性(如連續型隨機過程或時間序列)都可以採用類似的方法在頻域上加以描述,只是表示的形式和意義比上面要復雜得多。時間序列的譜分析方法就是要通過估計時間序列的譜密度函數,找出序列中的各主要周期分量,通過對各分量的分析達到對時間序列主要周期波動特徵的把握。
根據譜分析理論,對一個平穩時間序列{Xt},如果其自協方差函數R(k)滿足
如何從實際問題所給定的時間序列 {Xt,t=1,2,…,n} 中估計出其譜密度或標准譜密度函數是譜分析要解決的主要問題。本書採用圖基-漢寧(Tukey-Hanning)窗譜估計法。
『貳』 怎麼利用svm對時間序列進行建模
SVM理論是在統計學習理論的基礎上發展起來的,由於統計學習理論和SVM方法對有限樣本情況下模式識別中的一些根本性的問題進行了系統的理論研究,很大程度上解決了以往的機器學習中模型的選擇與過學習問題、非線性和維數災難、局部極小點問題等。應用SVM進行回歸預測的步驟具體如下:
1)實驗規模的選取,決定訓練集的數量、測試集的數量,以及兩者的比例;2)預測參數的選取;3)對實驗數據進行規范化處理;4)核函數的確定;5)核函數參數的確定。其中參數的選擇對SVM的性能來說是十分重要的,對於本文的核函數使用RBF核函數,對於RBF核函數,SVM參數包括折衷參數C、核寬度C和不敏感參數E。目前SVM方法的參數、核函數的參數選擇,在國際上都還沒有形成統一的模式,也就是說最優SVM演算法參數選擇還只能是憑借經驗、實驗對比、大范圍的搜尋和交叉檢驗等進行尋優。實際應用中經常為了方便,主觀設定一個較小的正數作為E的取值,本文首先在C和C的一定范圍內取多個值來訓練,定下各個參數取值的大概范圍,然後利用留一法來具體選定參數值
股價時間序列的SVM模型最高階確定
股價數據是一個時間序列,從時間序列的特徵分析得知,股價具有時滯、後效性,當天的股價不僅還與當天各種特徵有關,還與前幾天的股價及特徵相關,所以有必要把前幾天的股價和特徵作為自變數來考慮。最高階確定基本原理是從低階開始對系統建模,然後逐步增加模型的階數,並用F檢驗對這些模型進行判別來確定最高階n,這樣才能更客觀反映股票價格的時滯特性。具體操作步驟如下:假定一多輸入單輸出回歸模型有N個樣本、一個因變數(股價)、m- 1個自變數(特徵),由低階到高階遞推地採用SVM模型去擬合系統(這兒的拓階就是把昨天股價當做自變數,對特徵同時拓階),並依次對相鄰兩個SVM模型採用F檢驗的方法判斷模型階次增加是否合適[ 7]。對相鄰兩模型SVM ( n)和SVM ( n+ 1)而言,有統計量Fi為:Fi=QSVR (n)- QSVR( n+1)QSVR (n)1N - m n - (m -1)mi =1,2,,, n(1)它服從自由度分別為m和(N - m n - (m -1) )的F分布,其中QSVR (n)和QSVR( n+1)分別為SVR ( n)和QSVR( n+1)的剩餘離差平方和,若Fi< F(?,m, N-m n- (m-1) ),則SVM (n )模型是合適的;反之,繼續拓展階數。
前向浮動特徵篩選
經過上述模型最高階數的確定後,雖然確定了階數為n的SVM模型,即n個特徵,但其中某些特徵對模型的預測精度有不利影響,本文採用基於SVM和留一法的前向浮動特徵特徵篩選演算法選擇對提高預測精度有利影響的特徵。令B= {xj: j=1,2,,, k}表示特徵全集, Am表示由B中的m個特徵組成的特徵子集,評價函數MSE (Am)和MSE (Ai) i =1,2,,, m -1的值都已知。本文採用的前向浮動特徵篩選演算法如下[9]:1)設置m =0, A0為空集,利用前向特徵篩選方法尋找兩個特徵組成特徵子集Am(m =2);2)使用前向特徵篩選方法從未選擇的特徵子集(B -Am)中選擇特徵xm +1,得到子集Am+1;3)如果迭代次數達到預設值則退出,否則執行4);4)選擇特徵子集Am+1中最不重要的特徵。如果xm+1是最不重要的特徵即對任意jXm +1, J (Am +1- xm+1)FJ(Am +1- xj)成立,那麼令m = m +1,返回2) (由於xm+1是最不重要的特徵,所以無需從Am中排除原有的特徵);如果最不重要的特徵是xr( r =1,2,,, m )且MSE (Am+1- xr) < MSE (Am)成立,排除xr,令A'm= Am+1- xr;如果m =2,設置Am= A'm,J (Am) = J (A'm), ,返回2),否則轉向步驟5);5)在特徵子集A'm中尋找最不重要的特徵xs,如果MSE (A'm- xs)EM SE (Am-1),那麼設置Am= A'm, MSE (Am)= MSE (A'm),返回2);如果M SE (A'm- xs) < M SE (Am -1),那麼A'm從中排除xs,得到A'm-1= Am- xs,令m = m -1;如果m =2,設置Am= A'm, MSE (Am) = MSE (A'm)返回2),否則轉向5)。最後選擇的特徵用於後續建模預測。
預測評價指標及參比模型
訓練結果評估階段是對訓練得出的模型推廣能力進行驗證,所謂推廣能力是指經訓練後的模型對未在訓練集中出現的樣本做出正確反應的能力。為了評價本文模型的優劣,選擇BPANN、多變數自回歸時間序列模型( CAR)和沒有進行拓階和特徵篩選的SVM作為參比模型。採用均方誤差(mean squared error, MSE)和平均絕對誤差百分率(mean ab-solute percentage error, MAPE)作為評價指標。MSE和MAP定義如下:M SE=E(yi- y^i)2n( 2)MAPE=E| yi- y^i| /yin( 3)其中yi為真值, y^i為預測值, n為預測樣本數。如果得出M SE, MAPE結果較小,則說明該評估模型的推廣能力強,或泛化能力強,否則就說明其推廣能力較差
『叄』 時間序列分析方法
時間序列是指一組在連續時間上測得的數據,其在數學上的定義是一組向量x(t), t=0,1,2,3,...,其中t表示數據所在的時間點,x(t)是一組按時間順序(測得)排列的隨機變數。包含單個變數的時間序列稱為單變數時間序列,而包含多個變數的時間序列則稱為多變數。
時間序列在很多方面多有涉及到,如天氣預報,每天每個小時的氣溫,股票走勢等等,在商業方面有諸多應用,如:
下面我們將通過一個航班數據來說明如何使用已有的工具來進行時間序列數據預測。常用來處理時間序列的包有三個:
對於基於AR、MA的方法一般需要數據預處理,因此本文分為三部分:
通過簡單的初步處理以及可視化可以幫助我們有效快速的了解數據的分布(以及時間序列的趨勢)。
觀察數據的頻率直方圖以及密度分布圖以洞察數據結構,從下圖可以看出:
使用 statsmodels 對該時間序列進行分解,以了解該時間序列數據的各個部分,每個部分都代表著一種模式類別。借用 statsmodels 序列分解我們可以看到數據的主要趨勢成分、季節成分和殘差成分,這與我們上面的推測相符合。
如果一個時間序列的均值和方差隨著時間變化保持穩定,則可以說這個時間序列是穩定的。
大多數時間序列模型都是在平穩序列的前提下進行建模的。造成這種情況的主要原因是序列可以有許多種(復雜的)非平穩的方式,而平穩性只有一種,更加的易於分析,易於建模。
在直覺上,如果一段時間序列在某一段時間序列內具有特定的行為,那麼將來很可能具有相同的行為。譬如已連續觀察一個星期都是六點出太陽,那麼可以推測明天也是六點出太陽,誤差非常小。
而且,與非平穩序列相比,平穩序列相關的理論更加成熟且易於實現。
一般可以通過以下幾種方式來檢驗序列的平穩性:
如果時間序列是平穩性的,那麼在ACF/PACF中觀測點數據與之前數據點的相關性會急劇下降。
下圖中的圓錐形陰影是置信區間,區間外的數據點說明其與觀測數據本身具有強烈的相關性,這種相關性並非來自於統計波動。
PACF在計算X(t)和X(t-h)的相關性的時候,挖空在(t-h,t)上所有數據點對X(t)的影響,反應的是X(t)和X(t-h)之間真實的相關性(直接相關性)。
從下圖可以看出,數據點的相關性並沒有急劇下降,因此該序列是非平穩的。
如果序列是平穩的,那麼其滑動均值/方差會隨著時間的變化保持穩定。
但是從下圖我們可以看到,隨著時間的推移,均值呈現明顯的上升趨勢,而方差也呈現出波動式上升的趨勢,因此該序列是非平穩的。
一般來講p值小於0.05我們便認為其是顯著性的,可以拒絕零假設。但是這里的p值為0.99明顯是非顯著性的,因此接受零假設,該序列是非平穩的。
從上面的平穩性檢驗我們可以知道該時間序列為非平穩序列。此外,通過上面1.3部分的序列分解我們也可以看到,該序列可分解為3部分:
我們可以使用數據轉換來對那些較大的數據施加更大的懲罰,如取對數、開平方根、立方根、差分等,以達到序列平穩的目的。
滑動平均後數據失去了其原來的特點(波動式上升),這樣損失的信息過多,肯定是無法作為後續模型的輸入的。
差分是常用的將非平穩序列轉換平穩序列的方法。ARIMA中的 'I' 便是指的差分,因此ARIMA是可以對非平穩序列進行處理的,其相當於先將非平穩序列通過差分轉換為平穩序列再來使用ARMA進行建模。
一般差分是用某時刻數值減去上一時刻數值來得到新序列。但這里有一點區別,我們是使用當前時刻數值來減去其對應時刻的滑動均值。
我們來看看剛剛差分的結果怎麼樣。
讓我們稍微總結下我們剛剛的步驟:
通過上面的3步我們成功的將一個非平穩序列轉換成了一個平穩序列。上面使用的是最簡單的滑動均值,下面我們試試指數滑動平均怎麼樣。
上面是最常用的指數滑動平均的定義,但是pandas實現的指數滑動平均好像與這個有一點區別,詳細區別還得去查pandas文檔。
指數滑動均值的效果看起來也很差。我們使用差分+指數滑動平均再來試試吧。
在上面我們通過 取log+(指數)滑動平均+差分 已經成功將非平穩序列轉換為了平穩序列。
下面我們看看,轉換後的平穩序列的各個成分是什麼樣的。不過這里我們使用的是最簡單的差分,當前時刻的值等於原始序列當前時刻的值減去原始序列中上一時刻的值,即: x'(t) = x(t) - x(t-1)。
看起來挺不錯,是個平穩序列的樣子。不過,還是檢驗一下吧。
可以看到,趨勢(Trend)部分已基本被去除,但是季節性(seasonal)部分還是很明顯,而ARIMA是無法對含有seasonal的序列進行建模分析的。
在一開始我們提到了3個包均可以對時間序列進行建模。
為了簡便,這里 pmdarima 和 statsmodels.tsa 直接使用最好的建模方法即SARIMA,該方法在ARIMA的基礎上添加了額外功能,可以擬合seasonal部分以及額外添加的數據。
在使用ARIMA(Autoregressive Integrated Moving Average)模型前,我們先簡單了解下這個模型。這個模型其實可以包括三部分,分別對應著三個參數(p, d, q):
因此ARIMA模型就是將AR和MA模型結合起來然後加上差分,克服了不能處理非平穩序列的問題。但是,需要注意的是,其仍然無法對seasonal進行擬合。
下面開始使用ARIMA來擬合數據。
(1) 先分訓練集和驗證集。需要注意的是這里使用的原始數據來進行建模而非轉換後的數據。
(2)ARIMA一階差分建模並預測
(3)對差分結果進行還原
先手動選擇幾組參數,然後參數搜索找到最佳值。需要注意的是,為了避免過擬合,這里的階數一般不太建議取太大。
可視化看看結果怎麼樣吧。
(6)最後,我們還能對擬合好的模型進行診斷看看結果怎麼樣。
我們主要關心的是確保模型的殘差(resial)部分互不相關,並且呈零均值正態分布。若季節性ARIMA(SARIMA)不滿足這些屬性,則表明它可以進一步改善。模型診斷根據下面的幾個方面來判斷殘差是否符合正態分布:
同樣的,為了方便,我們這里使用 pmdarima 中一個可以自動搜索最佳參數的方法 auto_arima 來進行建模。
一般來說,在實際生活和生產環節中,除了季節項,趨勢項,剩餘項之外,通常還有節假日的效應。所以,在prophet演算法裡面,作者同時考慮了以上四項,即:
上式中,
更多詳細Prophet演算法內容可以參考 Facebook 時間序列預測演算法 Prophet 的研究 。
Prophet演算法就是通過擬合這幾項,然後把它們累加起來得到時間序列的預測值。
Prophet提供了直觀且易於調整的參數:
Prophet對輸入數據有要求:
關於 Prophet 的使用例子可以參考 Prophet example notebooks
下面使用 Prophet 來進行處理數據。
參考:
Facebook 時間序列預測演算法 Prophet 的研究
Prophet example notebooks
auto_arima documentation for selecting best model
數據分析技術:時間序列分析的AR/MA/ARMA/ARIMA模型體系
https://github.com/advaitsave/Introction-to-Time-Series-forecasting-Python
時間序列分析
My First Time Series Comp (Added Prophet)
Prophet官方文檔: https://facebookincubator.github.io
『肆』 應用時間序列分析有哪幾種方法
時間序列分析常用的方法:趨勢擬合法和平滑法。
1、趨勢擬合法就是把時間作為自變數,相應的序列觀察值作為因變數,建立序列值隨時間變化的回歸模型的方法。包括線性擬合和非線性擬合。
線性擬合的使用場合為長期趨勢呈現出線形特徵的場合。參數估計方法為最小二乘估計。
非線性擬合的使用場合為長期趨勢呈現出非線形特徵的場合。其參數估計的思想是把能轉換成線性模型的都轉換成線性模型,用線性最小二乘法進行參數估計。實在不能轉換成線性的,就用迭代法進行參數估計。
2、平滑法是進行趨勢分析和預測時常用的一種方法。它是利用修勻技術,削弱短期隨機波動對序列的影響,使序列平滑化,從而顯示出長期趨勢變化的規律 。
(4)時間序列擬合股票擴展閱讀
時間序列分析的主要用途:
1、系統描述
根據對系統進行觀測得到的時間序列數據,用曲線擬合方法對系統進行客觀的描述。
2、系統分析
當觀測值取自兩個以上變數時,可用一個時間序列中的變化去說明另一個時間序列中的變化,從而深入了解給定時間序列產生的機理。
3、預測未來
一般用ARMA模型擬合時間序列,預測該時間序列未來值。
4、決策和控制
根據時間序列模型可調整輸入變數使系統發展過程保持在目標值上,即預測到過程要偏離目標時便可進行必要的控制。
『伍』 時間序列基礎
1.隨機時序分析的基本概念
1)隨機變數:簡單的隨機現象,如某班一天學生出勤人數,是靜態的。
2)隨機過程:隨機現象的動態變化過程。動態的。如某一時期各個時刻的狀態。
所謂隨機過程,就是說現象的變化沒有確定形式,沒有必然的變化規律。用數學語言來說,就是事物變化的過程不能用一個(或幾個)時間t的確定的函數來描述。
如果對於每一特定的t屬於T(T是時間集合),X(t)是一個隨機變數,則稱這一族無窮多個隨機變數{X(t),t屬於T}是一個隨機過程。
2.白雜訊序列
1)純隨機過程:隨機變數X(t)(t=1,2,3……),如果是由一個不相關的隨機變數的序列構成的,即對於所有s不等於k,隨機變數Xs和Xk的協方差為零,則稱其為 純隨機過程 。
2)白雜訊過程:如果一個純隨機過程的期望和方差均為常數,則稱之為 白雜訊過程 。白雜訊過程的樣本實稱成為白雜訊序列,簡稱白雜訊。
3)高斯白雜訊序列:如果白雜訊具體是服從均值為0、方差為常數的正態分布,那就是 高斯白雜訊序列 。
3.平穩性序列
1)平穩性可以說是時間序列分析的基礎。平穩的通俗理解就是時間序列的一些行為不隨時間改變, 所謂平穩過程就是其統計特性不隨時間的平移而變化的過程。
2)即時間序列內含的規律和邏輯,要在被預測的未來時間段內能夠延續下去。這樣我們才能用歷史信息去預測未來信息,類似機器學習中的訓練集和測試集同分布。
3)如果時間序列的變化是沒有規律的、完全隨機的,那麼預測模型也就沒有用。
4)平穩性的數學表達:如果時間序列在某一常數附近波動且波動范圍有限,即有常數均值和常數方差,並且延遲k期的序列變數的自協方差和自相關系數是相等的或者說延遲k期的序列變數之間的影響程度是一樣的,則稱該序列為平穩序列。簡單說就是沒有明顯趨勢且波動范圍有限。
4.嚴平穩/強平穩
1)通俗來說,就是時間序列的聯合分布隨著時間變化嚴格保持不變。
2)數學表達:如果對所有的時刻 t, (yt1,yt2,…ytm)的聯合分布與(y(t1+k),(yt2+k),…y(tm+k))的聯合分布相同,我們稱時間序列 {yt} 是嚴平穩的。也就是時間序列的聯合分布在時間的平移變換下保持不變。
5.弱平穩
1)數學表達:均值不變,協方差Cov(yt,y(t-k))=γk,γk依賴於k。
2)即協方差也不隨時間改變,而僅與時間差k相關。
3)可以根據根據時間序列的折線圖等大致觀察數據的(弱)平穩性:*所有數據點在一個常數水平上下以相同幅度波動。
4)弱平穩的線性時間序列具有短期相關性(證明見參考書),即通常只有近期的序列值對現時值得影響比較明顯,間隔越遠的過去值對現時值得影響越小。至於這個間隔,也就是下面要提到的模型的階數。
6.嚴平穩和弱平穩的關系
1)嚴平穩是一個很強的條件,難以用經驗的方法驗證,所以一般將弱平穩性作為模型的假設條件。
2)兩者並不是嚴格的包含與被包含關系,但當時間序列是正態分布時,二者等價。
7.單位根非平穩序列(可轉換為平穩序列的非平穩序列)
在金融數據中,通常假定資產收益率序列是弱平穩的。但還有一些研究對象,比如利率、匯率、資產的價格序列,往往不是平穩的。對於資產的價格序列,其非平穩性往往由於價格沒有固定的水平,這樣的非平穩序列叫做單位根(unit-root)非平穩序列。
1)最著名的單位根非平穩序列的例子是隨機遊走(random walk)模型:
pt=μ+p(t-1)+εt
μ是常數項(漂移:drift)。εt是白雜訊序列,則pt就是一個隨機遊走。它的形式和AR模型很像,但不同之處在於,AR模型中,系數的模需要小於1,這是AR的平穩性條件,而隨機遊走相當於系數為1的AR公式,不滿足AR模型的平穩性條件。
隨機遊走模型可作為(對數)股價運動的統計模型,在這樣的模型下,股價是不可預測的。因為εt關於常數對稱,所以在已知p(t-1)的條件下,pt上升或下降的概率都是50%,無從預測。
2)帶趨勢項的時間序列
pt=β0+β1*t+yt,yt是一個平穩時間序列。
帶漂移的隨機遊走模型,其均值和方差都隨時間變化;而帶趨勢項的時間序列,其均值隨時間變化,但方差則是不變的常數。
單位根非平穩序列可以進行平穩化處理轉換為平穩序列。比如用差分法處理隨機遊走序列,用用簡單的回歸分析移除時間趨勢處理帶趨勢項的時間序列。
建立具體的模型,需解決如下三個問題模型的具體形式、時序變數的滯後期以及隨機擾動項的結構。
μ是yt的均值;ψ是系數,決定了時間序列的線性動態結構,也被稱為權重,其中ψ0=1;{εt}為高斯白雜訊序列,它表示時間序列{yt}在t時刻出現了新的信息,所以εt稱為時刻t的innovation(新信息)或shock(擾動)。
線性時間序列模型,就是描述線性時間序列的權重ψ的計量經濟模型或統計模型,比如ARIMA。因為並非所有金融數據都是線性的,所以不是所有金融數據都適合ARIMA等模型。
①自回歸模型(AR)
用變數自身的歷史時間數據對變數進行回歸,從而預測變數未來的時間數據。
p階(滯後值,可暫理解為每個移動窗口有p期)自回歸公式即AR(p):
②移動平均模型(MA)
移動平均模型關注的是誤差項的累加,能夠有效消除預測中的隨機波動。
可以看作是白雜訊序列的簡單推廣,是白雜訊序列的有限線性組合。也可以看作是參數受到限制的無窮階AR模型。
③自回歸移動平均模型(ARMA)
有時候,要用很多階數的AR和MA模型(見後面的定階問題),為解決這個問題提出ARMA模型。
對於金融中的收益率序列,直接使用ARMA模型的時候較少,但其概念與波動率建模很相關,GARCH模型可以認為是對{εt}的ARMA模型。
④自回歸差分移動平均模型(ARIMA)
ARIMA比ARMA僅多了個"I",代表的含義可理解為 差分。
一些非平穩序列經過d次差分後,可以轉化為平穩時間序列。我們對差分1次後的序列進行平穩性檢驗,若果是非平穩的,則繼續差分。直到d次後檢驗為平穩序列。
⑤一般分析過程
1、 平穩性檢驗
ADF檢驗(單位根檢驗):這是一種檢查數據穩定性的統計測試。
原假設(無效假設):時間序列是不穩定的。
2、 平穩化處理
平穩化的基本思路是:通過建模並估計趨勢和季節性這些因素,並從時間序列中移除,來獲得一個穩定的時間序列,然後再使用統計預測技術來處理時間序列,最後將預測得到的數據,通過加入趨勢和季節性等約束,來還原到原始時間序列數據。
2.0 對數變換
對某些時間序列需要取對數處理,一是可以將一些指數增長的時間序列變成線性增長,二是可以穩定序列的波動性。對數變換在經濟金融類時間序列中常用。
2.1 差分法
如果是單位根非平穩的(比如隨機遊走模型),可以對其進行差分化。它能讓數據呈現一種更加平穩的趨勢。差分階數的選擇通常越小越好,只要能夠使得序列穩定就行。
2.2 平滑法
移動平均、指數加權移動平均
註:經差分或平滑後的數據可能因包含缺失值而不能使用檢驗,需要將缺失值去除
2.3 分解法
建立有關趨勢和季節性的模型,並從模型中刪除它們。
3 、建立模型:模型選擇和模型的定階
模型的選擇即在AR、MA、ARMA、ARIMA中間如何選擇。
模型的定階即指定上面過程中產生的超參數p、q和d(差分的階數)。
(1)用ACF和PACF圖判斷使用哪種線性時間序列模型
AR模型:ACF拖尾,PACF截尾,看PACF定階。
MA模型:ACF截尾,PACF拖尾,看ACF定階。
ARMA模型:都拖尾。(EACF定階)
截尾:在某階後 迅速 趨於0(後面大部分階的對應值在二倍標准差以內);
拖尾:按指數衰減或震盪,值到後面還有增大的情況。
ARIMA模型:適用於差分後平穩的序列。
(2)利用 信息准則 函數選擇合適的階
對於個數不多的時序數據,可以通過觀察自相關圖和偏相關圖來進行模型識別,倘若要分析的時序數據量較多,例如要預測每隻股票的走勢,就不可能逐個去調參了。這時可以依據AIC或BIC准則識別模型的p, q值,通常認為AIC或BIC值越小的模型相對更優。
AIC或BIC准則綜合考慮了殘差大小和自變數的個數,殘差越小AIC或BIC值越小,自變數個數越多AIC或BIC值越大。AIC或BIC准則可以說是對模型過擬合設定了一個標准。
AIC (Akaike information criterion,赤池信息度量准則)
AIC=2k-2ln(L)
· BIC (Bayesian information criterion,貝葉斯信息度量准則)
BIC=kln(n)-2ln(L)
k為模型的超參數個數,n為樣本數量,L為似然函數。
類比機器學習中的損失函數=經驗損失函數+正則化項。
模型選擇標准:AIC和BIC越小越好(在保證精度的情況下模型越簡單越好)
4 、模型檢驗和評估(之前應切分訓練集和驗證集)
檢驗殘差是否符合標准(QQ圖):是否服從均值為0,方差是常數的正態分布(εt是否是高斯白雜訊序列)。
擬合優度檢驗(模型的評估):R 2和調整後的R 2(R^2隻適用於平穩序列)。
5 、預測
如果之前進行了標准化、差分化等,需要進行還原:
標准化的還原要注意是log(x+1)還是log(x)。
1 、基礎概念
波動率
在期權交易中,波動率是標的資產的收益率的條件標准差。之前的平穩序列假設方差為常數,但當序列的方差不是常數時,我們需要用波動率對其變化進行描述。
對於金融時間序列,波動率往往具有以下特徵:
存在波動率聚集(volatility cluster)現象。 即波動率在一些 時間段 上高,一些時間段上低。
波動率以連續時間變化,很少發生跳躍。
波動率不會發散到無窮,而是在固定的范圍內變化(統計學角度上說,其是平穩的)
杠桿效應:波動率對價格大幅上升和大幅下降的反應是不同的。
波動率模型/條件異方差模型
給資產收益率的波動率進行建模的模型叫做條件異方差模型。這些波動率模型試圖刻畫的數據有這樣的特性: 它們是序列不相關或低階序列相關的(比如股票的日收益率可能相關,但月收益率則無關),但又不是獨立的 。波動率模型就是試圖刻畫序列的這種非獨立性。
定義信息集F(t-1)是包含過去收益率的一切線性函數,假定F(t-1)給定,那麼在此條件下時間序列yt的條件均值和條件方差分別表示為:
『陸』 時間序列分析模型——ARIMA模型
姓名:車文揚 學號:16020199006
【嵌牛導讀】:什麼是 ARIMA模型
【嵌牛鼻子】: ARIMA
【嵌牛提問】: ARIMA模型可以具體應用到什麼地方?
【嵌牛正文】:
一、研究目的
傳統的經濟計量方法是以經濟理論為基礎來描述變數關系的模型。但經濟理論通常不足以對變數之間的動態聯系提供一個嚴密的說明,而且內生變數既可以出現在方程的左端又可以出現在方程的右端使得估計和推斷變得更加復雜。為了解決這些問題而出現了一種用非結構方法來建立各個變數之間關系的模型,如向量自回歸模型(vector autoregression,VAR)和向量誤差修正模型(vector error correction model,VEC)。
在經典的回歸模型中,主要是 通過回歸分析來建立不同變數之間的函數關系(因果關系),以考察事物之間的聯系 。本案例要討論如何 利用時間序列 數據本身建立模型,以研究事物發展自身的規律 ,並據此對事物未來的發展做出預測。研究時間序列數據的意義:在現實中,往往需要研究某個事物其隨時間發展變化的規律。這就需要通過研究該事物過去發展的歷史記錄,以得到其自身發展的規律。在現實中很多問題,如利率波動、收益率變化、反映股市行情的各種指數等通常都可以表達為時間序列數據,通過研究這些數據,發現這些經濟變數的變化規律(對於某些變數來說,影響其發展變化的因素太多,或者是主要影響變數的數據難以收集,以至於難以建立回歸模型來發現其變化發展規律,此時,時間序列分析模型就顯現其優勢——因為這類模型不需要建立因果關系模型,僅需要其變數本身的數據就可以建模),這樣的一種建模方式就屬於時間序列分析的研究范疇。而時間序列分析中,ARIMA模型是最典型最常用的一種模型。
二、ARIMA模型的原理
1、ARIMA的含義。 ARIMA包含3個部分,即AR、I、MA。AR——表示auto regression,即自回歸模型;I——表示integration,即單整階數,時間序列模型必須是平穩性序列才能建立計量模型,ARIMA模型作為時間序列模型也不例外,因此首先要對時間序列進行單位根檢驗,如果是非平穩序列,就要通過差分來轉化為平穩序列,經過幾次差分轉化為平穩序列,就稱為幾階單整;MA——表示moving average,即移動平均模型。可見,ARIMA模型實際上是AR模型和MA模型的組合。
ARIMA模型與ARMA模型的區別:ARMA模型是針對平穩時間序列建立的模型。ARIMA模型是針對非平穩時間序列建模。換句話說,非平穩時間序列要建立ARMA模型,首先需要經過差分轉化為平穩時間序列,然後建立ARMA模型。
2、ARIMA模型的原理。 正如前面介紹,ARIMA模型實際上是AR模型和MA模型的組合。
AR模型的形式如下:
其中:參數為常數,是階自回歸模型的系數;為自回歸模型滯後階數;是均值為0,方差為的白雜訊序列。模型記做——表示階自回歸模型。
MA模型的形式如下:
其中:參數為常數;參數是階移動平均模型的系數;為移動平均模型滯後階數;是均值為0,方差為的白雜訊序列。模型記做——表示階移動平均模型。
ARIMA模型的形式如下:
模型記做。為自回歸模型滯後階數,為時間序列單整階數,為階移動平均模型滯後階數。當時,,此時ARIMA模型退化為MA模型;當時,,ARIMA模型退化為AR模型。
3、建立ARIMA模型需要解決的3個問題。 由以上分析可知,建立一個ARIMA模型需要解決以下3個問題:
(1)將非平穩序列轉化為平穩序列。
(2)確定模型的形式。即模型屬於AR、MA、ARMA中的哪一種。這主要是通過 模型識別 來解決的。
(3)確定變數的滯後階數。即和的數字。這也是通過 模型識別 完成的。
4、ARIMA模型的識別
ARIMA模型識別的工具為自相關系數(AC)和偏自相關系數(PAC)。
自相關系數: 時間序列滯後k階的自相關系數由下式估計:
其中是序列的樣本均值,這是相距k期值的相關系數。稱為時間序列的自相關系數,自相關系數可以部分的刻畫一個隨機過程的形式。它表明序列的鄰近數據之間存在多大程度的相關性。
偏自相關系數: 偏自相關系數是在給定的條件下,之間的條件相關性。其相關程度用偏自相關系數度量。在k階滯後下估計偏自相關系數的計算公式為:
其中是在k階滯後時的自相關系數估計值。稱為偏相關是因為它度量了k期間距的相關而不考慮k-1期的相關。如果這種自相關的形式可由滯後小於k階的自相關表示,那麼偏相關在k期滯後下的值趨於0。
識別:
AR(p) 模型 的自相關系數是隨著k的增加而呈現指數衰減或者震盪式的衰減,具體的衰減形式取決於AR(p)模型滯後項的系數;AR(p)模型的偏自相關系數是p階截尾的。因此可以通過識別AR(p)模型的偏自相關系數的個數來確定AR(p)模型的階數p。
MA(q) 模型 的自相關系數在q步以後是截尾的。MA(q)模型的偏自相關系數一定呈現出拖尾的衰減形式。
ARMA(p,q) 模型 是AR(p)模型和MA(q)模型的組合模型,因此ARMA(p,q)的自相關系數是AR(p)自相關系數和MA(q)的自相關系數的混合物。當p=0時,它具有截尾性質;當q=0時,它具有拖尾性質;當p,q都不為0,它具有拖尾性質。
通常,ARMA(p,q)過程的偏自相關系數可能在p階滯後前有幾項明顯的 尖柱 ,但從p階滯後項開始逐漸趨於0;而它的自相關系數則是在q階滯後前有幾項明顯的 尖柱 ,從q階滯後項開始逐漸趨於0。
三、數據和變數的選擇
本案例選取我國實際GDP的時間序列建立ARIMA模型,樣本區間為1978—2001。數據來源於國家統計局網站上各年的統計年鑒,GDP數據均通過GDP指數換算為以1978年價格計算的值。見表1:
表1:我國1978—2003年GDP(單位:億元)
年度GDP年度GDP年度GDP
19783605.6198610132.8199446690.7
19794074198711784.7199558510.5
19804551.3198814704199668330.4
19814901.4198916466199774894.2
19825489.2199018319.5199879003.3
19836076.3199121280.4199982673.1
19847164.4199225863.7200089340.9
19858792.1199334500.7200198592.9
四、ARIMA模型的建立步驟
1、單位根檢驗,確定單整階數。
由單位根檢驗的案例分析可知,GDP時間序列為2階單整的。即d=2。通過2次差分,將GDP序列轉化為平穩序列 。利用序列來建立ARMA模型。
2、模型識別
確定模型形式和滯後階數,通過自相關系數(AC)和偏自相關系數(PAC)來完成識別。
首先將GDP數據輸入Eviews軟體,查看其二階差分的AC和PAC。打開GDP序列窗口,點擊View按鈕,出現下來菜單,選擇Correlogram(相關圖),如圖:
打開相關圖對話框,選擇二階差分(2nd difference),點擊OK,得到序列的AC和PAC。(也可以將GDP序列先進行二階差分,然後在相關圖中選擇水平(Level))
從圖中可以看出,序列的自相關系數(AC)在1階截尾,偏自相關系數(PAC)在2階截尾。因此判斷模型為ARMA模型,且,。即:
3、建模
由以上分析可知,建立模型。首先將GDP序列進行二次差分,得到序列。然後在Workfile工作文件簿中新建一個方程對話框,採用 列表法 的方法對方程進行定義。自回歸滯後項用ar表示,移動平均項用ma表示。本例中自回歸項有兩項,因此用ar(1)、ar(2)表示,移動平均項有一項,用ma(1)表示,如圖:
點擊確定,得到模型估計結果:
從擬合優度看,,模型擬合效果較好,DW統計量為2.43,各變數t統計量也通過顯著性檢驗,模型較為理想。對殘差進行檢驗,也是平穩的,因此判斷模型建立正確。