Выходя за пределы оптимальной функции R

Я пытаюсь использовать R для оценки полиномиальной модели логита с ручной спецификацией. Я нашел несколько пакетов, которые позволяют вам оценить модели MNLВот или жеВот.

Я нашел несколько других работ по "прокрутке" вашей собственной функции MLE.Вот, Тем не менее, из моего копаться - все эти функции и пакеты зависят от внутреннегоoptim функция.

В моих тестах,optim является узким местом. Используя смоделированный набор данных с ~ 16000 наблюдений и 7 параметрами, R занимает около 90 секунд на моей машине. Эквивалентная модель вBiogeme занимает ~ 10 секунд. Коллега, который пишет свой собственный код ввол сообщает около 4 секунд для этой же модели.

Кто-нибудь имеет опыт написания своей собственной функции MLE или может указать мне направление, оптимизированное за пределы по умолчанию?optim функция (не каламбур)?

Если кто-то хочет, чтобы код R воссоздал модель, дайте мне знать - я с удовольствием предоставлю его. Я не предоставил это, так как это не имеет прямого отношения к проблеме оптимизацииoptim функция и сохранить пространство ...

РЕДАКТИРОВАТЬ: Спасибо всем за ваши мысли. Основываясь на множестве комментариев, приведенных ниже, мы смогли получить R на том же уровне, что и Biogeme для более сложных моделей, и на самом деле R был быстрее для нескольких моделей меньшего размера / более простых, которые мы запускали. Я думаю, что долгосрочное решение этой проблемы будет включать в себя написание отдельной функции максимизации, которая опирается на фортран или C-библиотеку, но, безусловно, открыта для других подходов.

Ответы на вопрос(4)

Ваш ответ на вопрос