auto.arima warnt NaNs, die bei einem Standardfehler erzeugt wurden


9

Meine Daten sind eine Zeitreihe der Erwerbsbevölkerung L und der Zeitspanne Jahr.

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

warum passiert das? Warum sollte auto.arima das beste Modell mit Standardfehler dieser ar * ma * -Koeffizienten auswählen, keine Zahl? Ist dieses ausgewählte Modell doch gültig?

Mein Ziel ist es, den Parameter n im Modell L = L_0 * exp (n * Jahr) zu schätzen. Irgendwelche Vorschläge für einen besseren Ansatz?

TIA.

Daten:

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

Können Sie einige Daten veröffentlichen, damit wir das Problem replizieren können?
Rob Hyndman

@ RobHyndman aktualisierte Daten
Ivy Lee

Bitte geben Sie dput(L)die Ausgabe ein und fügen Sie sie ein. Dies macht die Replikation sehr einfach.
Zach

Antworten:


11

Die Summe der AR-Koeffizienten liegt nahe bei 1, was zeigt, dass sich die Parameter nahe dem Rand des Stationaritätsbereichs befinden. Dies führt zu Schwierigkeiten beim Versuch, die Standardfehler zu berechnen. An den Schätzungen ist jedoch nichts auszusetzen. Wenn Sie also nur den Wert von benötigen , haben Sie ihn.L.0

auto.arima()Es sind einige Verknüpfungen erforderlich, um die Berechnung zu beschleunigen. Wenn ein Modell angezeigt wird, das verdächtig aussieht, ist es eine gute Idee, diese Verknüpfungen zu deaktivieren und zu sehen, was Sie erhalten. In diesem Fall:

> 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

Dieses Modell ist etwas besser (zum Beispiel ein kleinerer AIC).


1
Was ist, wenn Standardfehler nicht berechnet werden können und das Modell für die Prognose verwendet werden muss? Verursacht dies ungültige, unrealistisch kleine Konfidenzintervalle in einer Prognose? In meinem Fall (eine Zeitreihe der Länge 35) werden NaNs für SEs von Koeffizienten verwendet approximation=FALSEund stepwise=FALSEimmer noch erzeugt.
Mihael

4

Ihr Problem ergibt sich aus einer Überspezifikation. Ein einfaches erstes Differenzmodell mit einem AR (1) ist völlig ausreichend. Es ist keine MA-Struktur oder Leistungstransformation erforderlich. Sie können dies auch einfach als zweites Differenzmodell modellieren, da der ar (1) -Koeffizient nahe bei 1,0 liegt. Ein Diagramm des Ist / Fit / Prognose ist Geben Sie hier die Bildbeschreibung einund ein Restdiagramm  möglicher Ausreißer / Ausreißer zum Zeitpunkt 7mit Gleichung! Geben Sie hier die Bildbeschreibung einGeben Sie hier die Bildbeschreibung einZusammenfassend unterliegt die Schätzung der Modellspezifikation, die in diesem Fall als ["mene mene tekel upharsin"] fehlt. Im Ernst, ich schlage vor, dass Sie sich mit Strategien zur Modellidentifizierung vertraut machen und nicht versuchen, Ihre Modelle mit ungerechtfertigter Struktur in die Küche zu versenken. Manchmal ist weniger mehr ! Sparsamkeit ist ein Ziel! Hoffe das hilft ! Um Ihre Fragen weiter zu beantworten "Warum sollte auto.arima das beste Modell mit Standardfehler dieser ar * ma * -Koeffizienten auswählen, keine Zahl? Die wahrscheinliche Antwort ist, dass die State-Space-Lösung nicht alles ist, was es aufgrund der sein könnte Angenommene Modelle, die es versucht. Aber das ist nur meine Vermutung. Die wahre Ursache des Fehlers könnte Ihre Annahme einer log xform sein. Transformationen sind wie Drogen ..... einige sind gut für Sie und einige sind nicht gut für Sie. Leistungstransformationen sollten NUR verwendet werden, um den erwarteten Wert von der Standardabweichung der Residuen zu entkoppeln. Wenn eine Verknüpfung besteht, ist möglicherweise eine Box-Cox-Transformation (die Protokolle enthält) geeignet. Es ist möglicherweise keine gute Idee, eine Transformation hinter den Ohren hervorzuziehen.

Ist dieses ausgewählte Modell doch gültig? Definitiv nicht !


0

Ich habe mit ähnlichen Problemen konfrontiert. Bitte versuchen Sie, mit optim.control und optim.method zu spielen. Diese NaNs sind Quadratmeter der negativen Werte der diagonalen Elemente der Hessen-Matrix. Die Anpassung von ARIMA (2,0,2) ist ein nichtlineares Problem, und Optim schien zu einem Sattelpunkt (wo der Gradient Null ist, die Hessen-Matrix jedoch nicht positiv definiert ist) anstelle des Wahrscheinlichkeitsmaximums zu konvergieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.