gpt4 book ai didi

r - lmer 的替代优化算法

转载 作者:行者123 更新时间:2023-12-03 17:09:45 26 4
gpt4 key购买 nike

lme4 包中的函数lmer 默认使用minqa 包中的bobyqa 作为优化算法。

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

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

library(lme4)
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy, control=lmerControl(optimizer="bobyqa"))

最佳答案

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

Any minimizing function that allows box constraints can be used provided that it

(1) takes input parameters ‘fn’ (function to be optimized), ‘par’ (starting parameter values), ‘lower’ (lower bounds) and ‘control’ (control parameters, passed through from the ‘control’ argument) and

(2) returns a list with (at least) elements ‘par’ (best-fit parameters), ‘fval’ (best-fit function value), ‘conv’ (convergence code, equal to zero for successful convergence) and (optionally) ‘message’ (informational message, or explanation of convergence failure).

“bobyqa”开头的b代表“bound”(如constrained),我假设其他算法中的u同样代表“unconstrained” ”。您可以查看此文件以了解一些机器(重新)使用一堆不同的优化器来拟契约(Contract)一模型:

allFit <- system.file("utils", "allFit.R", package="lme4")
file.show(allFit)

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

  • BOBYQA(minqanloptr 包实现)
  • Nelder-Mead(lme4nloptrdfoptim 包实现)
  • nlminb 来自 base R(来自贝尔实验室 PORT 库)
  • L-BFGS-B 来自 base R,通过 optimx(Broyden-Fletcher-Goldfarb-Shanno,通过 Nash)

除了这些内置于 allFit.R 之外,您还可以使用 COBYLA 或来自 nloptr 的子丛优化器:请参阅?nloptwrapsubplex 包中还有另一个 subplex 的实现:可能还有一些我错过了。

关于r - lmer 的替代优化算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25142457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com