首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理线性混合模型(lme4)中的奇异拟合?

如何处理线性混合模型(lme4)中的奇异拟合?
EN

Stack Overflow用户
提问于 2019-02-09 01:28:31
回答 2查看 21.4K关注 0票数 7

我正在运行几个线性混合模型,用于一个关于鸟类的研究,并将变量巢作为随机变量。问题是,在其中一些模型中,我得到了所谓的“奇异拟合”:我的嵌套随机变量的方差和st误差为0.00。

一些背景知识:我正在与野生鸟类合作,以了解生活在嘈杂环境中对一些氧化应激参数的影响。为此,我们为每个巢中的每个雏鸟采集了血液样本,以进行实验室工作。由于血液样本的限制,一些氧化应激参数不能测量到每个雏鸟。

代码语言:javascript
复制
model <- lmer(antioxidant_capacity~age+sex+clutch+zone+(1|nestID),
 data=data, contrasts=list(sex=contr.sum, zon=contr.sum, clutch=contr.sum))

然后我得到:

代码语言:javascript
复制
singular fit

下表:

代码语言:javascript
复制
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

我读过关于奇点问题的文章,如果我理解得很好,奇点与过拟合有关。这是不是因为对于一些响应变量,我只有一个巢,而有更多的巢呢?我该如何解决这个问题呢?有什么建议吗?

谢谢你,太感谢了。

EN

回答 2

Stack Overflow用户

发布于 2019-03-27 06:37:42

在lmer中,固定效果中的共线性可能会导致奇异拟合,就像在任何其他线性模型中一样。这将需要您通过删除术语来修改模型。但在lmer中,当随机效应方差估计非常接近于零,并且(非常松散地说)数据没有足够的信息来将估计从零开始值拖走时,也可以在相当简单的模型中触发(或“边界(奇异)拟合”警告)。

无论哪种方式,形式上的答案都大体相似;去掉那些估计为零的术语。这仍然是明智的,至少在你知道哪个术语引起问题之前是这样。但有时,可以忽略的方差是合理的,但您希望将其保留在模型中;例如,因为您非常有意地在可能很小的方差上寻找区间,或者可能进行多个类似的实验,并且更愿意一致地提取所有的方差。如果您确定发生了什么,您可以通过lmerControl抑制这些警告,可以将其设置为不使用相关测试。例如,您可以包含

代码语言:javascript
复制
control=lmerControl(check.conv.singular = .makeCC(action = "ignore",  tol = 1e-4))

在你的电话里。这将保留默认公差(这是makeCC需要的),但会抑制单一拟合测试。(缺省值是action="warning",它运行测试并发出警告)。

票数 17
EN

Stack Overflow用户

发布于 2019-02-22 03:05:50

你真的对模型中的每个固定效果是否都有影响感兴趣吗?例如,年龄或性别可能会解释一些变化,但也许你可以将其作为随机效应而不是固定效应包括在内。将其更改为随机效果(如果这是合理的)可能会解决过度分散问题。

我对奇点问题的解释是,你的模型的每个组合只有一个观察/测量,这肯定是不正确的。因此,您可能没有足够的观察结果来包含所有这些变量作为固定效果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54597496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档