将随机项添加到 glmer 混合效应模型中;错误信息:收敛失败
Adding random term into glmer mixed-effect model; error message: failure to converge
我正在分析一项实验的数据,该实验会及时复制,我在实验中测量了土壤表面的植物出苗率。我有 3 个实验性 运行,用术语 trialnum
表示,并且想将 trialnum
作为随机效应包括在内。
以下是所涉及变量的摘要:
data.frame: 768 obs. of 9 variables:
$ trialnum : Factor w/ 2 levels "2","3": 1 1 1 1 1 1 1 1 1 1 ...
$ Flood : Factor w/ 4 levels "0","5","10","15": 2 2 2 2 2 2 1 1 1 1 ...
$ Burial : Factor w/ 4 levels "1.3","2.5","5",..: 3 3 3 3 3 3 4 4 4 4 ...
$ biotype : Factor w/ 6 levels "0","1","2","3",..: 1 2 3 4 5 6 1 2 3 4 ...
$ soil : int 0 0 0 0 0 0 0 0 0 0 ...
$ n : num 15 15 15 15 15 15 15 15 15 15 ...
其中trialnum
是实验运行,Flood
,Burial
,biotype
是input/independent变量,soil
是 response/dependent 变量。
我之前用所有输入变量创建了这个模型:
glmfitALL <-glm(cbind(soil,n)~trialnum*Flood*Burial*biotype,family = binomial(logit),total)`
我从这个模型中发现 运行ning
anova(glmfitALL, test = "Chisq")
trialnum
意义重大。有 3 个实验性的 运行s,我在分析中只包括其中的 2 个。有人建议我将 trialnum
作为随机效应合并,这样我就不必单独报告实验性 运行。
为此,我创建了以下模型:
glmerfitALL <-glmer(cbind(soil,n)~Flood*Burial*biotype + (1|trialnum),
data = total,
family = binomial(logit),
control = glmerControl(optimizer = "bobyqa"))
由此我得到以下错误信息:
maxfun < 10 * length(par)^2 is not recommended. Unable to evaluate scaled gradientModel failed to converge: degenerate Hessian with 9 negative eigenvalues
我已经 运行 以多种方式尝试使用此模型,包括:
glmerfitALL <-glmer(cbind(soil,n)~Flood*Burial*biotype*(1|trialnum),
data = total,
family = binomial(logit),
control = glmerControl(optimizer = "bobyqa"))
以及合并 REML=FALSE
并使用 optimx
代替 bobyqa
,但所有重复都会导致类似的错误消息。
因为这是一个 "eigenvalue" 错误,这是否意味着我的源 file/original 数据有问题?
我还发现了以前关于 lmer4
错误消息的话题(抱歉我没有保存 link),并且看到一些评论提出了缺少副本的问题随机效应。因为我只有 2 个重复 trialnum2
和 trialnum3
,我是否可以 运行 trialnum
作为随机效应?
关于特征值,主要推荐centring and/or scaling predictors。
关于 RE 组,大约 five are an approximate minimum。
我正在分析一项实验的数据,该实验会及时复制,我在实验中测量了土壤表面的植物出苗率。我有 3 个实验性 运行,用术语 trialnum
表示,并且想将 trialnum
作为随机效应包括在内。
以下是所涉及变量的摘要:
data.frame: 768 obs. of 9 variables:
$ trialnum : Factor w/ 2 levels "2","3": 1 1 1 1 1 1 1 1 1 1 ...
$ Flood : Factor w/ 4 levels "0","5","10","15": 2 2 2 2 2 2 1 1 1 1 ...
$ Burial : Factor w/ 4 levels "1.3","2.5","5",..: 3 3 3 3 3 3 4 4 4 4 ...
$ biotype : Factor w/ 6 levels "0","1","2","3",..: 1 2 3 4 5 6 1 2 3 4 ...
$ soil : int 0 0 0 0 0 0 0 0 0 0 ...
$ n : num 15 15 15 15 15 15 15 15 15 15 ...
其中trialnum
是实验运行,Flood
,Burial
,biotype
是input/independent变量,soil
是 response/dependent 变量。
我之前用所有输入变量创建了这个模型:
glmfitALL <-glm(cbind(soil,n)~trialnum*Flood*Burial*biotype,family = binomial(logit),total)`
我从这个模型中发现 运行ning
anova(glmfitALL, test = "Chisq")
trialnum
意义重大。有 3 个实验性的 运行s,我在分析中只包括其中的 2 个。有人建议我将 trialnum
作为随机效应合并,这样我就不必单独报告实验性 运行。
为此,我创建了以下模型:
glmerfitALL <-glmer(cbind(soil,n)~Flood*Burial*biotype + (1|trialnum),
data = total,
family = binomial(logit),
control = glmerControl(optimizer = "bobyqa"))
由此我得到以下错误信息:
maxfun < 10 * length(par)^2 is not recommended. Unable to evaluate scaled gradientModel failed to converge: degenerate Hessian with 9 negative eigenvalues
我已经 运行 以多种方式尝试使用此模型,包括:
glmerfitALL <-glmer(cbind(soil,n)~Flood*Burial*biotype*(1|trialnum),
data = total,
family = binomial(logit),
control = glmerControl(optimizer = "bobyqa"))
以及合并 REML=FALSE
并使用 optimx
代替 bobyqa
,但所有重复都会导致类似的错误消息。
因为这是一个 "eigenvalue" 错误,这是否意味着我的源 file/original 数据有问题?
我还发现了以前关于
lmer4
错误消息的话题(抱歉我没有保存 link),并且看到一些评论提出了缺少副本的问题随机效应。因为我只有 2 个重复trialnum2
和trialnum3
,我是否可以 运行trialnum
作为随机效应?
关于特征值,主要推荐centring and/or scaling predictors。
关于 RE 组,大约 five are an approximate minimum。