我有一个大型的面板数据集,有大约2000个人和~ 15000个观测(人/年)。我有一组时变和非时变变量和二进制结果变量(0/1)。我试着用"lme4“软件包使用glmer进行多层次的离散生存分析。
id =个人ID,survtime =事件/审查前存活期的#
我无法用如此大的数据集生成一个可重复的示例,但是下面是我的代码,
Modelsurv <- glmer(formula = outcome ~ survtime + var1(discrete-timevarying) + var2(discrete-timevarying) + var3(dummy-non timevarying) + var4(4 level categorical-non timevarying)+ (1|id),
family = binomial(cloglog),
data = dataset,
control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 2e5)))我正在尝试复制这个这里的例子。见第8点(多级离散时间生存分析)。我不明白control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e5代码在做什么,在我的例子中,对于这么大的数据,如何以及如何设置它?
我尝试使用上面的代码,但得到了以下消息错误。
unable to evaluate scaled gradient
Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model failed to converge: degenerate Hessian with 1 negative eigenvalues有人能帮我理解和指导我吗?我是否必须根据我添加到模型中的变量的数量和种类来进行迭代呢?
谢谢!
发布于 2022-03-15 14:37:06
就迭代而言..。链接的文件说:
您通常可以忽略控制参数。这里使用它来增加最大迭代。
至于警告(不是错误!)去:警告是告诉你,适合是数字怀疑(这并不意味着它是错误的,只是你应该检查一些东西!)。来自?convergence
使用“allFit”尝试使用所有可用的优化器(例如,从‘optim’、‘nlminb’、.的几个不同的BOBYQA和Nelder、allFit B的实现。当然,对于大批量情况,这将是缓慢的,但我们认为它是金本位;如果所有优化器都收敛到实际等效的值,那么我们将认为收敛警告为假阳性。
https://stackoverflow.com/questions/71481850
复制相似问题