R
為什麼默認的 auto.arima 會在 (5,2,5) 處停止?
包中
auto.arima
的函數是一個強大的工具,可以識別給定數據系列的最佳 ARIMA(p,d,q) 模型。在 該函數的官方文檔頁面中,他們報告了以下內容:forecast``R
auto.arima(y, d=NA, max.p=5, max.q=5, max.order=5, max.d=2, start.p=2, start.q=2, ...)
根據上述功能,默認情況下,它似乎
auto.arima
試圖在所有組合中找到最佳模型:
- p 等於或小於 5
- q 等於或小於 5
- d 等於或小於 2
- 階等於或小於 5,即
p + q + d ≤ 5
。但是,為什麼默認代碼會在這些條件下停止?為什麼 p、q 和 d 應該等於或小於 5、5 和 2 並且它們的總和小於 5,有什麼特別的原因嗎?
有幾個原因:
限制搜索空間限制了所需的計算時間。如果您要對許多時間序列進行建模和預測,這是一個重要因素。
更複雜的 ARIMA 模型很難解釋。如果我們想做的只是預測,可解釋性在我們的理想品質列表中可能並不高,但我們通常需要向非統計學家用戶解釋我們的模型。我寧願不解釋甚至第二個差異,更不用說第三個或更高的差異了。
預報員的經驗是,大多數時間序列都可以由低階 ARIMA 模型充分描述。讓我們使用 819 非季節性 M3 系列建模
auto.arima(,max.p=10,max.q=10,max.d=3)
:library(Mcomp) M3.nonseasonal <- M3[sapply(M3,"[[","period")%in%c("YEARLY","OTHER")] models <- matrix(NA,nrow=length(M3.nonseasonal),ncol=3, dimnames=list(names(M3.nonseasonal),c("p","d","q"))) pb <- winProgressBar(max=length(M3.nonseasonal)) for ( ii in seq_along(M3.nonseasonal) ) { setWinProgressBar(pb,ii,paste(ii,"of",length(M3.nonseasonal))) fit <- auto.arima(M3.nonseasonal[[ii]]$x,max.p=10,max.q=10,max.d=3) models[ii,] <- fit$arma[c(1,6,2)] } close(pb) sort(table( paste0( (",apply(models,1,paste0,collapse=","),")")),decreasing=TRUE) summary(models)
輸出:
> sort(table(paste0("(",apply(models,1,paste0,collapse=","),")")),decreasing=TRUE) (0,1,0) (0,1,1) (0,2,0) (0,2,1) (1,0,0) (1,1,0) (0,0,0) (0,0,1) (2,0,0) (1,2,0) 413 80 65 60 31 29 23 19 15 13 (1,1,1) (1,2,1) (2,1,0) (2,1,2) (0,3,0) (1,1,2) (2,2,1) (0,1,2) (0,2,2) (1,0,1) 6 6 6 6 5 5 5 4 3 3 (1,3,0) (1,0,2) (1,2,2) (2,0,1) (2,1,1) (2,2,2) (3,0,0) (0,3,1) (1,3,1) (2,2,0) 3 2 2 2 2 2 2 1 1 1 (2,3,1) (3,0,1) (3,1,0) (3,2,3) 1 1 1 1 > summary(models) p d q Min. :0.0000 Min. :0.0 Min. :0.0000 1st Qu.:0.0000 1st Qu.:1.0 1st Qu.:0.0000 Median :0.0000 Median :1.0 Median :0.0000 Mean :0.2393 Mean :1.1 Mean :0.2906 3rd Qu.:0.0000 3rd Qu.:1.0 3rd Qu.:1.0000 Max. :3.0000 Max. :3.0 Max. :3.0000
在少數情況下,
auto.arima()
選擇 $ d=3 $ ,但我對 3 階的積分持懷疑態度,因為它很難解釋,而且會導致立方趨勢,這幾乎沒有意義。 $ p $ 和 $ q $ 永遠不要超過3。最後,更複雜的 ARIMA 模型很少更準確。事實上,最簡單的 ARIMA(0,0,0) 模型(即白噪聲,最佳預測只是歷史平均值)通常優於更複雜的 ARIMA 模型。
據我所知,所選擇的特定默認值並非源於任何特定研究,任何此類研究當然都存在普遍性問題。如果你真的對包作者如何得出這些數字感興趣,你可以問他們(也許在這里報告你聽到的消息?),但我強烈懷疑答案將是“經驗”。