Ir más allá de la función optim de R

Estoy tratando de usar R para estimar un modelo logit multinomial con una especificación manual. He encontrado algunos paquetes que le permiten estimar modelos MNLaquí oaquí.

He encontrado algunos otros escritos sobre "rodar" su propia función MLEaquí. Sin embargo, a partir de mi búsqueda, todas estas funciones y paquetes se basan en lo internooptim función.

En mis pruebas de referencia,optim Es el cuello de botella. Usando un conjunto de datos simulado con ~ 16000 observaciones y 7 parámetros, R toma alrededor de 90 segundos en mi máquina. El modelo equivalente enBiogema Toma ~ 10 segundos. Un colega que escribe su propio código enBuey informa alrededor de 4 segundos para este mismo modelo.

¿Alguien tiene experiencia con la escritura de su propia función MLE o puede señalarme en la dirección de algo que está optimizado más allá del valor predeterminado?optim función (sin juego de palabras)?

Si alguien quiere que el código R vuelva a crear el modelo, avíseme: se lo proporcionaré. No lo he proporcionado, ya que no es directamente relevante para el problema de optimizar eloptim función y para preservar el espacio ...

EDITAR: Gracias a todos por sus pensamientos. Con base en una miríada de comentarios a continuación, pudimos obtener R en el mismo estadio que Biogeme para modelos más complicados, y R fue en realidad más rápido para varios modelos más pequeños / más simples que ejecutamos. Creo que la solución a largo plazo para este problema consistirá en escribir una función de maximización separada que se base en una biblioteca fortran o C, pero ciertamente estoy abierto a otros enfoques.

Respuestas a la pregunta(4)

Su respuesta a la pregunta