1

我在对具有权重的数据执行线性混合模型 (LMM) 时遇到了困难(我的意思是不同组的权重不同)。此外,似乎在使用 glmulti() 时没有保留权重。下面是一个可重现的例子:

require(lme4)
require (glmulti)    
data(cake)
cake$wght <- as.numeric(cake$replicate)
fm1 <- lmer(angle ~ recipe + temperature + (1|replicate), cake, REML= FALSE)
print(VarCorr(fm1),comp=c("Variance","Std.Dev."))

在这种情况下,随机效应的残余方差等于 22.36。

fm2 <- lmer(angle ~ recipe + temperature + (1|replicate), cake, weights=wght,REML= FALSE)
print(VarCorr(fm2),comp=c("Variance","Std.Dev."))

在这里,随机效应的残余方差现在是 155。对于线性模型,无论权重如何,残余方差都保持不变,而这里的情况似乎并非如此。

第二个问题发生在使用加权数据执行模型平均时。在以下示例中,glmulti() 似乎没有考虑指定的权重:

wlmer.glmulti <- function (formula, data, random = "", weights ,...) {
lmer(paste(deparse(formula), random), data = data, weights)}
#(watch out doesn't converge!!)
LMM <- glmulti(angle ~ recipe + temperature  , data=cake,  random="+ (1|replicate)", fitfunc =      wlmer.glmulti, weights=cake$wght,report=T, level = 1,crit="aic",method="g")
summary(LMM@objects[[1]])  # is similar to fm1

任何建议都是最受欢迎的。谢谢

4

1 回答 1

1

对我上面自己的帖子的简短回答。

1/ 处理线性混合模型中的权重:

为了避免 RE 的剩余方差因权重而大幅膨胀,一次可以“简单地”确保所有权重之和等于 1。

2/ 将权重整合到模型平均过程中(glmulti)

将砝码直接插入包装纸中(感谢文森特 Calcagno 的提示)。从前面的例子:

wlmer.glmulti <- function (formula, data, random = "", weights ,...) {
lmer(paste(deparse(formula), random), data = data, weights)}

更新的工作替代方案

wlmer.glmulti <- function (formula, data, random = "", weights ,...) {
lmer(paste(deparse(formula), random), data = data, data$wght)}

希望这在某些时候会有用;)

于 2014-11-26T03:08:44.767 回答