Estou usando o método arima do pacote de estatísticas R com minha série temporal de 17376 elementos. Meu objetivo é obter o valor do critério AIC, observei no meu primeiro teste isso:
ts <- arima(serie[,1], order = c(2,1,1), seasonal = list(order=c(2,0,1),period = 24),
method = "CSS", optim.method = "BFGS",)
> ts$coef
ar1 ar2 ma1 sar1 sar2 sma1
0.8883730 -0.0906352 -0.9697230 1.2047580 -0.2154847 -0.7744656
> ts$aic
[1] NA
Como você pode ver, o AIC não está definido. Sobre a AIC, a "Ajuda" em R disse que só poderia ser usada com "ML". No entanto, isso acontece:
> ts <- arima(serie[,1], order = c(2,1,1), seasonal = list(order=c(2,0,1),period = 24),
method = "ML", optim.method = "BFGS",)
Error en optim(init[mask], armafn, method = optim.method, hessian = TRUE, :
non-finite finite-difference value [1]
Plus: warning messages lost
In log(s2) : There have been NaNs
Eu não entendo o que está acontecendo. Também gostaria de saber mais sobre o parâmetro "método de ajuste".
r
time-series
forecasting
arima
Cyberguille
fonte
fonte
optim.control
argumento) teria uma boa chance de evitar esse problema. Não testei isso porque você não fornece um exemplo reproduzível da dificuldade.Respostas:
Ajustar o modelo ARIMA com máxima verossimilhança (método = "ML") requer a otimização (minimização) da verossimilhança negativa do modelo ARIMA sobre os parâmetros. Isso acaba sendo um problema de otimização restrito, pois os parâmetros devem resultar em um modelo estacionário. Essa restrição não linear é contabilizada com a probabilidade de log negativa retornando Inf (infinito) se a restrição não for atendida. Se o MLE estiver próximo do limite da avaliação de restrição da probabilidade logarítmica negativa perto do MLE, poderá retornar o infinito. Como o hessiano é obtido com diferenciação numérica avaliando a probabilidade logarítmica negativa próxima ao MLE, isso pode resultar no erro de diferença finita não finita que você obteve. Portanto, se o hessian não for necessário, coloque hessian = FALSE. De outra forma,
fonte
Editado: se você fizer o voto negativo, pode explicar por quê? Eu sou novo aqui.
Eu tive o mesmo problema. Procurei on-line e encontrei uma solução sugerida em outro lugar no Cross Validated. Pensei em compartilhar aqui caso alguém quisesse.
Acabei de adicionar um "method =" CSS "" ao meu modelo e funcionou. Por exemplo:
Aqui está a referência:
auto.arima e Arima (pacote de previsão)
fonte
Você parece ter problemas com a convergência de algoritmos. Isso acontece algumas vezes com a otimização numérica.
Aqui está o link para o artigo da Wikipedia sobre este método de otimização específico:
http://en.wikipedia.org/wiki/Broyden%E2%80%93Fletcher%E2%80%93Goldfarb%E2%80%93Shanno_algorithm
fonte