我正在研究2个固定变量和1个随机变量的相互作用。年份有19个级别并且是数字,海滩是一个因素并且有4个级别,方法是一个因素并且有3个级别。 我对以下错误消息感到困惑。 NS1是我的巢成功,它由鸡蛋总数加权。
fit10<-glmer(NS1~0+beach+method+(1|year)+(1+beach*method|year),data=new1,weights=egg_total,family=binomial())
警告讯息:
1:在eval(expr,envir,enclos)中:非整数#successes in a 二项式glm!
2:在commonArgs(par,fn,control,environment())中:maxfun&lt; 10 * 长度(par)^ 2不推荐。
3:在optwrap中(优化器,devfun,start,rho $ lower,control = control, :来自bobyqa的汇聚代码1:bobyqa - 最大数量 功能评估超出
4:In(函数(fn,par,lower = rep.int(-Inf,n),upper = rep.int(Inf,:未能在10000次评估中收敛
5:在checkConv(attr(opt,“derivs”)中,选择$ par,ctrl = control $ checkConv,:无法评估缩放渐变
6:在checkConv(attr(opt,“derivs”)中,选择$ par,ctrl = control $ checkConv,:模型未能收敛:退化Hessian 具有17个负特征值
编辑: 我已将代码更改为:
fit10<-glmer(NS1~0+beach+method+(1|year)+(1|beach/year)+ (1+method|year),data=new1,weights=crawls,family=binomial(),control=glmerControl(optimizer = "Nelder_Mead",optCtrl=list(maxfun=100000)))
它只给了我这个警告信息:
Warning message:
In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!
A sample of my data looks like this:
year beach method FC.. NS NS1 egg_total crawls
1 1997 Hillsboro HTL only 7 12.500000 0.12500000 0 8
2 1997 Hillsboro HTL only 4 33.333333 0.33333333 99 6
3 1997 Hillsboro HTL only 3 57.142857 0.57142857 0 7
4 1997 Hillsboro HTL only 2 33.333333 0.33333333 0 3
5 1997 Hillsboro HTL only 0 100.000000 1.00000000 104 2
6 1997 Hillsboro HTL only 0 100.000000 1.00000000 0 2
7 1997 Hillsboro HTL only 0 100.000000 1.00000000 190 4
8 1997 Hillsboro HTL only 1 66.666667 0.66666667 0 3
9 1997 Hillsboro HTL only 0 100.000000 1.00000000 114 1
10 1997 P/FTL HTL only 0 100.000000 1.00000000 0 1
11 1997 P/FTL no clean 0 100.000000 1.00000000 140 1
12 1997 P/FTL no clean 3 40.000000 0.40000000 277 5
13 1997 P/FTL HTL and SB 0 100.000000 1.00000000 0 1
14 1997 JUL no clean 0 100.000000 1.00000000 153 2
15 1997 JUL no clean 0 100.000000 1.00000000 113 2
16 1997 JUL no clean 0 100.000000 1.00000000 0 1
NS1很简单NS / 100
这在excel
中总共有866行答案 0 :(得分:1)
在此重复模型以供参考。
fit10<- glmer(NS1~0+beach+method+(1|year)+
(1+beach*method|year),
data=new1,
weights=egg_total,family=binomial())
(1+beach*method|year)
一词似乎很乐观;这是估计beach
和method
之间的相互作用的年际变化,其表示12x12方差 - 协方差矩阵(= n *(n + 1)/ 2 = 78个参数)。除非你有至少1000个观测值,否则你可能不应该尝试这个。此外,(1|year)
(拦截变化)和(1+beach*method|year)
项是多余的,因为后者估计拦截,海滩效应,方法效果,和它们之间的相互作用的年际变化...尝试(1|beach/year) + (1+method|year)
适合拦截海滩,年,海滩之间的变化,年度相互作用以及年间方法效应的变化可能更为现实 - 总共1 + 1 +(3 * 4/2) )= 8个方差 - 协方差参数,根据您的数据,这些参数可能仍然太多。
1:在eval(expr,envir,enclos)中:二项式glm中的非整数#successes!
要弄清楚这里发生了什么,正如上面的@aosmith评论,y <- NS1*egg_total
必须接近整数(请参阅binomial()$initialize
进行测试,(any(abs(y - round(y)) > 0.001))
如果NS1
应该是一部分存活的蛋,那么除非你在某处犯了某种错字/舍入错误,否则这应该有效。
这是你想要弄清楚的,以确保模型真正有意义;它也可能lme4 will behave badly with non-integer response variables for a distribution that's supposed to be integral。
2:在commonArgs(par,fn,control,environment())中:maxfun&lt;不推荐10 *长度(标准杆)^ 2。
当你的模型有很多参数时会发生这种情况。您可以使用maxfun
增加control=glmerControl(optCtrl=list(maxfun=1e6))
,但使用真正的
3:在optwrap中(优化器,devfun,start,rho $ lower,control = control,:来自bobyqa的收敛代码1:bobyqa - 超出最大功能评估数
这意味着该功能没有完成优化(参见上一条评论)
4:In(函数(fn,par,lower = rep.int(-Inf,n),upper = rep.int(Inf,:未能收敛于10000次评估
同上。
5:在checkConv(attr(选择,&#34;衍生品&#34;)中,选择$ par,ctrl = control $ checkConv,:无法评估缩放的渐变
6:在checkConv(attr(opt,&#34; derivs&#34;)中,选择$ par,ctrl = control $ checkConv,:模型未能收敛:使用17个负特征值退化Hessian
在你的模特最低限度地工作之前,不值得担心这些。
答案 1 :(得分:0)
遗漏的水平是您的参考水平。模型摘要中显示级别的每个参数都应从参考级别中添加/减去(未列出的一个)。参考水平是在拦截项中估计的参数。