ÿ 我有6个参数,我知道maxi和mini值。我有一个复杂的函数,包括6个参数并返回第7个值(比如Y)。我说复杂因为Y与6个参数没有直接关系;中间有许多嵌入式功能。
问题:有人知道R中最好的功能是做这两件事吗?我读到optim()可能适合找到全局峰值,但我不确定它是否可以处理复杂的函数(我更喜欢在参与代码编写的长期(对我来说)之前询问)。当地的山峰? optim()不应该这样做
事先,谢谢你的任何领导
来自法国的Julien
答案 0 :(得分:1)
查看CRAN上的Optimization and Mathematical Programming Task View。我个人发现差分进化算法非常快速和稳健。它在DEoptim包中实现。 rgenoud套餐是另一个很好的候选人。
答案 1 :(得分:0)
我喜欢使用Metropolis-Hastings算法。由于您将每个参数限制在一个范围内,因此最简单的方法是让您的提案分布在范围内简单均匀。这样,你就不会跑掉边缘。它不会很快,但是如果你让它运行得足够长,那么它将很好地对你的空间进行采样。样本将聚集在每个峰值处,并以反映局部曲率的方式在它们周围展开。