2

パッケージ内の関数lmerは、最適化アルゴリズムとしてパッケージからlme4デフォルトで使用します。bobyqaminqa

次の投稿https://stat.ethz.ch/pipermail/r-sig-mixed-models/2013q1/020075.htmlminqaによると、パッケージ内の他の最適化アルゴリズムも使用できます。

uobyqaまたはnewuoaの最適化アルゴリズムとしてどのように使用できますlmerか?

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

1 に答える 1

6

どちらもパラメーターの制約を許可し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)

上記のファイルに示されているように、ボックス制約を許可し、明示的な勾配関数を指定する必要がない (パッケージ内のほとんどの境界制約付きオプティマイザーに必要)という、私が現在知っているすべてのオプティマイザーのリストは、次のとおりです。optimx

  • BOBYQA (minqaおよびnloptrパッケージの実装)
  • Nelder-Mead ( lme4nloptr、およびdfoptimパッケージの実装)
  • nlminbbase R から (Bell Labs PORT ライブラリから)
  • L-BFGS-Bベース R からoptimx(Broyden-Fletcher-Goldfarb-Shanno、Nash 経由) 経由

に組み込まれているこれらに加えて、 のまたは サブプレックス オプティマイザをallFit.R使用できます。を参照してください。パッケージにはサブプレックスの別の実装があります。他にも見逃しているものがあるかもしれません。COBYLAnloptr?nloptwrapsubplex

于 2016-08-07T02:16:36.280 に答える