R
auto.arima()
中未考慮季節性
我遇到的問題與這個線程基本相同,除了一件事:
就我而言,不同之處在於我的數據是每周而不是每天測量的,因此季節性太高(> 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