ARIMA模型的基本思想是:將預測對象隨時間推移而形成的數據序列視為一個隨機序列,用一定的數學模型來近似描述這個序列。這個模型一旦被識別後就可以從時間序列的過去值及現在值來預測未來值。
ARIMA(1,1)模型:
2.1 ARIMA模型預測的基本程序:
1) 根據時間序列的散點圖、自相關函數和偏自相關函數圖以ADF單位根檢驗其方差、趨勢及其季節性變化規律,對序列的平穩性進行識別。一般來講,經濟運行的時間序列都不是平穩序列。
2) 對非平穩序列進行平穩化處理。如果數據序列是非平穩的,並存在一定的增長或下降趨勢,則需要對數據進行差分處理,如果數據存在異方差,則需對數據進行技術處理,直到處理後的數據的自相關函數值和偏相關函數值無顯著地異於零。
3) 根據時間序列模型的識別規則,建立相應的模型。若平穩序列的偏相關函數是截尾的,而自相關函數是拖尾的,可斷定序列適合AR模型;若平穩序列的偏相關函數是拖尾的,而自相關函數是截尾的,則可斷定序列適合MA模型;若平穩序列的偏相關函數和自相關函數均是拖尾的,則序列適合ARMA模型。
4) 進行參數估計,檢驗是否具有統計意義。
5) 進行假設檢驗,診斷殘差序列是否為白噪聲。
6) 利用已通過檢驗的模型進行預測分析。
2.2 ARIMA模型中AR和MA階數的確定方法:
clear
sim_arma y_ar, ar(0.9)nobs(300)
line y_ar _t, yline(0)
ac y_ar /*AR過程的 ACF 具有「拖尾」特徵,長期記憶*/
pac y_ar /*AR過程的 PACF 具有「截尾」特徵*/
sim_arma y_ma, ma(0.8)
line y_ma _t, yline(0)
ac y_ma /*MA過程的 ACF 具有「截尾」特徵,短期記憶*/
pac y_ma /*MA過程的 PACF 具有鋸齒型「拖尾」特徵*/
2.3 ARIMA模型中涉及的檢驗:
use http://www.stata-press.com/data/r11/wpi1 ,clear
tsset t
gen d_wpi = D.wpi
dfuller wpi /*單位根檢驗*/
dfuller d_wpi
wntestq wpi /*白噪聲檢驗:Q檢驗*/
wntestq d_wpi
wntestb wpi,table /*累積統計Q檢驗並以列表顯示*/
wntestb d_wpi,table
wntestb wpi /*畫出累積統計量Q*/
wntestb d_wpi /*畫出累積統計量Q*/
corrgram wpi ,lag(24) /*自相關、偏相關、Q統計量*/
corrgram d_wpi ,lag(24)
2.4 ARIMA模型和SARIMA模型的估計
ARIMA模型:
use http://www.stata-press.com/data/r11/wpi1 ,clear
gen d_wpi = D.wpi
arima wpi,arima(1,1,1) /* 沒有漂移項即常數項的命令是noconstant */
* 或者下面的這種形式也行
arima D.wpi,ar(1) ma(1)
SARIMA模型:
use http://www.stata-press.com/data/r11/air2,clear
line air t
generate lnair=ln(air)
arima lnair,arima(0,1,1) sarima(0,1,1,12)noconstant
2.5 ARIMA模型的一個真實應用——美國批發物價指數
use http://www.stata-press.com/data/r11/wpi1 ,clear
dfuller wpi /*單位根檢驗*/
gen d_wpi = D.wpi
dfuller d_wpi
arima wpi,arima(1,1,1) /* 沒有漂移項即常數項的命令是noconstant */
* 或者下面的這種形式也行
arima D.wpi,ar(1) ma(1)
ac D.ln_wpi,ylabels(-.4(.2).6)
pac D.ln_wpi,ylabels(-.4(.2).6)
arima D.ln_wpi,ar(1) ma(1/4)
estat ic /*LL 越大越好, AIC 和 BIC 越小越好*/
arima D.ln_wpi,ar(1) ma(1 4) /*季節效應 */
estat ic
* 殘差檢驗
predict r,res
wntestq r /*白噪聲檢驗:Q檢驗*/
wntestb r,table /*累積統計Q檢驗並以列表顯示*/
wntestb r /*畫出累積統計量Q*/
corrgram r ,lag(24) /*自相關、偏相關、Q統計量*/
* 樣本內預測
predict y_hat0 /* y的擬合值 */
* 樣本外預測
list in -15/-1
tsappend, add(8)
list in -15/-1
predict y_hat1 /* y 的樣本外一步預測值 */
list in -15/-1
gen Dln_wpi = D.ln_wpi
sum
predict y_hat_dy0, dynamic(124) /*動態預測*/
predict y,y /*對未差分變量的預測*/
predict fy,y dynamic(124)
gen fwpi=exp(fy) /*實際wpi的預測值*/
gen ywpi=exp(y)
line wpi fwpi ywpi t in -20/-1