lme4の収束警告についてどれほど怖いのか


88

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


10
新しいバージョンlme4(バージョン1.1-7)には、「誤報」警告を与える可能性が低いと著者が考える異なる警告動作があります。lme4少なくとも最初のケースでは、最新バージョンに更新し、モデルを再度適合させ、同様の警告が依然として表示されるかどうかを確認することができます。
ジェイクウェストフォール14

回答:


91

怖がる。とても恐れてください。

昨年、私はoptimおよびoptimxの作者であるJohn Nash にIBMのDeveloperWorksサイトに関する記事をインタビューしました。オプティマイザーがどのように機能し、失敗したときに失敗する理由について説明しました。彼は、彼らがしばしばそうすることを当たり前のように思ったようです。そのため、診断がパッケージに含まれています。彼はまた、「あなたの問題を理解し、データを理解する必要がある」と考えました。これらはすべて、警告を真剣に受けとめる必要があることを意味し、他の方法でデータを確認するよう勧めています。

通常、オプティマイザーは、損失関数を有意な量だけ改善できなくなると、検索を停止します。基本的に、次にどこに行けばいいのかわかりません。その時点で損失関数の勾配がゼロでない場合、どのような極値にも達していません。ヘッセ行列が正ではなく、勾配がゼロの場合、最小値は見つかりませんでしたが、最大値またはaddle点が見つかった可能性があります。ただし、オプティマイザーによっては、ヘッセ行列に関する結果が提供されない場合があります。Optimxでは、KKT条件を評価する場合、それらを要求する必要があります-デフォルトでは評価されません。(これらの条件は、勾配とヘッシアンを見て、実際に最小値があるかどうかを確認します。)

混合モデルの問題は、ランダム効果の分散推定値が正になるように制約されているため、最適化領域内に境界が配置されることです。ただし、モデルに特定のランダム効果が実際に必要ない場合、つまり、ランダム効果の分散が0であると仮定します。オプティマイザーはその境界に入り、続行できず、ゼロ以外の勾配で停止します。そのランダム効果を削除すると収束が改善された場合、それが問題であることがわかります。

余談ですが、漸近的最尤法理論は、MLEが内部点(つまり、正当なパラメーター値の境界上ではない)にあると仮定していることに注意してください。そのため、分散0本当。テストは、パッケージRLRsimに実装されているシミュレーションテストを使用して実行できます。

私には、パラメーターの数に対してデータが少なすぎる場合、または提案されたモデルが実際に適切でない場合に、オプティマイザーが問題を起こすと思われます。ガラスの滑り止めとandいステップシスターを考えてみてください。どんなに一生懸命努力しても、データをモデルに押し込むことはできません。

たとえデータがモデルに適合したとしても、すべてのパラメーターを推定する能力がない場合があります。これらの線に沿って面白いことが起こった。いくつかの混合モデルをシミュレートして質問に答えました混合効果モデルを近似するときにランダム効果の相関を許可しないとどうなるかについて。2つのランダム効果間の強い相関関係を使用してデータをシミュレートし、lmerを使用して両方の方法でモデルを適合させます:0の相関関係と自由な相関関係。相関モデルは無相関モデルよりも適合しますが、興味深いことに、1000回のシミュレーションでは、真のモデルを適合させると13個のエラーが発生し、より単純なモデルを適合させると0個のエラーが発生しました。私はこれがなぜ起こったのか完全には理解していません(そして、同様の結果にシムを繰り返しました)。相関パラメーターはかなり役に立たず、オプティマイザーは値を見つけることができないと思います(それは重要ではないからです)。

オプティマイザが異なると結果が異なる場合の対処方法について質問しました。ジョンと私はこの点について議論しました。彼の意見では、一部のオプティマイザーはそれほど良くありません!そして、それらのすべてには弱点があります。つまり、それらを失敗させるデータセットです。これが、さまざまなオプティマイザーを含むoptimxを書いた理由です。同じデータセットで複数を実行できます。

2つのオプティマイザーが同じパラメーターを提供するが、診断が異なる場合(およびそれらのパラメーターが実際に意味をなす場合)、パラメーター値を信頼する傾向があります。困難は診断にある可能性がありますが、これは絶対確実ではありません。勾配関数および/またはヘッセ行列を明示的に指定していない場合、オプティマイザーは損失関数とデータからこれらを推定する必要がありますが、これは他の問題となる可能性があります。

異なるパラメーター値も取得している場合は、異なる開始値を試して、その結果を確認することをお勧めします。一部のオプティマイザーと一部の問題は、開始値に非常に敏感です。あなたは球場で始めたいです。


3
ああ!私はこの質問を開いて「恐れる。非常に恐れる」ようにした。冗談で。よかったね。また、実際の回答に組み込むこともできますが、これを行うつもりはありませんでした。
アレクシス14

2
あなたは本当にナッシュが書いた本を読むべきです。ヘッシアンの決定は実際には非常に難しいため、多くの場合オプティマイザーが収束している可能性がありますが、ヘッシアンは不正確であるため、異なるオプティマイザーから同様の結果が得られる場合でも、ヘッシアンがモデルではなく偽であることが頻繁に発生します。ヘッセ行列または勾配検定は、安心のためだけにあります。境界制約オプティマイザを使用している場合のように、ヘシアンもあまり意味をなさないことがありますが、ヘシアンアルゴリズムはこれを考慮せず(lme4など)、境界に到達します。

18

@Placidiaのすばらしい答えを補足したいだけです。James Hodges(2014)の「Richly Parameterized Linear Models:Additive、Time Series、およびSpatial Models Using Random Effects」をチェックしてください。混合モデルについて私たちが知らないことを議論すると同時に、複雑なモデルをフィッティングするための実用的なヒントだけでなく幅広い理論を提供しようとします。

私自身がよく怖がるモデラーである私は、「パズル」に関するホッジの議論は貴重だと感じています。彼は、「固定効果と競合するランダム効果」や「ランダム効果間の競合」など、混合効果モデリングのフィッティングから生じる奇妙なケースについて説明しています。おなじみですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.