Existe uma maneira de maximizar / minimizar uma função personalizada no R?

18

Estou tentando minimizar uma função personalizada. Ele deve aceitar cinco parâmetros e o conjunto de dados e fazer todos os tipos de cálculos, produzindo um único número como saída. Quero encontrar uma combinação de cinco parâmetros de entrada que produzam a menor saída da minha função.

user333
fonte

Respostas:

23

Eu escrevi um post listando alguns tutoriais usandooptim .

Aqui está uma citação da seção relevante:

  • "A combinação da função R optime uma função objetiva criada customizada, como uma função de menor probabilidade de log, fornece uma ferramenta poderosa para estimativa de parâmetros de modelos customizados.
  • Jeromy Anglim
    fonte
    1
    Ultimamente, tenho jogado com o DEoptim como um ótimo otimizador "sem pontos de partida necessários".
    Mike Lawrence
    1
    Uma publicação recente de John Myles White no comando optim em R também pode ser interessante .
    Andy W
    @ Mike concordou; DEoptim dá alternativa mais robusta (DE = Evolução Diferencial)
    Abe
    12

    Além da resposta de Jeromy Anglim, tenho mais alguns links.

    Ao lado optimhá uma outra função na base de R que permite que você quer: nlminb. Veja ?nlminbe ?optimexemplos de uso.

    Existem vários pacotes que podem fazer otimizações. O que achei mais interessante foram os pacotes optimx e, bastante novo, o pacote neldermead para diferentes versões do algoritmo simplex.

    Além disso, você pode dar uma olhada na Visualização de tarefas CRAN na otimização para obter mais pacotes

    Observe que minhas recomendações assumem que você tem uma função determinística (ou seja, nenhum ruído aleatório). Para funções que não sejam estritamente determinísticas (ou muito grandes), você precisará usar algoritmos como recozimento simulado ou algoritmos genéticos. Mas a tela de tarefas CRAN deve ter o que você precisa.

    Henrik
    fonte
    1

    Sua função é contínua e diferenciável? Você pode usar o otim, com derivados fornecidos pelo usuário ou numericamente aproximados.

    grg s
    fonte