如何处理等于1或-1的随机效应相关性?


9

当处理复杂的最大混合模型时(估计给定数据和模型的所有可能随机效应)是完美的(+1或-1)或在某些随机效应之间几乎完美的相关性,这种情况并不罕见。为了讨论的目的,让我们观察以下模型和模型摘要

Model: Y ~ X*Cond + (X*Cond|subj)

# Y = logit variable  
# X = continuous variable  
# Condition = values A and B, dummy coded; the design is repeated 
#             so all participants go through both Conditions  
# subject = random effects for different subjects  

Random effects:
 Groups  Name             Variance Std.Dev. Corr             
 subject (Intercept)      0.85052  0.9222                    
         X                0.08427  0.2903   -1.00            
         CondB            0.54367  0.7373   -0.37  0.37      
         X:CondB          0.14812  0.3849    0.26 -0.26 -0.56
Number of obs: 39401, groups:  subject, 219

Fixed effects:
                 Estimate Std. Error z value Pr(>|z|)    
(Intercept)       2.49686    0.06909   36.14  < 2e-16 ***
X                -1.03854    0.03812  -27.24  < 2e-16 ***
CondB            -0.19707    0.06382   -3.09  0.00202 ** 
X:CondB           0.22809    0.05356    4.26 2.06e-05 ***

这些完美相关背后的假定原因是,我们创建了一个模型,该模型对于我们拥有的数据而言太复杂了。在这些情况下给出的常见建议是(例如Matuschek等人,2017;论文)将过参数化系数固定为0,因为这种退化模型往往会降低功率。如果我们在简化模型中观察到固定效果的显着变化,我们应该接受那个。如果没有变化,那么接受原始的就没有问题。

但是,我们假设我们不仅对RE受控的固定效果(随机效果)感兴趣,而且对RE结构也不感兴趣。在给定的情况下,从理论上讲,假设Intercept和斜率X具有非零的负相关性是合理的。以下是几个问题:

  1. 在这种情况下该怎么办?我们是否应该报告完美的相关性,并说我们的数据不足以估计“真实”相关性?还是应该报告0相关模型?还是我们应该尝试将其他相关性设置为0,以希望“重要”的相关性不再完美?我认为这里没有100%正确的答案,我主要希望听听您的意见。

  2. 如何编写将2种特定随机效应的相关性固定为0而又不影响其他参数之间的相关性的代码?


包nlme可以使您更好地控制随机效果的方差-协方差矩阵。我自己从来没有真正需要此功能,但是如果需要的话,我会重新阅读S和S-PLUS中的混合效果模型(Pinheiro和Bates,2000年)。
罗兰

3
一个激进的选择是规则化模型,即符合贝叶斯模型与随机效应结构有些先验信息(例如,通过blmeMCMCglmmrstanarmbrms...)
奔Bolker

@BenBolker Ben。我不确定这是一个激进的想法,因为拟合非正规模型可能是拟合模型的更激进的方法;)
D_Williams

谢谢大家的出色回答...不幸的是,我已经离线了几天,但我回来了。
User33268

Answers:


13

奇异随机效应协方差矩阵

获得+1或-1的随机效应相关性估计意味着优化算法达到“边界”:相关性不能高于+1或低于-1。即使没有明显的收敛错误或警告,这也可能表明收敛存在一些问题,因为我们不希望真正的相关性位于边界上。如您所说,这通常意味着没有足够的数据来可靠地估计所有参数。Matuschek等。2017年说,在这种情况下,权力可能会受到损害。

达到边界的另一种方法是使方差估计为0:尽管数据有些变化,但为什么我的混合模型中的随机效应的方差为零?

两种情况都可以看作是获得随机效应的简并协方差矩阵(在您的示例中,输出协方差矩阵是 ×)。方差为零或理想相关为零表示协方差矩阵不是完整秩,并且其特征值中的至少一个为零。这一发现立即表明,还有其他更复杂的方法来获取简并协方差矩阵:一个人可以拥有 ×协方差矩阵,而没有任何零或完美的相关性,但是秩不足(奇异)。贝茨等。2015年简约混合模型4 × 44×44×4(未出版的预印本)建议使用主成分分析(PCA)检查获得的协方差矩阵是否为奇数。如果是这样,他们建议以与上述特殊情况相同的方式对待这种情况。

