maj*_*jom 2 optimization r lme4 mixed-models
该功能lmer在lme4包使用默认情况下bobyqa从minqa包作为优化算法.
根据以下帖子https://stat.ethz.ch/pipermail/r-sig-mixed-models/2013q1/020075.html,可以在minqa包中使用其他优化算法
如何使用uobyqa或newuoa作为优化算法lmer?
library(lme4)
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy, control=lmerControl(optimizer="bobyqa"))
Run Code Online (Sandbox Code Playgroud)
您不能使用newuoa也不能uobyqa因为它们都不允许对参数进行约束.来自?lmerControl(强调添加)
可以使用任何允许框约束的最小化函数
(1)获取输入参数'fn'(要优化的函数),'par'(起始参数值),'lower'(下界)和'control'(控制参数,从'control'参数传递)和
(2)返回一个列表,其中包含(至少)元素'par'(最佳拟合参数),'fval'(最佳拟合函数值),'conv'(收敛代码,等于零以便成功收敛)和(可选) )'消息'(信息消息,或收敛失败的解释).
的b在"bobyqa"的开始代表"结合的"(如在约束),我假定u在其它算法类似地代表"无约束".您可以查看此文件中的某些机制,以便(重新)使用一堆不同的优化器来匹配相同的模型:
allFit <- system.file("utils", "allFit.R", package="lme4")
file.show(allFit)
Run Code Online (Sandbox Code Playgroud)
我目前所知道的所有优化器列表都允许使用框约束,并且不需要指定显式渐变函数(包中大多数绑定约束优化器都需要optimx),如上面的文件所示,
minqa和nloptr包实现)lme4,nloptr,和dfoptim包实现)nlminb 来自基地R(来自贝尔实验室PORT图书馆)L-BFGS-B从基地R经过optimx(Broyden-Fletcher-Goldfarb-Shanno,途经纳什)除了这些内置的内容之外allFit.R,您还可以使用以下内容中的COBYLA或子复用优化器nloptr:see ?nloptwrap.包中还有另一个subplex实现subplex:可能还有其他一些我错过了.