假设我们有一个模型
mod <- Y ~ X*Condition + (X*Condition|subject)
# 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
summary(model)
Random effects:
Groups Name Variance Std.Dev. Corr
subject (Intercept) 0.85052 0.9222
X 0.08427 0.2903 -1.00
ConditionB 0.54367 0.7373 -0.37 0.37
X:ConditionB 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 ***
ConditionB -0.19707 0.06382 -3.09 0.00202 **
X:ConditionB 0.22809 0.05356 4.26 2.06e-05 ***
在这里我们观察到奇异拟合,因为拦截和x随机效应之间的相关性是-1。现在,根据此有用的链接,处理此模型的一种方法是删除高阶随机效应(例如X:ConditionB),并查看在测试奇异性时是否有所不同。另一种是使用贝叶斯方法,例如使用blme
包以避免奇异性。
什么是首选方法,为什么?
我之所以这样问是因为使用第一个或第二个会导致不同的结果-在第一种情况下,我将删除X:ConditionB随机效应,并且无法估计X和X:ConditionB随机效应之间的相关性。另一方面,使用blme
允许我保留X:ConditionB并估计给定的相关性。当我可以用贝叶斯方法估计所有事物时,我认为没有理由为什么我甚至应该使用非贝叶斯估计并消除出现奇异拟合时的随机效应。
有人可以使用这两种方法处理奇异拟合时给我解释的好处和问题吗?
谢谢。