2010-12-09 67 views
1

Y J'ai 6 paramètres pour lesquels je connais les valeurs maxi et mini. J'ai une fonction complexe qui inclut les 6 paramètres et renvoie une 7ème valeur (disons Y). Je dis complexe car Y n'est pas directement lié aux 6 paramètres; il y a beaucoup de fonctions encastrées entre les deux. Je voudrais trouver la combinaison des 6 paramètres qui renvoie la valeur Y la plus élevée. J'ai d'abord essayé de calculer Y pour chaque combinaison en construisant un hypercube mais je n'ai pas assez de mémoire dans mon ordinateur. Je cherche donc des types de chaînes markov qui progressent dans l'espace des paramètres délimités, et qui sont capables de dépasser les pics locaux. optimisation d'une fonction pour trouver des pics globaux et locaux avec R

  • lorsque je donne une combinaison des 6 paramètres, je voudrais connaître la valeur Y locale la plus élevée. J'ai essayé d'écrire un code avec une chaîne itérative comme celle d'un markov, mais je ne suis pas sûr de savoir comment traiter quand la chaîne atteint un bord de l'espace des paramètres. Évidemment, certains algorythmes devraient déjà exister pour cela. Question: Est-ce que quelqu'un sait quelles sont les meilleures fonctions de R pour faire ces deux choses? J'ai lu que optim() pourrait être approprié pour trouver le pic global mais je ne suis pas sûr qu'il puisse traiter des fonctions complexes (je préfère demander avant de s'engager dans un long processus d'écriture de code). Et pour les pics locaux? Optim() ne devrait pas être en mesure de le faire

    À l'avance, je vous remercie pour tout le plomb

    Julien de France

  • +1

    ce genre de questions sont mieux posées sur http://www.crossvalidated.com –

    Répondre

    1

    Jetez un oeil à la Optimization and Mathematical Programming Task View sur CRAN. J'ai personnellement trouvé l'algorithme d'évolution différentielle très rapide et robuste. Il est implémenté dans le package DEoptim. Le paquet rgenoud est un autre bon candidat.

    0

    J'aime utiliser l'algorithme Metropolis-Hastings. Puisque vous limitez chaque paramètre à une plage, la chose la plus simple à faire est de laisser la distribution de votre proposition simplement être uniforme sur toute la plage. De cette façon, vous ne ferez pas tomber les bords. Ce ne sera pas rapide, mais si vous le laissez fonctionner assez longtemps, il fera un bon travail d'échantillonnage de votre espace. Les échantillons se rassembleront à chaque pic et s'étaleront autour d'eux d'une manière qui reflète la courbure locale.