我正在尝试建立广义线性混合模型,毕竟返回一条消息后,我的theta数不正确。
我正在尝试运行广义线性混合模型,而我的变量是:
fr fc ed np nnd ID_site RN_total_effort
4 15 34 0.006209597 13 748.4804 13 1344
9 13 81 0.004367510 3 306.6037 22 680
10 10 80 0.006039674 3 106.2123 25 680
11 15 50 0.011958544 13 792.4102 31 680
12 12 36 0.008262562 13 867.6111 35 680
13 16 75 0.006942968 4 686.7576 36 680
fr
是我的答案,而{fc
,ed
,np
和nnd
)是我的解释变量。我正在使用GLMER,ID_site
是我的随机因素。另外,我的研究工作RN_total_effort
有所不同,因此我使用偏移量来考虑模型。这是我的代码。
m1_mist<-glmer(fr~fc+nnd+ed+np+(1|ID_site), offset(mist$RN_total_effort), family= poisson, data=mist)
运行后显示以下消息:
Error in glmer(fr ~ fc + nnd + ed + np + (1 | ID_site), offset(mist$RN_total_effort), :
'control' is not a list; use glmerControl()
我用这个:
m1_mist<-glmer(fr~fc+nnd+ed+np+(1|ID_site), offset(mist$RN_total_effort), family= poisson, data=mist, control=glmerControl(optimizer="nloptwrap", optCtrl=list(maxfun=100000)))
并返回此:
Error in getStart(start, lower = rho$lower, pred = rho$pp, "theta") :
incorrect number of theta components (!=1)
Além disso: Warning message:
Some predictor variables are on very different scales: consider rescaling
我重新缩放了变量(ed
和nnd
)并再次运行:
m1_mist<-glmer(fr~fc+nndr+edr+np+(1|ID_site), offset(mist$RN_total_effort), family= poisson, data=mist, control=glmerControl(optimizer="nloptwrap", optCtrl=list(maxfun=100000)))
并立即显示此消息:
Error in getStart(start, lower = rho$lower, pred = rho$pp, "theta") :
incorrect number of theta components (!=1)
怎么了?
答案 0 :(得分:0)
出现错误消息是因为offset变量是作为位置参数而不是命名参数提供的。在示例中,它是位于control=
还是start=
参数的位置。
为避免此类错误,只需在提供参数的同时显式使用名称即可,即
glmer(..., offset = mist$RN_total_effort)
。
或者,您可以将偏移量作为
包括在公式中 fr ~ fc+nndr+edr+np+(1|ID_site) + offset(RN_total_effort)
。