ARIMA時(shí)間序列模型


1 概念

? ? ? ?ARIMA模型,全稱為自回歸積分滑動(dòng)平均模型(Autoregressive Integrated Moving Average Model),是由博克思(Box)和詹金斯(Jenkins)于20世紀(jì)70年代初提出的一種時(shí)間序列預(yù)測方法。ARIMA模型是指在將非平穩(wěn)時(shí)間序列轉(zhuǎn)化為平穩(wěn)時(shí)間序列過程中,將因變量僅對(duì)它的滯后值以及隨機(jī)誤差項(xiàng)的現(xiàn)值和滯后值進(jìn)行回歸所建立的模型。

注:時(shí)間序列模型適用于做短期預(yù)測,即統(tǒng)計(jì)序列過去的變化模式還未發(fā)生根本性變化。


2 基本思想

? ? ? ? ARIMA模型的基本思想是:將預(yù)測對(duì)象隨時(shí)間推移而形成的數(shù)據(jù)序列視為一個(gè)隨機(jī)序列,用一定的數(shù)學(xué)模型來近似描述這個(gè)序列。這個(gè)模型一旦被識(shí)別后就可以從時(shí)間序列的過去值及現(xiàn)在值來預(yù)測未來值?,F(xiàn)代統(tǒng)計(jì)方法、計(jì)量經(jīng)濟(jì)模型在某種程度上已經(jīng)能夠幫助企業(yè)對(duì)未來進(jìn)行預(yù)測。


3 原理

? ? ? ? ARIMA(p,d,q) 稱為差分自回歸移動(dòng)平均模型,根據(jù)原序列是否平穩(wěn)以及回歸中所含部分的不同,包括移動(dòng)平均過程(MA)、自回歸過程(AR)、自回歸移動(dòng)平均過程(ARMA)和自回歸滑動(dòng)平均混合過程(ARIMA)。

移動(dòng)平均過程(MA(q))

自回歸過程(AR(p))

自回歸移動(dòng)平均過程(ARMA(p,q))

自回歸積分滑動(dòng)平均過程 (ARIMA(p,d,q))

? ? ? ? AR是自回歸,p為自回歸項(xiàng);MA為移動(dòng)平均,q為移動(dòng)平均項(xiàng)數(shù),d為時(shí)間序列變?yōu)槠椒€(wěn)時(shí)間序列時(shí)所做的差分次數(shù)。

3.1 模型預(yù)測步驟

1.獲取被觀測系統(tǒng)時(shí)間序列數(shù)據(jù);

2.對(duì)數(shù)據(jù)繪圖,觀測是否為平穩(wěn)時(shí)間序列;對(duì)于非平穩(wěn)時(shí)間序列要先進(jìn)行d階差分運(yùn)算,化為平穩(wěn)時(shí)間序列;若為平穩(wěn)序列,則直接用ARMA(p,q)模型。

3.經(jīng)過第二步處理,已經(jīng)得到平穩(wěn)時(shí)間序列。要對(duì)平穩(wěn)時(shí)間序列分別求得其自相關(guān)系數(shù)ACF偏自相關(guān)系數(shù)PACF,通過對(duì)自相關(guān)圖和偏自相關(guān)圖的分析,得到最佳的階層 p階數(shù) q ;

4.由以上得到的d、q、p,得到ARIMA模型。然后開始對(duì)得到的模型進(jìn)行模型檢驗(yàn)。以證實(shí)所得模型確實(shí)與所觀察到的數(shù)據(jù)特征相符。若不相符,重新回到第3步。


4 預(yù)測實(shí)例

? ? ? ?目前常用的數(shù)據(jù)分析語言為R和python,本文先采用Python在測試數(shù)據(jù)上實(shí)現(xiàn)預(yù)測過程。在后期編輯階段補(bǔ)充R語言的實(shí)現(xiàn)過程。

4.1 獲取數(shù)據(jù)

? ? ? 具有周期性(7天)的測試數(shù)據(jù),即每連續(xù)的7個(gè)數(shù)據(jù)屬于一個(gè)周期內(nèi),具體數(shù)據(jù)如下所示:

10930,10318,10595,10972,7706,6756,9092,10551,9722,10913,11151,8186,6422,6337,11649,11652,10310,12043,7937,6476,9662,9570,9981,9331,9449,6773,6304,9355,10477,10148,10395,11261,8713,7299,10424,10795,11069,11602,11427,9095,7707,10767,12136,12812,12006,12528,10329,7818,11719,11683,12603,11495,13670,11337,10232,13261,13230,15535,16837,19598,14823,11622,19391,18177,19994,14723,15694,13248,9543,12872,13101,15053,12619,13749,10228,9725,14729,12518,14564,15085,14722,11999,9390,13481,14795,15845,15271,14686,11054,10395

