Ich verwende die glmer
Funktion aus dem lme4
Paket in R und verwende den bobyqa
Optimierer (dh die Standardeinstellung in meinem Fall). Ich bekomme eine Warnung und bin gespannt, was das bedeutet.
Warning message:
In optwrap(optimizer, devfun, start, rho$lower, control = control, :
convergence code 3 from bobyqa: bobyqa -- a trust region step failed to reduce q
Ich suchte nach "Ein Vertrauensbereichsschritt konnte q nicht reduzieren." In der Minqa-Packung wurden einige Informationen gefunden, die lauten : " Wenden Sie sich an Powell, um eine Erklärung zu erhalten." Ich habe es getan (Sie können es auch, wenn Sie möchten! Sehen Sie die Verweise und Links zu ihnen unten), aber ich verstehe es nicht. Tatsächlich konnte ich nichts über die Reduzierung von q finden.
MJD Powell (2007) "Entwicklungen von NEWUOA für die uneingeschränkte Minimierung ohne Derivate", Universität Cambridge, Institut für Angewandte Mathematik und Theoretische Physik, Arbeitsgruppe Numerische Analyse, Bericht NA2007 / 05, http://www.damtp.cam.ac.uk/ user / na / NA_papers / NA2007_05.pdf .
MJD Powell (2009), "Der BOBYQA-Algorithmus für gebundene beschränkte Optimierung ohne Derivate", Bericht Nr. DAMTP 2009 / NA06, Zentrum für Mathematische Wissenschaften, Universität Cambridge, UK. http://www.damtp.cam.ac.uk/user/na/NA_papers/NA2009_06.pdf .
PS Ich weiß, dass ich den Optimierer ändern kann, und ich werde sehen, ob ich ohne Warnungen oder Fehler ausgegeben werden kann. Ich werde auch die Steigung und Hessisch prüfen, wenn ich kann, wie aus einem Kommentar / einer Antwort von Ben Bolker hervorgeht . Ich verwende glmer
innerhalb von dredge
from MuMIn
und bin mir nicht sicher, ob Bens Antwort ohne weiteres Basteln funktionieren wird, aber ich werde daran arbeiten, sobald mein Computer fertig ist, was er macht, jedenfalls schweife ich ab.
Aktualisieren
Gemäß dem Kommentar von Dr. Bolker habe ich begonnen, den FORTRAN-Code zu durchsuchen ( hier ist der Code für alle, die ihn suchen, aber nicht herunterladen möchten ). "430" wird im Abschnitt "bobyqb.f" des Codes angezeigt. Suchen Sie einfach nach "430" oder "Q reduzieren", um den entsprechenden Code zu finden.
Dies ist meine erste Begegnung mit FORTRAN-Code, aber ich denke, der Code besagt, dass, wenn die folgenden Bedingungen erfüllt sind, die Warnung erzeugt wird: NTRITS
> 0, VQUAD
> = 0, IPRINT
> 0. "Die Ganzzahl NTRITS wird auf die Zahl" Vertrauensbereich "gesetzt. Iterationen, die seit der letzten "alternativen" Iteration aufgetreten sind. " VQUAD
erscheint mehrmals und ich bin mir noch nicht sicher, welche Bedeutung es hat, da sein Wert von einer Vielzahl anderer Variablen abhängig zu sein scheint, deren Werte manchmal von anderen Variablen abhängen. Von bobyqa.f: "Der Wert von IPRINT sollte sein setze auf 0, 1, 2 oder 3, was den Umfang des Druckens steuert. Insbesondere gibt es keine Ausgabe, wenn IPRINT = 0 ist, und gibt es nur bei der Rückgabe eine Ausgabe, wenn IPRINT = 1 ist. "
Es scheint also die Aufgabe zu sein, herauszufinden, wie wichtig VQUAD
es ist,> = 0 zu sein und vielleicht zu verstehen, wie / wann IPRINT
> 0 wurde. Ich muss noch einmal zur Zeitung gehen, um einen Blick darauf zu werfen, aber auf die Mathematik oder auf Zumindest sein symbolischer Ausdruck ist für mich ein kleines Hindernis. Wenn jemand den Algorithmus nicht kennt oder wissen möchte, muss ich das Verständnis der Warnung schrittweise verbessern, indem ich zwischen den Dokumenten, dem Code und dem Internet hin und her gehe, bis ich verstehe, was es ist meint.
src
Verzeichnis cran.r-project.org/src/contrib/minqa_1 Stück für Stück durchzuarbeiten. 2.3.tar.gz ) und genau zu sehen, was passiert , wenn dieser Fehler (Fehlercode 430 im Code) ausgelöst wird ...