R

auto.arima() 中未考慮季節性

  • May 18, 2016

我遇到的問題與這個線程基本相同,除了一件事:

就我而言,不同之處在於我的數據是每周而不是每天測量的,因此季節性太高(> 350)的論點不適用於我的數據,因為在我的案例中季節性是52(52 週)年)。

然而,當我使用 時auto.arima(),R 返回 ARIMA 模型 (p,d,q) = (2,1,1) 和 (P,D,Q) = (0,0,0),而我的季節性模式數據是公然的……你怎麼能解釋 R 完全消除了我數據中的季節性?

由於我還處於學習階段,所以我使用的是庫中cmort可用的數據集astsa,所以這裡的每個人都可以使用與我相同的數據。

我已經cmort <- ts(cmort,frequency=52)確保我的數據中的季節性被考慮在內,但它並沒有改變任何東西。

(首先,cmort已經是一個52 的ts對象frequency,所以你不需要強制它。)

我會說季節性是可見的,而不是明目張膽的:

library(forecast)
library(astsa)
seasonplot(cmort)

季節情節

根據幫助頁面 ( ?auto.arima),auto.arima()決定是否使用 OCSB 測試來獲取季節性差異。在這種情況下,這個測試很可能只是出錯了。畢竟,這是一個統計測試。您可以通過設置來強制使用季節性模型D=1,儘管auto.arima()強制季節性運行了相當長的一段時間。(請注意,原始序列和差異序列之間的信息標準不可比。)

自動擬合模型:

> auto.arima(cmort)
Series: cmort 
ARIMA(2,1,1)                    

Coefficients:
        ar1     ar2      ma1
     0.0957  0.2515  -0.6435
s.e.  0.4302  0.2444   0.4155

sigma^2 estimated as 33.72:  log likelihood=-1609.89
AIC=3227.77   AICc=3227.85   BIC=3244.68

具有強制季節性的模型:

> auto.arima(cmort,D=1)
Series: cmort 
ARIMA(0,0,0)(1,1,0)[52] with drift         

Coefficients:
        sar1    drift
     -0.5737  -0.0257
s.e.   0.0378   0.0041

sigma^2 estimated as 47.7:  log likelihood=-1537.6
AIC=3081.21   AICc=3081.26   BIC=3093.57

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

comments powered by Disqus