2

通常我的混合模型包含几个具有很多唯一级别的分类变量,因此X矩阵非常稀疏。
我使用glmmTMB处理XZ矩阵作为稀疏的包。这显着减少了拟合模型期间的 RAM 使用量。
这个glmmTMB包很棒,但对我来说有一个问题(也许我遗漏了一些东西):
当我使用数值变量分类变量(如 FE)之间的交互时,模型拟合没有错误。 例如,这个模型效果很好:

fit = glmmTMB(Y ~ 0 + num1:factor1 + num2:factor1 + factor2 + 
(0 + num3|subject) + (0 + num4|subject) + (1|subject), 
model_data, REML = TRUE, sparseX=c(cond=TRUE))

但是当我使用两个分类变量之间的任何交互时,即公式如下所示:

fit = glmmTMB(Y ~ 0 + num1:factor1 + factor3:factor1 + factor2 + 
(0 + num2|subject) + (0 + num3|subject) + (1|subject), 
model_data, REML = TRUE, sparseX=c(cond=TRUE)),

我收到以下错误:

iter: 5  Error in newton(par = c(beta = 1, beta = 1, beta = 1, beta = 1, beta = 1,  : 
  Newton failed to find minimum.
In addition: Warning message:
In (function (start, objective, gradient = NULL, hessian = NULL,  :
  NA/NaN function evaluation
outer mgc:  NaN 
Error in (function (start, objective, gradient = NULL, hessian = NULL,  : 
  gradient function must return a numeric vector of length 4

同时,在混合模型理论中,两个分类变量之间的相互作用是有效的。
此外,这种模型(具有两个因素之间的相互作用)成功地安装了Julia MixedModels包。

请您帮助我了解此错误的根源吗?
有没有办法在两个分类变量之间相互作用的模型中避免它?
为什么这样的模型适用于Julia MixedModels而不适用于glmmTMB

4

0 回答 0