繪制測試數(shù)據(jù)的時(shí)間序列圖,如圖1所示:

dta=pd.Series(dta)

dta.index = pd.Index(sm.tsa.datetools.dates_from_range('2001','2100'))

dta.plot(figsize=(12,8))


圖1 數(shù)據(jù)的時(shí)間序列圖

4.2 ?時(shí)間序列的差分

? ? ? ARIMA 模型對(duì)時(shí)間序列的要求是平穩(wěn)型。因此,當(dāng)你得到一個(gè)非平穩(wěn)的時(shí)間序列時(shí),首先要做的即是做時(shí)間序列的差分,直到得到一個(gè)平穩(wěn)時(shí)間序列。

? ? ? 平穩(wěn):就是圍繞著一個(gè)常數(shù)上下波動(dòng)且波動(dòng)范圍有限,即有常數(shù)均值和常數(shù)方差。如果有明顯的趨勢(shì)或周期性,那它通常不是平穩(wěn)序列。一般有三種方法:

(1)直接畫出時(shí)間序列的趨勢(shì)圖,看趨勢(shì)判斷。

(2)畫自相關(guān)和偏自相關(guān)圖:平穩(wěn)的序列的自相關(guān)圖(Autocorrelation)和偏相關(guān)圖(Partial Correlation)要么拖尾,要么是截尾。

(3)單位根檢驗(yàn):檢驗(yàn)序列中是否存在單位根,如果存在單位根就是非平穩(wěn)時(shí)間序列。

? ? ? ?不平穩(wěn)序列可以通過差分轉(zhuǎn)換為平穩(wěn)序列。d階差分就是相距d期的兩個(gè)序列值之間相減。如果一個(gè)時(shí)間序列經(jīng)過差分運(yùn)算后具有平穩(wěn)性,則該序列為差分平穩(wěn)序列,可以使用ARIMA模型進(jìn)行分析。如果你對(duì)時(shí)間序列做d次差分才能得到一個(gè)平穩(wěn)序列,那么可以使用ARIMA(p,d,q)模型,其中d是差分次數(shù)。

fig = plt.figure(figsize=(12,8))

ax1= fig.add_subplot(111)

diff1 = dta.diff(1) ?#一階差分序列轉(zhuǎn)化

diff1.plot(ax=ax1)


圖2 一階、二階差分后的時(shí)間序列趨勢(shì)圖

fig = plt.figure(figsize=(12,8))

ax2= fig.add_subplot(111)

diff2 = dta.diff(2) ?#二階差分序列轉(zhuǎn)化

diff2.plot(ax=ax2)

? ? ? 一階差分的時(shí)間序列的均值和方差已經(jīng)基本平穩(wěn),二階差分后的時(shí)間序列與一階差分相差不大,并且二者隨著時(shí)間推移,時(shí)間序列的均值和方差保持不變。因此可以將差分次數(shù)d設(shè)置為1。

? ? ? 穩(wěn)定性的標(biāo)準(zhǔn)非常嚴(yán)格,可以通過兩種方式判斷。

? ? (1) 如果時(shí)間序列隨著時(shí)間產(chǎn)生恒定的統(tǒng)計(jì)特征,根據(jù)實(shí)際目的我們可以假設(shè)該序列是穩(wěn)定的。如下:

a. 恒定的平均數(shù)

b. 恒定的方差

c. 不隨時(shí)間變化的自協(xié)方差

? ? (2)針對(duì)平穩(wěn)的檢驗(yàn),叫“ADF單位根平穩(wěn)型檢驗(yàn)”,這是一種檢查數(shù)據(jù)穩(wěn)定性的統(tǒng)計(jì)測試。無效假設(shè):時(shí)間序列是不穩(wěn)定的。測試結(jié)果由測試統(tǒng)計(jì)量和一些置信區(qū)間的臨界值組成。如果“測試統(tǒng)計(jì)量”少于“臨界值”,我們可以拒絕無效假設(shè),并認(rèn)為序列是穩(wěn)定的。本文暫時(shí)不做討論,以后會(huì)更新。

4.3 確定合適的?p?q

經(jīng)過第2步,我們已經(jīng)得到了一個(gè)穩(wěn)定的時(shí)間序列,現(xiàn)在需要獲得p和q,從而確定選擇使用哪種模型更合適。

