web-dev-qa-db-ja.com

線形混合モデル(lme4)の特異フィットに対処する方法は?

ランダムな変数として変数nestを持つ鳥に関する研究のために、いくつかの線形混合モデルを実行しています。問題は、これらのモデルのいくつかで「特異フィット」と呼ばれるものが得られるということです。私のネストした確率変数の分散とstエラーは0.00です。

背景:野生の鳥と協力して、騒々しい環境での生活がいくつかの酸化ストレスパラメータに与える影響を調べています。このために、私たちは各巣の雛のそれぞれについて血液サンプルを取り、実験室での作業を行いました。血液サンプルが限られているため、すべての雛について酸化ストレスパラメータを測定できませんでした。

model <- lmer(antioxidant_capacity~age+sex+clutch+zone+(1|nestID),
 data=data, contrasts=list(sex=contr.sum, zon=contr.sum, clutch=contr.sum))

それから私は得る:

singular fit

これはテーブルです:

REML criterion at convergence: 974.3

Scaled residuals: 
 Min       1Q   Median       3Q      Max 
-2.72237 -0.61737  0.06171  0.69429  2.88008 

Random effects:
Groups   Name        Variance     Std.Dev.
nestID (Intercept)      0          0.00   
Residual               363        19.05   
Number of obs: 114, groups:  nido_mod, 46

Fixed effects:
        Estimate      Std. Error  df        t value Pr(>|t|)    
(Intercept) 294.5970    36.8036  109.0000   8.005   1.41e-12 ***
age          -0.2959     3.0418  109.0000  -0.097   0.922685    
clutch1      -0.5242     2.0940  109.0000  -0.250   0.802804    
sex1          2.3167    1.8286 109.0000     1.267   0.207885    
zone1         6.2274     1.7958  109.0000   3.468   0.000752 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
      (Intr) age  clutch1 sex1 
age  -0.999                     
clutch1   0.474 -0.465              
sex1      0.060 -0.054 -0.106       
zone1    -0.057  0.061 -0.022  0.058
convergence code: 0
singular fit

私は特異点の問題について読みましたが、よく理解していれば、特異点は過剰適合に関連しています。これは、いくつかの応答変数で、1つだけの巣を持つネストがあるのに、より多くの巣を持つネストがあるためでしょうか?どうすればこれを解決できますか?何かお勧めですか?

どうもありがとうございます。

3
Iraida

Lmerでは、他の線形モデルと同様に、固定効果の共線性によって特異フィットcouldが発生します。 必要用語を削除してモデルを修正する必要があります。しかし、lmerでは、その(または「境界(特異)適合」警告)は、非常に単純なモデルでもランダム効果分散がゼロに非常に近いと推定され、(非常に緩やかに)データがゼロの開始値から離れて推定します。

正式な答えはどちらの方法でもほぼ同じです。ゼロと推定される項を削除します。そして、少なくともどの用語が問題を引き起こしているのかがわかるまで、それは賢明なままです。しかし、ごくわずかな差異がありそうな場合でも、それをモデルに保持したい場合があります。たとえば、可能性としては小さい分散の間隔を意図的に探しているか、または複数の類似の実験を行っており、すべての分散を一貫して抽出することを好むためです。何が起こっているかがわかっている場合は、関連するテストを使用しないように設定できるlmerControlを使用して、これらの警告を抑制することができます。たとえば、次を含めることができます

control=lmerControl(check.conv.singular = .makeCC(action = "ignore",  tol = 1e-4))

あなたのlmerコールで。これは、デフォルトの許容値(makeCCに必要)のままですが、特異フィットテストを抑制します。 (デフォルトはaction = "warning"で、テストを実行して警告を発行します)。

8
S Ellison

モデルの固定効果のそれぞれに効果があるかどうかに実際に関心がありますか?たとえば、年齢や性別によって変動の一部が説明される場合がありますが、固定効果ではなくランダム効果として含めることができます。ランダムな効果に変更すると(それが合理的である場合)、過剰分散の問題に対処できる場合があります。

特異性の問題についての私の解釈は、確かに正しくない可能性がありますが、モデルの各組み合わせには1つの観測/測定しかありません。したがって、これらの変数すべてを固定効果として含めるのに十分な観測がない場合があります。

0
bicyclerider