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 вибирає найкращу модель зі строковою помилкою цих коефіцієнтів ar * ma * Не число? Чи дійсно ця обрана модель дійсна?

Моя мета - оцінити параметр n у моделі L = L_0 * exp (n * рік). Будь-яка пропозиція щодо кращого підходу?

ТІА.

дані:

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 оновив дані
Ivy Lee

Введіть dput(L)і вставте вихід Це робить реплікацію дуже простою.
Зак

Відповіді:


11

Сума коефіцієнтів АР близька до 1, що показує, що параметри знаходяться біля краю області стаціонарності. Це спричинить труднощі при спробі обчислення стандартних помилок. Однак в оцінках немає нічого поганого, тому якщо все, що вам потрібно, це значення , ви отримали його.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 коефіцієнтів.
Михайло

4

Ваша проблема виникає із-за надмірної специфікації. Проста модель першої різниці з AR (1) цілком достатня. Ніякої структури МА або трансформації потужності не потрібно. Ви також можете просто моделювати це як модель другої різниці, оскільки коефіцієнт ar (1) близький до 1,0. Сюжет фактичного / придатного / прогнозу є введіть тут опис зображеннята залишковий графік  можливий чужий / інлієрний час 7з рівнянням! введіть тут опис зображеннявведіть тут опис зображення.З підсумком Оцінка підлягає Специфікації моделі, яка в цьому випадку виявляється бажаючою ["mene mene tekel upharsin"]. Серйозно, я пропоную вам ознайомитись із стратегіями ідентифікації моделі, а не намагатися занурювати свої кухні з необґрунтованою структурою. Іноді менше - більше! Потенція - це мета !. Сподіваюся, це допомагає! Для подальшого відповіді на ваші запитання "Чому auto.arima вибирає найкращу модель із std-помилкою цих коефіцієнтів ar * ma * Не число? Ймовірна відповідь - це рішення простору стану не все, що може бути через припущенні моделі, які він намагається. Але це лише моє здогадування. Справжньою причиною невдачі може бути ваше припущення про журнал xform. Трансформації - це як наркотики ..... деякі корисні для вас, а деякі не для вас. Силові перетворення повинні використовуватися ТІЛЬКИ, щоб відокремити очікуване значення від стандартного відхилення залишків. Якщо є зв'язок, тоді може бути доречним перетворення Box-Cox (яке включає журнали). Витягнути трансформацію з-за вух, можливо, не буде гарною ідеєю.

Чи дійсно ця обрана модель дійсна? Точно ні !


0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.