将混合模型(主题为随机效应)与简单线性模型(主题为固定效应)进行比较

机器算法验证 r 回归 假设检验 混合模式 lme4-nlme
2022-03-22 19:09:06

我正在完成对大量数据的一些分析。我想采用工作第一部分中使用的线性模型,并使用线性混合模型 (LME) 重新拟合它。LME 将非常相似,只是模型中使用的变量之一将用作随机效应。该数据来自一小组受试者(~10)的许多观察结果(> 1000),我知道将受试者的效果建模为随机效果更好(这是我想要改变的变量)。R 代码如下所示:

my_modelB <- lm(formula = A ~ B + C + D)    
lme_model <- lme(fixed=A ~ B + C, random=~1|D, data=my_data, method='REML')

一切运行良好,结果非常相似。如果我可以使用 RLRsim 或 AIC/BIC 之类的东西来比较这两个模型并决定哪个最合适,那就太好了。我的同事不想报告 LME,因为没有一种容易获得的方法来选择哪个“更好”,即使我认为 LME 是更合适的模型。有什么建议么?

2个回答

这是为了添加到@ocram 的答案,因为作为评论发布太长了。我会将A ~ B + C其视为您的空模型,以便您可以在嵌套模型设置中评估D级随机截距的统计显着性。正如 ocram 所指出的,当时违反正则条件,并且似然比检验统计量(LRT)不一定是渐近分布的我教的解决方案是以参数方式引导 LRT(其引导分布可能不是)并计算如下引导 p 值:H0:σ2=0χ2χ2

library(lme4)
my_modelB <- lm(formula = A ~ B + C)
lme_model <- lmer(y ~ B + C + (1|D), data=my_data, REML=F)
lrt.observed <- as.numeric(2*(logLik(lme_model) - logLik(my_modelB)))
nsim <- 999
lrt.sim <- numeric(nsim)
for (i in 1:nsim) {
    y <- unlist(simulate(mymodlB))
    nullmod <- lm(y ~ B + C)
    altmod <- lmer(y ~ B + C + (1|D), data=my_data, REML=F)
    lrt.sim[i] <- as.numeric(2*(logLik(altmod) - logLik(nullmod)))
}
mean(lrt.sim > lrt.observed) #pvalue

自举 LRT 比观察到的 LRT 更极端的比例是 p 值。

当您使用 lme 功能时,我不完全确定适合哪种型号。(我猜随机效应应该遵循零均值的正态分布?)。但是,当随机效应的方差为零时,线性模型是混合模型的一种特殊情况。尽管存在一些技术难题(因为0在方差的参数空间的边界)应该可以测试H0:variance=0对比H1:variance>0...

编辑

为了避免混淆:上面提到的检验有时用来判断随机效应是否显着……而不是决定是否应该将其转化为固定效应。