Time-Series

時間序列模型選擇:AIC 與樣本外 SSE 及其等價性

  • March 8, 2016

AIC 經常被推薦作為比較時間序列預測模型的標準。例如,在動態回歸模型的上下文中看到這個:

可以為最終模型計算 AIC,該值可用於確定最佳預測變量。也就是說,應針對要考慮的所有預測變量子集重複該過程,並選擇具有最低 AICc 值的模型。

為什麼不根據樣本外的性能比較模型呢?(例如在樣本外預測中選擇 SSE 最低的模型)。我一直在閱讀有關時間序列預測的幾本教科書和網站,但沒有找到這個討論。我得到的最接近的是關於 AIC 的事實和謬誤的博客條目

AIC 並不是真正的“樣本內”度量。是的,它是使用訓練數據計算的。但漸近地,最小化AIC相當於最小化橫截面數據的留一法交叉驗證MSE,也相當於最小化時間序列模型的樣本外單步預測MSE。這一特性使其成為用於選擇預測模型的有吸引力的標準。

在我一直在工作的一個示例中(儘管無法在此處發布圖表;我需要在此站點中獲得更多聲譽),我嘗試了這兩種方法,並且大多數時候 AIC 和样本外 SSE 不會產生相同的結果結果。我使用的程序如下:

  1. 我將數據分為訓練樣本和測試樣本(在任意點;下面有一個關於這個的問題)
  2. 我使用訓練樣本(前 230 個週期;所有模型具有相同數量的觀察值,因此 AIC 具有可比性)估計了競爭模型(具有外部回歸量的 ARIMA,改變 ARIMA 參數和回歸量)。
  3. 然後,我預測了與測試樣本相同的時期(時期 231-260)的系列。
  4. 對於每個模型,我計算了簡單的 SSE,例如在哪裡是系列(測試樣本)的觀測值,並且是模型預測的值。
  5. 我將 AIC 指示的模型(使用訓練數據計算)與樣本外 SSE 最低的模型進行了比較。大多數時候,選擇的模型是不同的(至少在視覺上,SSE 選擇的模型表現更好)。

如果有人可以向我解釋這背後發生了什麼,我將不勝感激。我顯然不是這方面的專家。我只是想自學一點,所以如果我忽略了我一直在閱讀的教科書中的一些重要內容,請原諒。

最後,關於在時間序列的訓練和測試樣本中拆分數據的問題。在我看來,與對橫截面數據使用相同的程序相比,有一些根本不同的東西。對於橫截面數據,您可以從整個數據集中抽取兩個隨機樣本。對於時間序列,這沒有多大意義。因此,您需要在訓練和測試樣本中取任意點來拆分系列。問題是,通常最好的模型對於每個任意點都是不同的。也許這就是為什麼這種方法似乎並不經常使用的原因。這就是選擇AIC首選模型的原因嗎?(鑑於“漸近地,最小化 AIC 是……相當於最小化時間序列模型的樣本外一步預測 MSE”。)

為什麼不根據樣本外的性能比較模型呢?

當然,你可以這樣做。我認為 AIC 的優勢是計算速度更快,編碼更少(雖然 AIC 通常作為模型診斷的一部分自動報告,但時間序列的交叉驗證在您最喜歡的軟件中可能不容易獲得)。

我嘗試了這兩種方法,大多數時候 AIC 和样本外 SSE 不會產生相同的結果。

您似乎沒有正確實施交叉驗證。首先,您只拆分數據一次,而您應該多次拆分數據。其次,您根據預測多個不同範圍的一次試驗而不是預測一個固定範圍的多次試驗來評估預測性能。也許因此你得到了 AIC 和交叉驗證之間的差異

在時間序列設置中實現交叉驗證時,您可以使用滾動窗口。你會從到在哪裡是窗口長度和滾動從 1 到在哪裡是樣本量。您將在每個滾動窗口中估計您的模型並預測未來一個時期。然後,您將收集這些預測並將它們與實際值進行比較。在時間序列設置中使用交叉驗證時,這將為您提供預測性能的樣本外指標。

另見 Hyndman 和 Athanasopoulos “預測:原則和實踐”,第 2.5 節(一直向下滾動)和 Bergmeir 等人。“關於評估時間序列預測的交叉驗證有效性的說明”(2015 年,工作論文)。

至少在視覺上,上證所選擇的那些[模型]表現更好

可能是模型殘差沒有完全具有假設的分佈,或者模型有一些其他故障以某種方式使其 AIC 無效。這就是為什麼在模型選擇中樣本外預測準確性可能優於 AIC 的一個論點。

引用自:https://stats.stackexchange.com/questions/200522

comments powered by Disqus