Есть ли способ максимизировать / минимизировать пользовательскую функцию в R?

18

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

user333
источник

Ответы:

23

Я написал пост, в котором перечислены несколько учебных пособийoptim .

Вот цитата из соответствующего раздела:

  • «Сочетание функции R optimи созданной пользователем целевой функции, такой как функция вероятности минус, обеспечивает мощный инструмент для оценки параметров пользовательских моделей.
  • Джером англим
    источник
    1
    В последнее время я играю с DEoptim как с хорошим оптимизатором «без стартовых очков».
    Майк Лоуренс
    1
    Недавнее размещение Джон Майлс Уайт на Optim команды в R также может быть интерес .
    Энди W
    @ Майк согласился; DEoptim дает более надежную альтернативу (DE = дифференциальная эволюция)
    Абэ
    12

    В дополнение к ответу Джерома Англима, у меня есть еще несколько ссылок.

    Рядом optimесть еще одна функция в базовом R , что позволяет за то , что вы хотите: nlminb. Проверьте ?nlminbи ?optimпримеры использования.

    Существует множество пакетов, которые могут выполнять оптимизацию. Что мне показалось наиболее интересным, так это пакеты optimx и совершенно новый пакет neldermead для различных версий алгоритма симплекс.

    Кроме того, вы можете захотеть взглянуть на CRAN Task View по оптимизации для большего количества пакетов

    Обратите внимание, что все мои рекомендации предполагают, что у вас есть детерминированная функция (т.е. нет случайного шума). Для функций, которые не являются строго детерминированными (или слишком большими), вам необходимо использовать такие алгоритмы, как имитация отжига или генетические алгоритмы. Но CRAN Task View должен иметь то, что вам нужно.

    Хенрик
    источник
    1

    Ваша функция непрерывна и дифференцируема? Вы можете использовать optim как с предоставленными пользователем производными, так и с числовыми аппроксимациями.

    Grg S
    источник