4.3.1 繪制平穩(wěn)時(shí)間序列的自相關(guān)圖和偏自相關(guān)圖。

dta= dta.diff(1)

fig = plt.figure(figsize=(12,8))

ax1=fig.add_subplot(211)

fig = sm.graphics.tsa.plot_acf(dta,lags=40,ax=ax1) ? #lags代表階數(shù)

ax2 = fig.add_subplot(212)

fig = sm.graphics.tsa.plot_pacf(dta,lags=40,ax=ax2)

圖3 自相關(guān)圖、偏相關(guān)圖

通過觀察圖3中的acf圖和pacf圖,可以得到:

* 自相關(guān)圖顯示滯后有三個(gè)階超出了置信邊界(第一條線代表起始點(diǎn),不在滯后范圍內(nèi));

* 偏相關(guān)圖顯示在滯后1至7階(lags 1,2,…,7)時(shí)的偏自相關(guān)系數(shù)超出了置信邊界,從lag 7之后偏自相關(guān)系數(shù)值縮小至0

則有以下模型可以供選擇:

1. ARMA(0,1)模型:即自相關(guān)圖在滯后1階之后縮小為0,且偏自相關(guān)縮小至0,則是一個(gè)階數(shù)q=1的移動(dòng)平均模型;

2. ARMA(7,0)模型:即偏自相關(guān)圖在滯后7階之后縮小為0,且自相關(guān)縮小至0,則是一個(gè)階層p=7的自回歸模型;

3. ARMA(7,1)模型:即使得自相關(guān)和偏自相關(guān)都縮小至零。則是一個(gè)混合模型。

4. …其他供選擇的模型。

補(bǔ)充:(1) 分析得到的自相關(guān)圖和偏自相關(guān)圖,確定用AR(p)模型還是MA(q)模型亦或是ARMA(p,q)模型依據(jù)為

表1 ?ARMA模型定階的基本原則

(2) 若都拖尾,得到ARMA(p,q)模型,自相關(guān)圖有幾個(gè)在兩倍標(biāo)準(zhǔn)差之外就能確定p,偏自相關(guān)圖突出兩倍標(biāo)準(zhǔn)差的確定q。

4.3.2 模型選擇/參數(shù)選擇

對(duì)于上述可供選擇的模型,通常采用AIC或者SBC來判斷得到的p和q參數(shù)值的好壞。我們知道:增加自由參數(shù)的數(shù)目提高了擬合的優(yōu)良性,AIC鼓勵(lì)數(shù)據(jù)擬合的優(yōu)良性但是盡量避免出現(xiàn)過度擬合(Overfitting)的情況。所以優(yōu)先考慮的模型應(yīng)是AIC值最小的那一個(gè)。赤池信息準(zhǔn)則的方法是尋找可以最好地解釋數(shù)據(jù)但包含最少自由參數(shù)的模型。不僅僅包括AIC準(zhǔn)則,目前選擇模型常用如下準(zhǔn)則:

AIC=-2 ln(L) + 2 k 中文名字:赤池信息量 akaike information criterion

BIC=-2 ln(L) + ln(n)*k 中文名字:貝葉斯信息量 bayesian information criterion

HQ=-2 ln(L) + ln(ln(n))*k hannan-quinn criterion

SBC=-2*ln(模型中的極大似然函數(shù)值)+ln(n)(模型中的未知參數(shù)的個(gè)數(shù))

SBC是對(duì)AIC的修正,并且這四個(gè)指標(biāo)越小則表示模型參數(shù)越好。構(gòu)造這些統(tǒng)計(jì)量所遵循的統(tǒng)計(jì)思想是一致的,就是在考慮擬合殘差的同時(shí),依自變量個(gè)數(shù)施加“懲罰”。但要注意的是,這些準(zhǔn)則不能說明某一個(gè)模型的精確度,也即是說,對(duì)于三個(gè)模型A,B,C,我們能夠判斷出C模型是最好的,但不能保證C模型能夠很好地刻畫數(shù)據(jù),因?yàn)橛锌赡苋齻€(gè)模型都是糟糕的。

在本文中ARMA(7,0)的aic,bic,hqic均最小,因此是最佳模型。

arma_mod20 = sm.tsa.ARMA(dta,(7,0)).fit()

print(arma_mod20.aic,arma_mod20.bic,arma_mod20.hqic)

4.4 模型檢驗(yàn)

在指數(shù)平滑模型下,觀察ARIMA模型的殘差是否是平均值為0且方差為常數(shù)的正態(tài)分布(服從零均值、方差不變的正態(tài)分布),同時(shí)也要觀察連續(xù)殘差是否(自)相關(guān)。

