Optimierungsfehler beim Einpassen des Arima-Modells in R.

8

Ich verwende die Arima-Methode des Statistikpakets von R mit meiner Zeitreihe von 17376 Elementen. Mein Ziel ist es, den Wert des AIC-Kriteriums zu erhalten. Ich habe in meinem ersten Test Folgendes beobachtet:

 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

Wie Sie sehen können, ist AIC nicht definiert. Über AIC sagte "Hilfe" in R, dass es nur mit "ML" verwendet werden könne. Es passiert jedoch:

> 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

Ich verstehe nicht, was passiert. Außerdem möchte ich mehr über den Parameter "Anpassungsmethode" erfahren.

Cyberguille
quelle
1
Können Sie die grafische Darstellung Ihrer Daten einfügen?
mpiktas
3
Das Extrahieren der Parameter aus der CSS-Lösung und das Übergeben dieser Werte als Startwerte an den ML-Löser (über das optim.controlArgument) hätte gute Chancen, dieses Problem zu vermeiden. Ich habe dies nicht getestet, da Sie kein reproduzierbares Beispiel für die Schwierigkeit liefern.
whuber
@whuber das ist die richtige Richtung. In einigen ökonometrischen Büchern wird gesagt, dass zunächst aus CSS-Lösungsparameterwerte Anfangswerte für die vollständige ML-Zielfunktion genommen werden.
Analyst

Antworten:

3

Um das ARIMA-Modell mit maximaler Wahrscheinlichkeit (Methode = "ML") auszustatten, muss die negative Log-Wahrscheinlichkeit des ARIMA-Modells über die Parameter optimiert (minimiert) werden. Dies stellt sich als eingeschränktes Optimierungsproblem heraus, da die Parameter zu einem stationären Modell führen müssen. Diese nichtlineare Einschränkung wird mit der negativen Log-Wahrscheinlichkeit berücksichtigt, die Inf (unendlich) zurückgibt, wenn die Einschränkung nicht erfüllt ist. Wenn sich der MLE nahe der Grenze der Einschränkungsbewertung befindet, könnte die negative log-Wahrscheinlichkeit in der Nähe des MLE unendlich zurückkehren. Da der Hessische Wert durch numerische Differenzierung durch Auswertung der negativen logarithmischen Wahrscheinlichkeit in der Nähe des MLE erhalten wird, kann dies zu dem von Ihnen erhaltenen nicht-endlichen Fehler der endlichen Differenz führen. Wenn also kein Hessisch benötigt wird, setzen Sie Hessisch = FALSE. Andernfalls,

edwardsm88
quelle
2

Bearbeitet: Wenn Sie dies ablehnen, können Sie bitte erklären, warum? Ich bin neu hier.

Ich hatte das gleiche Problem. Ich habe mich online umgesehen und eine Lösung gefunden, die an anderer Stelle auf Cross Validated vorgeschlagen wurde. Ich dachte, ich würde hier teilen, falls jemand es wollte.

Ich habe meinem Modell gerade eine "method =" CSS "" hinzugefügt und es hat funktioniert. Zum Beispiel:

model = Arima(x, order=c(1,1,1), seasonal=list(order=c(1,1,1), period=12), xreg=xreg, 
              method="CSS") 

Hier ist die Referenz:
auto.arima und Arima (Prognosepaket)

chriseshleman
quelle
Ich sehe jetzt Ihre Antwort und vielleicht für Ihre Daten. Es funktioniert, aber für meine Daten nein, mein Hauptziel war zu wissen, warum der Fehler meiner Frage aufgetreten ist und warum die Methode ML in meinem Fall oder in anderen
Fällen
3
Ich sehe, dass dies das Problem löst, aber wie werden Sie AIC-Werte verwenden, um verschiedene Modelle zu vergleichen, z. B. ARIMA (1,1,2), es sei denn, Sie verwenden die ML- oder CSS-ML-Methode? "Die Theorie der AIC erfordert, dass die Log-Wahrscheinlichkeit maximiert wurde: Während die AIC für Modelle berechnet werden kann, die nicht mit der maximalen Wahrscheinlichkeit angepasst wurden, sollten ihre AIC-Werte nicht verglichen werden." stat.ethz.ch/R-manual/R-devel/library/stats/html/AIC.html Für das OP ist ein AIC-Wert erforderlich.
Mumbo.Jumbo
0

Sie scheinen Probleme mit der Konvergenz von Algorithmen zu haben. Dies geschieht manchmal bei der numerischen Optimierung.

Hier ist ein Link zum Wikipedia-Artikel zu dieser speziellen Optimierungsmethode:

http://en.wikipedia.org/wiki/Broyden%E2%80%93Fletcher%E2%80%93Goldfarb%E2%80%93Shanno_algorithm

Analytiker
quelle
3
Ja, ich weiß, dass dies manchmal passiert, aber warum es mit der Anpassungsmethode mit CSS und mit ml Nein funktioniert und warum CSS nicht AIC macht
Cyberguille
1
@GuillermoAyranTorresLores CSS basiert auf der bedingten Wahrscheinlichkeit und erzeugt nicht denselben Wahrscheinlichkeitswert, den die bedingungslose Wahrscheinlichkeitsfunktion erzeugt, wenn sie für dieselben Parameter optimiert wird.
Analyst
1
@GuillermoAyranTorresLores versuchen, Ihr Optimierungsproblem so zu ändern, dass zunächst Parameterwerte aus der CSS-Lösung als Anfangswerte für die vollständige ML-Zielfunktion verwendet werden.
Analyst