R中的广义简约梯度(GRG2)算法

时间:2013-03-02 15:01:12

标签: r optimization

有谁知道哪个R包具有广义缩减梯度(GRG2)算法的实现?感谢

2 个答案:

答案 0 :(得分:3)

由于@BenBolker已经完成了初步步骤,找到了您希望复制的功能,我发布了一个可能有用的后续工作。最近一次关于Rhelp的交流最后提到了一个被提名为R fortunes套餐的报价,尽管我不清楚它是否被接受:

"The idea that the Excel solver "has a good reputation for being fast
and accurate" does not withstand an examination  of the Excel solver's
ability to solve the StRD nls test problems. ...
Excel solver does have the virtue that it will always produce an
answer, albeit one with zero accurate digits."

"I am unaware of R being applied to the StRD, but I did apply S+ to the 
StRD and, with analytic derivatives, it performed flawlessly."

From:   Bruce McCullough <bdmccullough@drexel.edu>
Date:   February 20, 2013 7:58:24 AM PST

以下是McCullough记录Excel Solver(我们现在知道由某些版本的GRG2算法提供支持)故障的自引工作的链接: www.pages.drexel.edu/~bdm25/chap8.pdf以及有关测试问题的NIST网站链接位于:http://www.itl.nist.gov/div898/strd/nls/nls_info.shtmlhttp://www.itl.nist.gov/div898/strd/nls/nls_main.shtml

来自@jwg的负面评论(引起我的注意力)促使我重做Bolker建议的搜索。仍然没有findFn( "GRG2")的点击率。我可以为“GRG”报告几个点击,但是他们中没有一个显然是对一个解算器,并且很有趣,其中一个有“一般随机猜测模型”的引人注目的扩展。当我可以说没有答案的主旨是选择使用Excel的求解器时,这似乎特别有趣,这使得人们真正不确定解决方案的准确性。我没有慷慨地发布一个“答案”,它没有提供所要求的内容,而是警告那些在统计/数学领域可能没有虔诚地致力于微软方式的用户。分布式R开发人员缺乏为Excel解算器提供替代品的任何努力都值得认真考虑。

答案 1 :(得分:2)

一些相关的见解来自一位着名的统计科学家this post to R-help

  

Excel中的代码实际上称为GRG2(2确实很重要)。不像   对于optim()的任何方法,它都可以处理非线性不等式   约束,不需要可行的初始解决方案。

     

在NEOS优化指南中有一个关于它的模糊:   http://www-fp.mcs.anl.gov/otc/Guide/SoftwareGuide/Blurbs/grg2.html

     

从这个模糊来看,它与L-BFGS-B的问题类似   没有约束或框约束。     -Thomas

     

Thomas Lumley Assoc。生物统计学教授tlumley at   u.washington.edu华盛顿大学,西雅图

因此,在某些情况下,使用optim代替Excel解算器可能是合适的:

optim(pars, 
      OptPars, 
      ... ,
      method = "L-BFGS-B")

请注意,NEOS优化指南现在位于:http://neos-guide.org/content/optimization-guide,此页面中提到了GRG2:http://neos-guide.org/content/reduced-gradient-methods它列出了BFGS,CONOPT和其他几个相关算法。本文将这些描述为“投影增广拉格朗日算法”。根据{{​​3}},这些算法可以在nloptr,alabama和Rsolnp中找到。

我使用optimx包在Excel解算器和R之间进行了很好的匹配(对于六个sig figs),但YMMV。