我在nlme包中运行线性混合模型。
control <- lmeControl(maxIter=100,opt = c("optim"))
lme(response ~ 0+factorA+covariate,random=~1|factorB,
weights=varIdent(form= ~1|factorA),control=control),
并且,如下所示出现错误。
Error in logLik.reStruct(object, conLin) :NA/NaN/Inf in foreign function call (arg 3)
是否与收敛误差相同?或其他人?
由于
答案 0 :(得分:0)
这不是一个很好的答案,但在评论中格式化会很糟糕。 (如果问题得到解决,将在以后删除或编辑。)
到目前为止,我无法复制。这是一个可重复的例子:set.seed(101)
d <- data.frame(covariate=runif(500),response=rnorm(500),
factorA=factor(sample(1:5,size=500,replace=TRUE)),
factorB=factor(sample(1:5,size=500,replace=TRUE)))
library("nlme")
control <- lmeControl(maxIter=100,opt = c("optim"))
m1 <- lme(response ~ 0+factorA+covariate,random=~1|factorB,
weights=varIdent(form= ~1|factorA),control=control,
data=d)
由于这种方法有效,因此很难走得更远。
最好是provide a reproducible example。除此之外,您可以通过设置options(error=recover)
或debug(nlme:::logLik.reStruct)
来调试/帮助调试。进入浏览器后,您可以尝试
ls()
str(object)
str(conLin)
dput(object)
dput(conLin)
并提供适当的结果。