使用lme4的glmer拟合log时间偏移项时遇PIRLS错误求助
问题:glmer添加对数偏移项时出现PIRLS迭代失败错误
错误信息
Error: (maxstephalfit) PIRLS step-halvings failed to reduce deviance in pwrssUpdate
核心模型代码
direct <- fixef(glmer(lmdth ~ sex + gf + agec10 + ht + smk + diab + pvd + offpump + statin + gsum + agsum + LAD + seq + (1|trial), offset = log(lmdthdays), data = sampledata, family = binomial(link="logit")))[2]
已尝试的排查手段
- 移除所有协变量,仅保留偏移项和随机效应,错误依然存在
- 使用
allFit()尝试lme4支持的所有优化器,无效 - 将偏移项写入公式内(如
lmdth ~ ... + offset(log(lmdthdays))),无效 - 设置
nAGQ=20增加自适应高斯求积次数,无效 - 手动指定
NLOPT_LN_NELDERMEAD优化器,无效 - 单独将
log(lmdthdays)作为协变量、或完全不使用偏移项时,模型均可正常拟合
完整代码上下文
for(i in 1:ntrials-1) { ntrials <- 2000 npat <- 4413 sampledata <- mgfipdma1t2346[sample(nrow(mgfipdma1t2346), npat, replace=TRUE),] direct <- fixef(glmer(lmdth ~ sex + gf + agec10 + ht + smk + diab + pvd + offpump + statin + gsum + agsum + LAD + seq + (1|trial), offset=log(lmdthdays), data=sampledata, family=binomial(link="logit")))[2] total <- fixef(glmer(lmdth ~ sex + agec10 + ht + smk + diab + pvd + offpump + statin + gsum + agsum + LAD + seq + (1|trial), offset=log(lmdthdays), data=sampledata, family=binomial(link="logit")))[2] indirect2 <- exp(total-direct) indirect <- rbind(indirect, indirect2) }
需求与请求
我需要通过该逻辑回归开展中介分析,必须考虑死亡事件的时间变异,同时由于是多试验合并分析,需要纳入试验水平的随机效应调整组间变异。恳请提供下一步的排查和解决思路。
内容的提问来源于stack exchange,提问作者KRA
相关产品推荐
相关产品推荐

