Über die Optimierungsfunktion von R hinausgehen

Ich versuche, mit R ein multinomiales Logit-Modell mit einer manuellen Spezifikation zu schätzen. Ich habe ein paar Pakete gefunden, mit denen Sie MNL-Modelle schätzen könnenHie oderHie.

Ich habe einige andere Schriften zum "Rollen" Ihrer eigenen MLE-Funktion gefundenHie. Nach meinem Herumgraben stützen sich all diese Funktionen und Pakete auf das interneoptim Funktion.

ei meinen Benchmarktesoptim ist der Engpass. Unter Verwendung eines simulierten Datensatzes mit ~ 16000 Beobachtungen und 7 Parametern dauert R auf meinem Computer ungefähr 90 Sekunden. Das entsprechende Modell in Biogeme dauert ca. 10 Sekunden. Ein Kollege, der seinen eigenen Code in @ schreiOchs gibt für dasselbe Modell ungefähr 4 Sekunden an.

Hat jemand Erfahrung mit dem Schreiben einer eigenen MLE-Funktion oder kann er mich auf etwas hinweisen, das über die Standardeinstellung hinaus optimiert ist?optim Funktion (kein Wortspiel vorgesehen)?

Wenn jemand möchte, dass der R-Code das Modell neu erstellt, lassen Sie es mich wissen - ich werde es gerne bereitstellen. Ich habe es nicht angegeben, da es für das Problem der Optimierung des @ nicht direkt relevant isoptim Funktion und um Platz zu sparen ...

EDIT: Vielen Dank an alle für Ihre Gedanken. Basierend auf einer Vielzahl von Kommentaren unten konnten wir R für kompliziertere Modelle in den gleichen Standard wie Biogeme bringen, und R war für mehrere kleinere / einfachere Modelle, die wir ausführten, tatsächlich schneller. Ich denke, die langfristige Lösung für dieses Problem besteht darin, eine separate Maximierungsfunktion zu schreiben, die auf einer fortran- oder C-Bibliothek basiert, aber auf jeden Fall offen für andere Ansätze is

Antworten auf die Frage(8)

Ihre Antwort auf die Frage