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

10
我正在进行一项关于鸟类的研究,使用变量“巢穴”作为随机变量运行多个线性混合模型。但是,在某些模型中,我遇到了所谓的“奇异拟合”:我的巢穴随机变量的方差和标准误差均为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

我了解到奇异问题与过度拟合有关。这可能是因为我有一些响应变量只有一个巢而其他巢则有更多的幼鸟。如何解决这个问题?是否有任何建议?感谢你的帮助。
2个回答

26
在lmer中,奇异拟合可能由固定效应中的共线性引起,就像在任何其他线性模型中一样。这需要你通过删除术语来修改模型。 但是,在lmer中,当随机效应方差非常接近零并且数据不足以使估计值远离零起始值时(非常松散时),也可以在相当简单的模型中触发此类警告或"边界(奇异)拟合"。
无论哪种情况,正式答案大致相同; 删除估计为零的项。至少在知道哪个术语导致问题之前,这仍然是明智的。但是,有时可能会出现可忽略的方差,但您希望将其保留在模型中;例如,因为您有意寻找可能很小的方差区间或者可能进行多个相似的实验,并希望一致提取所有方差。如果您确定正在发生什么,可以通过lmerControl抑制这些警告,该控件可设置为不使用相关测试。例如,您可以包括:
control=lmerControl(check.conv.singular = .makeCC(action = "ignore",  tol = 1e-4))

在你的lmer调用中。这将保留默认容差(makeCC需要),但抑制奇异拟合测试。(默认操作是"warning",运行测试并发出警告)。


5
我有类似的问题——随机效应方差估计接近于零,导致出现奇异拟合警告。我的随机效应专门用来控制同一人的某些数据点之间的非独立性,即“Individual_ID”是我的随机效应。如果我从模型中删除这个随机效应,这不是伪重复吗?尽管估计值接近于零,这是否足以让我将随机效应保留在模型中? - Roasty247
3
只是一点直觉,并不一定是最终答案。@Roasty247,如果方差项估计接近于零,这或多或少告诉我们可以忽略依赖结构。在像你这样的情况下说出这样的话很可怕,因为你知道有一个特定的依赖结构。但是接近于零的估计实际上告诉您数字实际上并没有以那种方式显示依赖性,并且对于手头的数据,可以忽略它。 - creutzml

0

您是否真正关心您模型中每个固定效应是否有影响?例如,年龄或性别可能可以解释一些变异,但也许您可以将其作为随机效应包含在内,而不是作为固定效应。如果合理的话,将其更改为随机效应可能可以解决过度离散问题。

我对奇异性问题的解释是,您的模型的每个组合仅具有一个观察/测量值。因此,您可能没有足够的观察值来将所有这些变量作为固定效应包含在内。


那(第二段)是lmer(以及更简单的线性模型)出现奇异性警告的一个原因,但lmer还会在其他接近零方差的情况下发出警告。最简单的例子是嵌套实验,其中有大量组和观察值,但其中一个分组因素具有估计为零的方差。 - S Ellison

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接