首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >lmer的替代优化算法

lmer的替代优化算法
EN

Stack Overflow用户
提问于 2014-08-05 15:19:02
回答 1查看 4.9K关注 0票数 2

默认情况下,lmer包中的lme4函数使用来自minqa包的bobyqa作为优化算法。

根据下面的文章https://stat.ethz.ch/pipermail/r-sig-mixed-models/2013q1/020075.html,也可以在minqa包中使用其他优化算法

如何使用uobyqanewuoa作为lmer的优化算法

代码语言:javascript
运行
复制
library(lme4)
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy, control=lmerControl(optimizer="bobyqa"))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-07 02:16:36

您不能使用newuoauobyqa,因为它们都不允许对参数进行约束。来自?lmerControl (重点添加)

任何允许框约束的最小化函数都可以使用,只要它 (1)接受输入参数fn(要优化的函数)、“par”(起始参数值)、“下限”和“控制参数”(从“控制”参数传递过来的控制参数)和 (2)返回一个包含(至少)元素‘par’(最佳拟合参数)、‘fval’(最佳拟合函数值)、‘conv’(收敛码等于零的成功收敛)和(可选)‘message’(信息消息或收敛失败解释)的列表。

"bobyqa“开头的b表示”绑定“(如在约束中),我假设其他算法中的u类似地表示”无约束“。您可以查看此文件,以便某些机器(重新)可以将同一模型与一组不同的优化器相匹配:

代码语言:javascript
运行
复制
allFit <- system.file("utils", "allFit.R", package="lme4")
file.show(allFit)

我目前所知道的允许框约束的所有优化器列表不需要指定显式梯度函数( optimx包中的大多数绑定约束优化器都需要),如上面的文件所示

  • BOBYQA (minqanloptr包实现)
  • Nelder (lme4nloptrdfoptim包实现)
  • 来自R基的nlminb (来自贝尔实验室端口库)
  • L-BFGS-B来自R基地,途经optimx (Broyden Goldfarb-Shanno,经纳什)

除了这些内置于allFit.R的功能之外,您还可以使用来自nloptrCOBYLA或子丛优化器:参见?nloptwrap。在subplex包中还有另一个子丛的实现:可能还有其他几个我错过了。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25142457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档