那么该怎么办?

如果没有足够的数据来可靠地估计模型的所有参数,则应考虑简化模型。以示例模型,X*Cond + (X*Cond|subj)有多种可能的方法可以简化它:

  1. 删除随机效应之一,通常是最高阶相关:

    X*Cond + (X+Cond|subj)
  2. 摆脱所有相关参数:

    X*Cond + (X*Cond||subj)

    更新:正如@Henrik所指出的,||语法仅在其左侧的所有变量均为数字的情况下才会删除相关性。如果Cond涉及到分类变量(例如),则应该使用其方便的afex软件包(或繁琐的手动解决方法)。请参阅他的答案以获取更多详细信息。

  3. 通过将术语分解成几个来摆脱一些相关性参数,例如:

    X*Cond + (X+Cond|subj) + (0+X:Cond|subj)
  4. 按照您的建议,以某种特定方式约束协方差矩阵,例如,将一种特定的相关性(到达边界的一种相关性)设置为零。没有内置方法lme4可以实现此目的。请参阅@BenBolker在SO上的答案,以获取有关如何通过一些智能黑客实现此目的的演示。

与您所说的相反,我不认为Matuschek等人。2017年特别推荐#4。Matuschek等人的要旨。2017和Bates等。2015年似乎是从最大模型a la Barr等人开始的。2013,然后降低复杂度,直到协方差矩阵达到满秩为止。(此外,他们通常建议进一步降低复杂性,以增加功能。)更新:相比之下,Barr等人。仅在模型不收敛的情况下才建议降低复杂性;他们愿意容忍奇异的协方差矩阵。请参阅@Henrik的答案。

如果有人同意Bates / Matuschek的观点,那么我认为尝试不同的降低复杂性的方法以找到在“损害最小”的同时发挥作用的方法是很好的。从上面的列表中可以看到,原始协方差矩阵有10个参数。#1具有6个参数,#2具有4个参数,#3具有7个参数。如果不拟合它们,哪个模型将摆脱完美的相关性。

但是,如果您对此参数感兴趣怎么办?

上面的讨论将随机效应协方差矩阵视为令人讨厌的参数。您提出了一个有趣的问题,如果您对必须“放弃”以获得有意义的满级解决方案的相关参数特别感兴趣,该怎么办。

注意,将相关参数固定为零并不一定会产生ranef不相关的BLUP()。实际上,它们甚至可能根本没有受到太大影响(请参阅@Placidia的答案以进行演示)。因此,一种选择是查看BLUP的相关性并进行报告。

另一个可能不那么吸引人的选择是将其subject作为固定效果Y~X*cond*subj,获取每个主题的估计并计算它们之间的相关性。这等效于Y~X*cond为每个主题分别运行单独的回归并从中获取相关估计。


另请参阅Ben Bolker的混合模型FAQ中有关奇异模型的部分

过度拟合的混合模型导致奇异拟合是很常见的。从技术上讲,奇异性意味着与Cholesky因子对角元素相对应的某些参数(零-协方差Cholesky分解)恰好为零,这是可行空间的边缘,或者等效地,方差-协方差矩阵具有零特征值(即正半定值而不是正定值),或者(几乎等效)某些方差估计为零或某些相关性估计为+/- 1。θ


1
我的示例表明,对于(Machine||Worker) lmer估计,方差比对于的方差大(Machine|Worker)。因此lmer,对||因素的作用不能用“这只能消除因素之间的相关性,而不能消除分类因素之间的相关性”来描述。它以某种怪异的方式改变了随机效应的结构(它扩展(Machine||Worker)(1|Worker) + (0+Machine|Worker),因此产生了额外的差异)。随时更改我的编辑。我的主要观点是,在此陈述中,需要明确区分数字协变量和分类协变量。
Henrik

1
不,也不适用于二进制变量,请亲自参阅:machines2 <- subset(Machines, Machine %in% c("A", "B")); summary(lmer(score ~ Machine + (Machine || Worker), data=machines2))。由于这种扩展和R处理因子的方式,它通常不适用于因子model.matrix
亨里克

