错误的theta组件数量(!1)

时间:2019-07-17 17:25:31

标签: python mixed-models

我正在尝试建立广义线性混合模型,毕竟返回一条消息后,我的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是我的答案,而{fcednpnnd)是我的解释变量。我正在使用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 

我重新缩放了变量(ednnd)并再次运行:

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)

怎么了?

1 个答案:

答案 0 :(得分:0)

出现错误消息是因为offset变量是作为位置参数而不是命名参数提供的。在示例中,它是位于control=还是start=参数的位置。 为避免此类错误,只需在提供参数的同时显式使用名称即可,即

glmer(..., offset = mist$RN_total_effort)

或者,您可以将偏移量作为

包括在公式中

fr ~ fc+nndr+edr+np+(1|ID_site) + offset(RN_total_effort)