Auto.Arima подходит хорошо, за исключением одного шипа - PullRequest
1 голос
/ 06 марта 2020

Я аспирант, и в качестве небольшой части своей диссертации я пытаюсь проанализировать некоторые данные о подземных водах с помощью функции auto.arima. Подходящие функции для моих данных подходят хорошо, за исключением одного всплеска в данных, и я не могу понять на всю жизнь, почему они go с рельсов здесь. В данных нет ни странностей, ни пропущенных значений. Данные представляют собой высоту подземных вод и имеют одну зарегистрированную точку в день.

Мои необработанные данные выглядят следующим образом:

#load tseries library
library(tseries)
# RESERVOIR ONLY ANALYSIS#
#Daily Piezometric Data from PS13-01
PS1301 = read.csv("PS13-01.csv",TRUE,",")
#impute missing data from data set
PS1301 = imputeTS::na_interpolation(PS1301)
#Create Time Series
PS1301 = ts(PS1301[,2],frequency = (365),start = c(2013,116))
plot(PS1301, xlab='Time', ylab = 'Piezometric Head')

enter image description here

И затем после запуска Auto.Arima это подходит для этого:

#Auto Arima of only piezometers
#PS1301
AAPS1301 = auto.arima(PS1301)
AAPS1301
summary(AAPS1301)
## Series: PS1301
## ARIMA(2,1,0)(0,1,0)[365]
## 
## Coefficients:
##          ar1     ar2
##       0.3362  0.5722
## s.e.  0.0643  0.0625
## 
## sigma^2 estimated as 0.02372:  log likelihood=2779.3
## AIC=-5552.61   AICc=-5552.59   BIC=-5536.39
plot(PS1301,col="red")
lines(fitted(AAPS1301),col="blue")

enter image description here

Буду признателен за любую помощь, я совершенно не уверен, что делать дальше. Я чувствую, что это должно быть ошибкой из-за того, насколько хорошо подходит (визуально) для остальной части временного ряда. Я также более чем рад предоставить необработанные данные, но я не уверен, как разместить их в этом посте, кроме как в виде ссылки в выпадающем списке https://www.dropbox.com/sh/563nu3daeid0agb/AAB6NSddVUKgBCCbQtuqXPsZa?dl=0

1 Ответ

0 голосов
/ 06 марта 2020

Проблема здесь в том, что сезонный период очень длинный (365) и R пытается подогнать диффузию до соответствующей модели пространства состояний - что становится все труднее с очень длинными периодами. В результате возникает некоторая численная нестабильность, приводящая к неточным подгонкам значений на 366-м и 367-м наблюдениях.

Я не уверен, что использование сезонной ARIMA с таким длительным периодом имеет какой-то смысл, но если вы хотите чтобы сделать это, используйте метод оценки CSS вместо полной вероятности:

fit_css <- auto.arima(PS1301, method='CSS')

Это также намного быстрее.

...