4.4.1 自相關(guān)圖

對(duì)ARMA(7,0)模型所產(chǎn)生的殘差做自相關(guān)圖。?

fig = sm.graphics.tsa.plot_acf(resid.values.squeeze(), lags=40, ax=ax1)

fig = sm.graphics.tsa.plot_pacf(resid, lags=40, ax=ax2)

圖4 殘差自相關(guān)、偏自相關(guān)圖

4.4.2 D-W檢驗(yàn)

德賓-沃森(Durbin-Watson)檢驗(yàn)。德賓-沃森檢驗(yàn),簡稱D-W檢驗(yàn),是目前檢驗(yàn)自相關(guān)性最常用的方法,但它只使用于檢驗(yàn)一階自相關(guān)性。因?yàn)樽韵嚓P(guān)系數(shù)ρ的值介于-1和1之間,所以 0≤DW≤4。并且DW=O=>ρ=1   即存在正自相關(guān)性

DW=4<=>ρ=-1 即存在負(fù)自相關(guān)性

DW=2<=>ρ=0  即不存在(一階)自相關(guān)性

因此,當(dāng)DW值顯著的接近于O或4時(shí),則存在自相關(guān)性,而接近于2時(shí),則不存在(一階)自相關(guān)性。這樣只要知道DW統(tǒng)計(jì)量的概率分布,在給定的顯著水平下,根據(jù)臨界值的位置就可以對(duì)原假設(shè)H0進(jìn)行檢驗(yàn)。

sm.stats.durbin_watson(arma_mod20.resid.values)

檢驗(yàn)結(jié)果是2.02424743723,說明不存在自相關(guān)性。

4.5 模型預(yù)測

利用確定好的模型,預(yù)測未來十年的情況。

predict_sunspots = arma_mod20.predict('2090', '2100', dynamic=True)

print(predict_sunspots)

fig, ax = plt.subplots(figsize=(12, 8))

ax = dta.ix['2001':].plot(ax=ax)

predict_sunspots.plot(ax=ax)

前面90個(gè)數(shù)據(jù)為測試數(shù)據(jù),最后10個(gè)為預(yù)測數(shù)據(jù);從圖形來,預(yù)測結(jié)果較為合理。

圖5 歷史數(shù)據(jù)與預(yù)測結(jié)果

參考文獻(xiàn)資料

[1] ARIMA模型. 百度百科.

[2] 時(shí)間序列分析--ARIMA模型. http://blog.csdn.net/u013527419/article/details/52822666.

[3] [python] 時(shí)間序列分析之ARIMA. http://blog.csdn.net/u010414589/article/details/49622625.

[4] Arima預(yù)測模型(R語言). http://blog.csdn.net/desilting/article/details/39013825.

[5] Jonathan D. Cryer.時(shí)間序列分析及應(yīng)用. 原書第二版.?

[6] ARIMA時(shí)間序列建模過程—步驟和python代碼. http://www.itdecent.cn/p/cced6617b423.


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文結(jié)構(gòu): 時(shí)間序列分析? 什么是ARIMA? ARIMA數(shù)學(xué)模型? input,output 是什么? 怎么用?...
    不會(huì)停的蝸牛閱讀 66,084評(píng)論 6 97
  • 時(shí)間序列簡介 時(shí)間序列 是指將同一統(tǒng)計(jì)指標(biāo)的數(shù)值按其先后發(fā)生的時(shí)間順序排列而成的數(shù)列。時(shí)間序列分析的主要目的是根據(jù)...
    熙淺閱讀 177,811評(píng)論 15 55
  • 公式只能傳圖片?,好多公式都沒寫上,但是,不管有沒有公式,寫得一樣無趣至極,在中國人民大學(xué)出版社出版的王燕編著的<...
    今天芒種閱讀 13,053評(píng)論 0 10
  • 眾所周知,時(shí)間序列的預(yù)測是需要假定在時(shí)間序列平穩(wěn)隨機(jī)過程的基礎(chǔ)上,若為非平穩(wěn)時(shí)間序列,容易造成對(duì)隨機(jī)過程的偽回歸,...
    enhengz閱讀 3,323評(píng)論 0 1
  • 1. 如果看起來太好,可能是假的:一些自動(dòng)應(yīng)答,并承諾立刻盈利的網(wǎng)站,完全應(yīng)當(dāng)引起投資者的懷疑。想在外匯市場盈利可...
    外匯牛人閱讀 363評(píng)論 0 0

友情鏈接更多精彩內(nèi)容