Выходя за пределы оптимальной функции R
Я пытаюсь использовать R для оценки полиномиальной модели логита с ручной спецификацией. Я нашел несколько пакетов, которые позволяют вам оценить модели MNLВот или жеВот.
Я нашел несколько других работ по "прокрутке" вашей собственной функции MLE.Вот, Тем не менее, из моего копаться - все эти функции и пакеты зависят от внутреннегоoptim
функция.
В моих тестах,optim
является узким местом. Используя смоделированный набор данных с ~ 16000 наблюдений и 7 параметрами, R занимает около 90 секунд на моей машине. Эквивалентная модель вBiogeme занимает ~ 10 секунд. Коллега, который пишет свой собственный код ввол сообщает около 4 секунд для этой же модели.
Кто-нибудь имеет опыт написания своей собственной функции MLE или может указать мне направление, оптимизированное за пределы по умолчанию?optim
функция (не каламбур)?
Если кто-то хочет, чтобы код R воссоздал модель, дайте мне знать - я с удовольствием предоставлю его. Я не предоставил это, так как это не имеет прямого отношения к проблеме оптимизацииoptim
функция и сохранить пространство ...
РЕДАКТИРОВАТЬ: Спасибо всем за ваши мысли. Основываясь на множестве комментариев, приведенных ниже, мы смогли получить R на том же уровне, что и Biogeme для более сложных моделей, и на самом деле R был быстрее для нескольких моделей меньшего размера / более простых, которые мы запускали. Я думаю, что долгосрочное решение этой проблемы будет включать в себя написание отдельной функции максимизации, которая опирается на фортран или C-библиотеку, но, безусловно, открыта для других подходов.