@amoeba:我认为您提出了一个有趣的观点,建议转向ranef研究随机效应之间相关性的数值。我对这个主题不太了解,但是我知道通常不建议使用的提取值ranef,而应该使用估计的相关性和方差。您对此有何看法?另外,我不知道该如何向审阅者解释该模型中的相关性未被假定,但是我们仍然计算提取值的相关性。那没有道理
User33268 '18

1
@RockyRaccoon是的,我认为最好使用/报告估计的相关参数,但是在这里我们正在谈论的情况是我们可能无法估计它,因为它收敛到1。这就是我在论文中所写的:“整个模型收敛到corr = 1的解,所以根据[引文]中的建议,我们使用了简化的模型[详细信息]。该模型中随机效应BLUP之间的相关性为0.9。” 同样,当您不包括相关性时,就不会约束模型将它们视为不相关!您只是没有明确地对此关联建模
变形虫

我还有一个问题:接近零的方差以及随机效应的完美和接近完美的相关性是否暗示着参数的真实值?例如,-1相关是否暗示真实相关至少为负和/或至少为非零?更具体地,如果我们尝试估计现实中为0的相关性,是否有可能获得-1估计?
User33268 '18

9

我同意变形虫的答复中所说的一切,该答复对当前有关该问题的讨论提供了很好的总结。我将尝试添加一些其他要点,否则请参考我最近的混合模型课程的讲义,其中也总结了这些要点。


通过抑制相关参数(变形虫答案中的选项2和3)||仅适用于数值协变量lmer而不适用于因子。Reinhold Kliegl的代码对此进行了详细讨论。

但是,我的afex软件包提供的功能也可以抑制expand_re = TRUE调用中的 参数mixed()(也请参见function lmer_alt())之间因素之间的相关性。它实质上是通过实施Reinhold Kliegl讨论的方法来实现的(即,将因子转化为数值协变量,并在其上指定随机效应结构)。

一个简单的例子:

library("afex")
data("Machines", package = "MEMSS") # same data as in Kliegl code

# with correlation:
summary(lmer(score ~ Machine + (Machine  | Worker), data=Machines))
# Random effects:
#  Groups   Name        Variance Std.Dev. Corr       
#  Worker   (Intercept) 16.6405  4.0793              
#           MachineB    34.5467  5.8776    0.48      
#           MachineC    13.6150  3.6899   -0.37  0.30
#  Residual              0.9246  0.9616              
# Number of obs: 54, groups:  Worker, 6

## crazy results:
summary(lmer(score ~ Machine + (Machine  || Worker), data=Machines))
# Random effects:
#  Groups   Name        Variance Std.Dev. Corr     
#  Worker   (Intercept)  0.2576  0.5076            
#  Worker.1 MachineA    16.3829  4.0476            
#           MachineB    74.1381  8.6103   0.80     
#           MachineC    19.0099  4.3600   0.62 0.77
#  Residual              0.9246  0.9616            
# Number of obs: 54, groups:  Worker, 6

## as expected:
summary(lmer_alt(score ~ Machine + (Machine  || Worker), data=Machines))
# Random effects:
#  Groups   Name         Variance Std.Dev.
#  Worker   (Intercept)  16.600   4.0743  
#  Worker.1 re1.MachineB 34.684   5.8894  
#  Worker.2 re1.MachineC 13.301   3.6471  
#  Residual               0.926   0.9623  
# Number of obs: 54, groups:  Worker, 6

对于那些不知道的人afex,混合模型的主要功能是为固定效果提供p值,例如:

(m1 <- mixed(score ~ Machine + (Machine  || Worker), data=Machines, expand_re = TRUE))
# Mixed Model Anova Table (Type 3 tests, KR-method)
# 
# Model: score ~ Machine + (Machine || Worker)
# Data: Machines
#    Effect      df        F p.value
# 1 Machine 2, 5.98 20.96 **    .002
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

summary(m1)  
# [...]
# Random effects:
#  Groups   Name         Variance Std.Dev.
#  Worker   (Intercept)  27.4947  5.2435  
#  Worker.1 re1.Machine1  6.6794  2.5845  
#  Worker.2 re1.Machine2 13.8015  3.7150  
#  Residual               0.9265  0.9626  
# Number of obs: 54, groups:  Worker, 6
# [...]

