glmerを再フィッティングすると、モデルが収束するのに苦労していることを示す警告が表示される場合があります。たとえば、
>Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model failed to converge with max|grad| = 0.00389462 (tol = 0.001)
@Ben Bolkerがこのスレッドで説明した収束をチェックする別の方法は次のとおりです。
relgrad <- with(model@optinfo$derivs,solve(Hessian,gradient))
max(abs(relgrad))
#[1] 1.152891e-05
場合max(abs(relgrad))
である<0.001
。この場合には、我々は矛盾する結果を持っているようなものは...大丈夫でしょうか?方法をどのように選択し、モデルのあてはめを安心させる必要がありますか?
一方、次のような極端な値を取得した場合:
>Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model failed to converge with max|grad| = 35.5352 (tol = 0.001)
relgrad <- with(model@optinfo$derivs,solve(Hessian,gradient))
max(abs(relgrad))
#[1] 0.002776518
これは、モデルの結果/推定値/ p値を無視しなければならないという意味ですか?0.0027は大きすぎて続行できませんか?
異なるオプティマイザーが異なる結果を与え、変数の中心化/パラメーターの削除(モデルを最小に引き下げる)が役に立たないが、VIFが低く、モデルが過剰分散せず、モデルの結果が先験的な期待に基づいて論理的に意味をなす場合、それを知るのは難しいようです何をすべきか。
収束問題をどのように解釈するか、本当に心配するためにどれほど極端に必要であるか、そして言及されたものを超えてそれらを管理するための可能な方法についてのアドバイスは非常に役立ちます。
使用:
R version 3.1.0 (2014-04-10)
およびlme4_1.1-6
lme4
(バージョン1.1-7)には、「誤報」警告を与える可能性が低いと著者が考える異なる警告動作があります。lme4
少なくとも最初のケースでは、最新バージョンに更新し、モデルを再度適合させ、同様の警告が依然として表示されるかどうかを確認することができます。