完全な成功を収めたカテゴリー変数を含む2項式glmm


11

二項応答変数とカテゴリカル予測子を使ってglmmを実行しています。ランダムな効果は、データ収集に使用されるネストされたデザインによって与えられます。データは次のようになります。

m.gen1$treatment
 [1] sucrose      control      protein      control      no_injection .....
Levels: no_injection control sucrose protein
m.gen1$emergence 
 [1]  1  0  0  1  0  1  1  1  1  1  1  0  0....
> m.gen1$nest
 [1] 1  1  1  2  2  3  3  3  3  4  4  4  .....
Levels: 1 2 3 4 5 6 8 10 11 13 15 16 17 18 20 22 24

私が実行する最初のモデルは次のようになります

m.glmm.em.<-glmer(emergence~treatment + (1|nest),family=binomial,data=m.gen1)

次のような2つの警告が表示されます。

Warning messages:
1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model failed to converge with max|grad| = 0.0240654 (tol = 0.001, component 4)
2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model is nearly unidentifiable: large eigenvalue ratio
 - Rescale variables?

モデルの要約は、処理の1つに異常に大きな標準誤差があることを示しています。これは次のとおりです。

Fixed effects:
                 Estimate Std. Error z value Pr(>|z|)  
(Intercept)         2.565      1.038   2.472   0.0134 *
treatmentcontrol   -1.718      1.246  -1.378   0.1681  
treatmentsucrose   16.863   2048.000   0.008   0.9934  
treatmentprotein   -1.718      1.246  -1.378   0.1681 

私は他のパッケージからのglmerコントロールと関数からの異なるオプティマイザを試しました、そして私は同様の出力を得ます。ランダムな効果を無視してglmを使用してモデルを実行しましたが、問題は解決しません。データを調査していると、高標準の治療法であることがわかりました。エラーは、応答変数で成功のみを持っています。それが問題の原因であるかどうかを確認するためだけに、その処理に「失敗」のある偽のデータポイントを追加しました。モデルはスムーズに実行され、妥当な標準誤差が得られます。あなたはそれをここで見ることができます:

Fixed effects:
                 Estimate Std. Error z value Pr(>|z|)  
(Intercept)        3.4090     1.6712   2.040   0.0414 *
treatmentcontrol  -1.8405     1.4290  -1.288   0.1978  
treatmentsucrose  -0.2582     1.6263  -0.159   0.8738  
treatmentprotein  -2.6530     1.5904  -1.668   0.0953 .

私の直観は、その治療の失敗がないために適切な推定ができないことについて正しいのか、そしてこの問題をどのように回避できるのかと思っていました。

前もって感謝します!

回答:


15

あなたの直感は正確です。この現象を完全分離といいます。あなたはかなりたくさん見つけることができます(今ではその名前を知っています)グーグルする...それは一般的な文脈でここでかなり徹底的に議論されています、そしてここでGLMMsの文脈でれています。この問題の標準的な解決策は、パラメーターをゼロに戻す小さな項を追加することです。頻出者のコンテキストでは、これはペナルティ付きまたはバイアス修正済みのメソッドと呼ばます。標準アルゴリズムはFirth(1993、「最尤推定のバイアス削減」Biometrika 80、27-38)によるもので、logistfパッケージに実装されていますクランで。ベイジアンのコンテキストでは、これは固定効果パラメーターの前に弱点を追加するように構成されます。

私の知る限りでは、ファースのアルゴリズムはGLMMに拡張されていませんが、次のようにしてベイジアントリックを使用できます。 lme4パッケージの上部に薄いベイジアンレイヤーを配置するblmeパッケージます。上記のGLMMディスカッションの例を次に示します。

cmod_blme_L2 <- bglmer(predation~ttt+(1|block),data=newdat,
                   family=binomial,
                   fixef.prior = normal(cov = diag(9,4)))

この例の最初の2行は、標準glmerモデルで使用するものとまったく同じです。最後は、固定効果の事前分布が対角分散共分散行列を持つ多変量正規分布であることを指定します。マトリックスは4x4(この例では4つの固定効果パラメーターがあるため)であり、各パラメーターの以前の分散は9です(標準偏差3に対応します。これはかなり弱く、つまり+/- 2SDは( -6,6)、これはロジットスケールで非常に大きな範囲です)。

例のパラメータの非常に大きな標準誤差は、Hauck-Donner効果と呼ばれる完全分離に密接に関連する現象(ロジスティックモデルで極端なパラメータ値を取得するたびに発生する)の例です。

さらに2つの潜在的に有用な参照(私はまだそれらを詳しく調べていません):

  • Gelman A、Jakulin A、Pittau MGおよびSu TS(2008)ロジスティックモデルおよびその他の回帰モデルの弱くて情報の少ないデフォルトの事前分布。応用統計年報、2、1360–383。
  • JoséCortiñasAbrahantes and Marc Aerts(2012)クラスタ化されたバイナリデータの分離のためのソリューション統計モデリング 12(1):3–27 doi:10.1177 / 1471082X1001200102

「bglmerの「完全な分離」」に関する最近のGoogle学者の検索では、次のことがわかります。

  • Quiñones、AE、およびWT Wcislo。「通性Eusocialで不可解な拡張ブルードケアビー汗Megaloptaのgenalisを。」Insectes Sociaux 62.3(2015):307–313。

わぁありがとうございます!! これは完全に理にかなっており、モデルはbglmerでスムーズに実行されます。もう1つ質問があります。lme4のようなメソッドを使用して、ランダムな効果と固定効果を評価できますか?つまり、異なるモデルを比較できますか?

2
私はそう言いますが、私の意見に対する正式な、または査読済みのサポートがあるかどうかはわかりません...
ベンボルカー

ありがとう!これもまさに私の問題です。簡単なフォローアップ:4つのレベルを持つ1つの因子がある例とは対照的に、各因子が2つのレベルを持つ2 x 2のデザインがあります(したがって、合計はまだ4レベルです)。モデルにdiag(9,4)も使用できますか?私は行列に精通していないので、再確認したいと思いました。関連して、私の論文でこのソリューションを正当化するには、Firth(1993)を引用する必要がありますか、それともbglmer()を使用してソリューションを実装した、より直接的な関連論文がありますか?
Sol

2
更新された回答を参照してください。
Ben Bolker、2016

2
私はそう思う-それは合計でいくつの固定効果パラメータがあるかだけ問題になるはずです。
Ben Bolker、2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.