我們應該如何在時間序列建模中有效地選擇訂單參數?
在時間序列建模中選擇訂單參數(例如:選擇要包含在模型中的 AR 項的數量)的一種常用方法是依靠一些資訊標準(AIC、BIC、Hannan Quinn..)來衡量相對質量模型的:我們稱之為規則 A。
然後在第二次執行穩健性測試(Ljung 盒測試,Engle 測試..)。
但是,當我需要為在均值和變異數過程中都具有自相關性的系列選擇模型時,我不清楚該方法:
我注意到選擇的模型(通過使用規則 A)在以下情況下並不總是相同的:
- 我使用了“兩步法”:首先,我使用規則A選擇均值過程的訂單參數,其次,保留第一步獲得的參數,我再次使用規則A選擇變異數過程中的參數。
範例:我將所有 ARMA(p,q) 擬合到 (p,q)=0:2 的系列中,並選擇最簡約的一個。假設最好的模型是 p= 1和 q= 2。第二步:如果將所有 ARMA( 1,2 )-GARCH(s,t) 模型擬合到 (s,t)=0:2 的系列中,我再次使用規則 A 選擇“最佳”s,t 參數。如果我們讓 p:q 在 0:4 範圍內,讓 s,t 在 0:2 範圍內,它們是 $ 5^2 + 3^2 $ 要估計的模型。
- 或“直接方式”建模:我將完整的 ARMA(p,q)-GARCH (s,t) 直接擬合到時間序列,並再次使用規則 A 選擇最佳模型 (p,q,s,t)。但是在這種情況下,組合的數量(要擬合的模型數量)可能非常高:如果我們讓 p:q 在 0:4 範圍內,s,t 在 0:2 範圍內,它們是 $ 5^2 \times 3^2 $ 候選模型(需要時間和 CPU ..)。
顯然,第二種方法將評估由兩步法選擇的模型,它可能會給出最強的顯著結果。我說“可能”是因為有可能比直接方法選擇的模型不通過錯誤指定部分..
我的問題是:我該如何處理這個成本/效率問題?我應該如何進行?
我將嘗試提供一種簡單的辨識技術 $ ARIMA(p,d,q) $ 時間序列的訂單。這是一種經驗技術,但結果非常接近基於 $ AIC $ 或者 $ BIC $ 標準。
- 辨識集成順序 $ d $ :
這是要確定的第一個參數,實際上 ARMA 模型是基於您的時間序列的假設 $ {x_t} $ 是靜止的。所以,你應該從測試平穩性開始 $ x_t $ 例如使用 Dickey-Fuller 測試(還有許多其他測試)。如果它是靜止的,那麼 $ d=0 $ , 否則嘗試第一次集成 $ y_t = \Delta x_t = (x_{t+1}-x_t) $ 並測試平穩性(通常第一次積分就足夠了),因此 $ d=1 $ , 其他嘗試第一次集成 $ y_t $ , 因此 $ d=2 $ 等等。
讓我們假設 $ d=0 $ (這樣你的 x_t 已經是靜止的)
- 辨識自回歸 (AR) 順序 $ p $ :
要確定此順序,請繪製部分自相關函式(PACF) $ x_t $ , 然後 $ p $ 將是 PACF 顯著的最大滯後。
- 辨識移動平均線 (MA) 訂單 $ q $ :
繪製自相關函式(ACF) $ x_t $ , 並設置 $ q $ 是 ACF 顯著的最大滯後。
因此你得到你的經驗模型 $ ARIMA(p,d,q) $ .
如果您使用的是R,您可以嘗試使用包中的
auto.arima
函式將模型擬合到您的系列中forecast
,您會注意到 $ AIC $ 和 $ BIC $ 該模型的標準與自動擬合模型的標準非常接近。我上面解釋的技術靈感來自《金融時間序列分析》一書( $ 3^{rd} $ 版,RUEY S. TSAY)
在我看來,這樣做更有趣,因為您了解參數之間的關係( $ \theta_i, \phi_j $ ARMA) 和 ACF、PACF 值,還有經濟理由(延遲天數……)。