Moje dane to szereg czasowy zatrudnionej populacji, L i przedział czasu, rok.
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
dlaczego to się dzieje? Dlaczego auto.arima wybiera najlepszy model z błędem standardowym tych współczynników ar * ma * Not a Number? Czy mimo wszystko ten wybrany model jest ważny?
Moim celem jest oszacowanie parametru n w modelu L = L_0 * exp (n * rok). Wszelkie sugestie dotyczące lepszego podejścia?
TIA
dane:
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
r
regression
arima
Ivy Lee
źródło
źródło
dput(L)
i wklej dane wyjściowe. Dzięki temu replikacja jest bardzo łatwa.Odpowiedzi:
Suma współczynników AR jest bliska 1, co pokazuje, że parametry znajdują się w pobliżu krawędzi regionu stacjonarności. Spowoduje to trudności w próbie obliczenia standardowych błędów. Jednak nie ma nic złego w szacunkach, więc jeśli wszystko, czego potrzebujesz, to wartośćL.0 , masz to.
auto.arima()
wymaga kilku skrótów, aby przyspieszyć obliczenia, a gdy daje model, który wygląda podejrzanie, dobrym pomysłem jest wyłączenie tych skrótów i zobaczenie, co otrzymujesz. W tym przypadku:Ten model jest nieco lepszy (na przykład mniejszy AIC).
źródło
approximation=FALSE
istepwise=FALSE
nadal produkuje NaN dla SE współczynników.Twój problem wynika z nadmiernej specyfikacji. Prosty model pierwszej różnicy z AR (1) jest wystarczający. Nie jest wymagana struktura MA ani transformacja mocy. Możesz również po prostu modelować to jako model drugiej różnicy, ponieważ współczynnik ar (1) jest bliski 1,0. Wykres rzeczywistej / dopasowania / prognozy jest i wykres resztkowy z równaniem! wprowadź opis zdjęcia tutaj. Podsumowując Oszacowanie podlega specyfikacji modelu, która w tym przypadku okazuje się być [[mene mene tekel upharsin]]. Poważnie, sugeruję zapoznanie się ze strategiami identyfikacji modeli i nie próbowanie zlewu kuchennego modeli o nieuzasadnionej strukturze. Czasami mniej znaczy więcej ! Parsimony jest celem! Mam nadzieję że to pomoże ! Aby udzielić dalszych odpowiedzi na pytania „Dlaczego auto.arima wybiera najlepszy model z błędem standardowym tych współczynników ar * ma * Nie jest liczbą? Prawdopodobną odpowiedzią jest to, że rozwiązanie przestrzeni stanów nie jest wszystkim, co może być z powodu przypuszczalne modele, które próbuje. Ale to tylko moje przypuszczenie. Prawdziwą przyczyną niepowodzenia może być twoje założenie log xform. Transformacje są jak narkotyki ... niektóre są dobre dla ciebie, a inne nie. Transformacje mocy powinny być WYŁĄCZNIE wykorzystywane do oddzielenia wartości oczekiwanej od odchylenia standardowego reszt. Jeśli istnieje powiązanie, odpowiednia może być transformacja Box-Coxa (która obejmuje logi). Ciągnięcie transformacji za uszy może nie być dobrym pomysłem.
Czy mimo wszystko ten wybrany model jest ważny? Absolutnie nie !
źródło
Miałem do czynienia z podobnymi problemami. Spróbuj zagrać przy pomocy optim.control i optim.method. Te NaN są sqrt ujemnych wartości elementów diagonalnych macierzy Hessego. Dopasowanie ARIMA (2,0,2) jest problemem nieliniowym, a optym wydaje się zbieżny do punktu siodłowego (gdzie gradient wynosi zero, ale macierz Hessego nie jest zdefiniowana dodatnio) zamiast maksimum prawdopodobieństwa.
źródło