来自Barr等人的Dale Barr。(2013)论文在建议减少随机效应结构方面比在变形虫的答案中更为谨慎。在最近的Twitter交流中,他写道:

  • “减少模型会带来未知的抗保守性风险,如果有的话,应谨慎行事。” 和
  • “我主要担心的是人们了解与模型简化相关的风险,并且要使这种风险最小化需要比通常采用的更为保守的方法(例如,每个斜率均在0.05下测试)。”

因此,建议谨慎。


作为评论者之一,我还可以提供一些有关我们为什么要使用Bates等人的见解(2015)论文尚未发表。我和其他两位审稿人(已签字,但在此仍未提及)对PCA方法提出了一些批评(似乎是无原则的,没有证据表明它在权力方面是优越的)。此外,我相信所有三个人都批评说本文没有集中在如何指定随机效应结构的问题上,而是试图介绍GAMM。因此,贝茨(Bates)等人(2015)论文演变成马图切克(Matuschek)等人。(2017)的论文通过模拟和Baayen等人的论文解决了随机效应结构的问题(2017)介绍GAMM的论文。

我对贝茨等人的完整评论。草稿可以在这里找到。IIRC,其他评论也有类似的要点。


好。然后,我可能会在其中插入一些小的编辑/更新,以阐明您的观点。关于贝茨的预印本,在各个方面可能都不太理想。但是我完全同意贝茨等人的观点。奇异协方差矩阵与+ 1 / -1的相关性完全相同。从数学上讲,没有区别。因此,如果我们接受完美的相关性折衷力量,那么我们必须非常警惕奇异的cov。即使没有明确的模拟显示它也是如此。我不同意它是“无原则的”。
变形虫

@amoeba lmer_alt基本上与lmer(甚至是glmer)完全一样,唯一的区别在于它允许||语法。所以我不确定为什么您会afex不惜一切代价避免。它甚至可以在不附加的情况下工作(即afex::lmer_alt(...))。
Henrik

@amoeba它所做的基本上是Reinhold Kliegl在代码中描述的方法(即扩展随机效果)。对于公式中的每个随机效应项,它都会创建一个模型矩阵(即,将因子转换为数值协变量)。然后cbind将这个model.matrix放入数据中。然后,将公式中的随机效应项替换为新的项,其中每个新创建的列均以+串联。见线690至730 github.com/singmann/afex/blob/master/R/mixed.R
亨里克

关于左边的类别变量||,这是非常重要的一点,感谢您提出并向我解释(我编辑了答案以反映出来)。我喜欢lmer_altin的功能afex。我这里只是为了完整性而提到,通过香草lmer调用获得相同的输出而无需进行任何额外的预处理,例如可以指定(1+dummy(Machine,'B')+dummy(Machine,'C') || Worker)。当分类变量具有多个级别时,这显然变得非常麻烦。
变形虫

2
@amoeba需要注意的是,这种方法dummy()仅适用于默认的处理对比度,而当随机效果使用零和之和时(如果模型具有交互作用,则应使用该方法)不起作用。例如,您可以看到,如果您将上述示例中的方差成分lmer_alt与该mixed调用进行了比较。
Henrik

1

使用最大似然估计时,我也遇到了这个问题-只有我使用通过MLwiN软件实现的Goldstein IGLS算法,而不是R中的LME4。但是,在每种情况下,当我切换到使用相同方法的MCMC估计时,问题都已经解决了软件。我什至有超过3的相关性,当我更改估算值时,相关性已解决。使用IGLS,在估计后将相关性计算为协方差除以相关方差乘积的平方根的乘积-并且这并未考虑每个成分估计中的不确定性。

IGLS软件不会“知道”协方差意味着相关,而只是计算常数,线性,二次等方差函数的估计值。相反,MCMC方法是基于来自多元正态分布的样本的假设而建立的,该样本对应于具有良好属性的方差和协方差,并且具有充分的误差传播,因此在方差的估计中要考虑协方差估计中的不确定性。反之亦然。

MLwin是具有IGLS估计的MCMC估计链和非负定方差协方差矩阵,可能需要通过在开始采样之前将协方差从一开始就更改为零来进行更改。

有关工作示例,请参见

使用MLwiN 3第1卷(2017年9月更新)开发用于分析上下文,异质性和变更的多级模型; 第2卷也在RGate上

https://www.researchgate.net/publication/320197425_Vol1Training_manualRevisedSept2017

第10章的附录

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.