【发布时间】:2022-01-04 09:41:39
【问题描述】:
我运行一个模拟,其中我有一个类似的循环
simulate_study <- function(params){
pats <- simulate_pats(params) # a function that simulate the pats data frame
model <- lmer(SFD ~ group*month + (1 + month|id), data=pats, REML=TRUE)
reject <- as.numeric(confint(model, method="Wald")[8, 1] > 0)
return(reject)
}
res <- sapply(1:1000, FUN=simulate_study, params=some_values)
有时模型不收敛,我收到以下错误消息:
Error in eigen(Sigma, symmetric = TRUE) :
infinite or missing values in 'x'
In addition: Warning message:
In Ops.factor(sd, 2) :
Error in eigen(Sigma, symmetric = TRUE) :
infinite or missing values in 'x'
我不关心错误。我希望循环继续运行,但错误会停止整个循环。 我试图将这样的东西插入到函数中
if(is.null(summary(model)$optinfo$message) == FALSE) {return(NA)}
但为时已晚。
我将不胜感激。
【问题讨论】:
-
见
try函数。此外,错误与无限或缺失值有关,与收敛无关。 -
如果这是一个可以在
lmer中更好地处理的边缘情况,有一个可重现的示例(使用set.seed()并在你拥有some_values的地方填写一些真实的东西)会很有帮助。
标签: r lme4 convergence