Indo além da função otimizada de R

Estou tentando usar R para estimar um modelo de logit multinomial com uma especificação manual. Encontrei alguns pacotes que permitem estimar modelos MNLaqui ouaqui.

Encontrei outros escritos sobre "rolar" sua própria função MLEaqui. No entanto, das minhas investigações - todas essas funções e pacotes dependem dos recursos internosoptim função.

Nos meus testes de benchmark,optim é o gargalo. Usando um conjunto de dados simulado com ~ 16000 observações e 7 parâmetros, R leva cerca de 90 segundos na minha máquina. O modelo equivalente emBiogeme leva ~ 10 segundos. Um colega que escreve seu próprio código emBoi relatórios em torno de 4 segundos para esse mesmo modelo.

Alguém tem experiência em escrever sua própria função MLE ou pode me apontar na direção de algo que é otimizado além do padrãooptim função (sem trocadilhos)?

Se alguém quiser que o código R recrie o modelo, avise-me - eu fornecerei. Eu não o forneci, pois não é diretamente relevante para o problema de otimizar ooptim função e preservar o espaço ...

EDIT: Obrigado a todos por seus pensamentos. Com base em uma infinidade de comentários abaixo, conseguimos obter R no mesmo estádio que o Biogeme para modelos mais complicados, e R foi realmente mais rápido em vários modelos menores / mais simples que rodamos. Penso que a solução a longo prazo para esse problema envolverá a escrita de uma função de maximização separada que depende de uma biblioteca fortran ou C, mas certamente estou aberta a outras abordagens.

questionAnswers(4)

yourAnswerToTheQuestion