auto.arima предупреждает о появлении NaN при ошибке std


9

Мои данные - это временной ряд занятого населения, L, и временной интервал, год.

n.auto=auto.arima(log(L),xreg=year)
summary(n.auto)
Series: log(L) 
ARIMA(2,0,2) with non-zero mean 

Coefficients:
         ar1      ar2      ma1     ma2  intercept    year
      1.9122  -0.9567  -0.3082  0.0254    -3.5904  0.0074
s.e.     NaN      NaN      NaN     NaN     1.6058  0.0008

sigma^2 estimated as 1.503e-06:  log likelihood=107.55
AIC=-201.1   AICc=-192.49   BIC=-193.79

In-sample error measures:
           ME          RMSE           MAE           MPE          MAPE 
-7.285102e-06  1.225907e-03  9.234378e-04 -6.836173e-05  8.277295e-03 
         MASE 
 1.142899e-01 
Warning message:
In sqrt(diag(x$var.coef)) : NaNs produced

почему это происходит? Почему auto.arima выбирает лучшую модель с ошибкой std этих коэффициентов ar * ma *, а не числом? Действительно ли эта выбранная модель действительна?

Моя цель - оценить параметр n в модели L = L_0 * exp (n * year). Любое предложение о лучшем подходе?

ТИА.

данные:

L <- structure(c(64749, 65491, 66152, 66808, 67455, 68065, 68950, 
69820, 70637, 71394, 72085, 72797, 73280, 73736, 74264, 74647, 
74978, 75321, 75564, 75828, 76105), .Tsp = c(1990, 2010, 1), class = "ts")
year <- structure(1990:2010, .Tsp = c(1990, 2010, 1), class = "ts")
L
Time Series:
Start = 1990 
End = 2010 
Frequency = 1 
 [1] 64749 65491 66152 66808 67455 68065 68950 69820 70637 71394 72085 72797
[13] 73280 73736 74264 74647 74978 75321 75564 75828 76105

Можете ли вы опубликовать некоторые данные, чтобы мы могли воспроизвести проблему?
Роб Хиндман

@RobHyndman обновил данные
Айви Ли

Пожалуйста, введите dput(L)и вставьте вывод. Это делает репликацию очень простой.
Зак

Ответы:


11

L0

auto.arima()Для ускорения вычислений требуется несколько ярлыков, и, когда он дает модель, которая выглядит подозрительной, хорошей идеей будет отключить эти ярлыки и посмотреть, что у вас получится. В этом случае:

> n.auto <- auto.arima(log(L),xreg=year,stepwise=FALSE,approx=FALSE)
> 
> n.auto
Series: log(L) 
ARIMA(2,0,0) with non-zero mean 

Coefficients:
         ar1      ar2  intercept    year
      1.8544  -0.9061    11.0776  0.0081
s.e.  0.0721   0.0714     0.0102  0.0008

sigma^2 estimated as 1.594e-06:  log likelihood=107.19
AIC=-204.38   AICc=-200.38   BIC=-199.15

Эта модель немного лучше (например, меньший AIC).


1
Что делать, если стандартные ошибки не могут быть вычислены, и модель должна использоваться для прогнозирования? Приведет ли это к недействительным, нереально малым доверительным интервалам в прогнозе? В моем случае (временной ряд длиной 35), использование approximation=FALSEи stepwise=FALSEвсе еще производит NaNs для SE коэффициентов.
Mihael

4

Ваша проблема возникает из-за чрезмерной спецификации. Простая модель первого различия с AR (1) вполне достаточно. Не требуется структура МА или преобразование мощности. Вы также можете просто смоделировать это как модель второй разности, так как коэффициент ar (1) близок к 1,0. График Actual / Fit / прогноз введите описание изображения здесьи остаточный график  возможный выброс / входящий интервал в период времени 7с уравнением! введите описание изображения здесьвведите описание изображения здесь. В итоге, оценка зависит от спецификации модели, которая в данном случае считается не нужной [mene mene tekel upharsin]. Серьезно, я предлагаю вам ознакомиться со стратегиями идентификации моделей, а не пытаться утопить в своих моделях неоправданную структуру. Иногда меньше значит больше! Скупость - это цель! Надеюсь это поможет ! Чтобы ответить на ваши вопросы "Почему auto.arima выбирает лучшую модель с ошибкой std этих коэффициентов ar * ma *, а не числом? Вероятный ответ заключается в том, что решение в пространстве состояний - это не все, что может быть из-за Предполагаемые модели, которые он пытается. Но это только мое предположение. Истинной причиной неудачи может быть ваше предположение о форме журнала. Преобразования похожи на наркотики ... некоторые из них полезны для вас, а некоторые - нет. Силовые преобразования должны использоваться ТОЛЬКО для отделения ожидаемого значения от стандартного отклонения от остатков. Если есть связь, тогда может быть целесообразным преобразование Бокса-Кокса (которое включает в себя журналы). Вытащить трансформацию из-за ушей может не быть хорошей идеей.

Действительно ли эта выбранная модель действительна? Точно нет !


0

Я сталкивался с похожими проблемами. Пожалуйста, попробуйте поиграть с optim.control и optim.method. Эти NaN представляют собой отрицательные значения диагональных элементов матрицы Гессе. Подгонка ARIMA (2,0,2) является нелинейной проблемой, и оптимизатор, по-видимому, сходится к седловой точке (где градиент равен нулю, но матрица Гессе не определена положительно) вместо максимума вероятности.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.