1

我正在使用glmultiglmer 的包装器(二项式),它summary是:

This is glmulti 1.0.7, Apr. 2013. Length Class Mode 0 NULL NULL

按照在这个线程上所做的事情,虽然这是 for lmerglmulti 在使用带有 lme4 的遗传算法时无限期运行,我得到与上面相同的结果。难道是因为版本已经改变并且包装必须以不同的方式进行?以下是虚拟代码(从上面的链接中提取):

x = as.factor(round(runif(30),1))# dummy grouping factor
yind = runif(30,0,10) # mock dependent variable
a = runif(30) # dummy covariate
b = runif(30) # another dummy covariate
c = runif(30) # an another one
d = runif(30)

tmpdata <- data.frame(x=x,yind=yind,a=a,b=b,c=c,d=d)

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

summary(glmulti(formula = yind~a*b*c*d,
                data = tmpdata,
                random = '+(1|x)',
                level = 2,
                method = 'h',
                crit = 'aicc',
                marginality = TRUE,
                fitfunc = lmer.glmulti))

lme4版本:1.1.5

glmulti版本:1.0.7

《R 版本 3.0.2 (2013-09-25)》

解决方案

这有效:

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

glmulti(y = yind~a*b*c*d,
data = tmpdata,
random = '+(1|x)',
level = 2,
method = 'h',
crit = 'aicc',
marginality = TRUE,
fitfunc = lmer.glmulti)

packageVersion('lme4') '1.1.5'</p>

packageVersion('glmulti') '1.0.7'</p>

版本:3.1.0

仅供参考:来自包维护者:

“fitfunc 必须是函数的名称,因此您的其他调用(包括 glmulti 调用中的函数定义)无法正常工作。”

“你将 glmulti 的第一个参数命名为‘公式’,它必须是未命名的或‘y’……对不起。但是 y 是一个公式(如果传递一个字符串,它只是因变量)。”

4

0 回答 0