使用cAIC4分析nlme::lme拟合的混合模型时遇致命错误及后续问题
关于nlme::lme模型调用cAIC4::cAIC时的错误问题
问题背景
- 使用
nlme::lme()拟合多种随机效应结构的混合模型(包括仅随机截距、随机截距+斜率、带序列相关的随机截距等),调用cAIC4::cAIC()曾直接触发R会话中止、致命错误;但用lme4::lmer()拟合同类模型无异常。 - 数据为不平衡纵向数据:每个ID的测量次数不同、时间间隔不规则;因保密无法提供完整数据,另一纵向数据集未出现此问题。
数据样例与模型代码
数据前10行输出:
> head(df, 10) ID S A BT AT outcome Time 1 1 0 0.40 0 5 90 4 2 1 0 0.40 0 5 90 6 3 1 0 0.40 0 5 90 7 4 1 0 0.40 0 5 90 11 5 2 0 1.32 0 7 90 5 6 2 0 1.32 0 7 90 7 7 2 0 1.32 0 7 90 11 8 3 1 5.78 0 3 85 0 9 3 1 5.78 0 3 85 2 10 4 1 5.98 1 3 58 2
基础拟合与cAIC调用代码:
model <- lme(outcome ~ S + BT + A + AT*Time, random = ~ 1|ID, data = df, na.action = na.exclude, method = "REML") library(cAIC4) cAIC(model)
后续异常情况
- 几天后致命错误消失,但对带特定残差方差-协方差结构的仅截距模型运行
cAIC()时,出现维度不匹配错误:
Error in h(simpleError(msg, call)) : error in evaluating the argument 'x' in selecting a method for function 'crossprod': error in evaluating the argument 'x' in selecting a method for function 'crossprod': non-conformable arguments
仅该模型报错,仅随机截距、随机截距+斜率模型可正常运行。
- 当数据包含缺失值时,会弹出如下警告:
In addition: Warning message: In RLRsim::extract.lmeDesign(m) : Removing incomplete cases from supplied data.
需求
希望通过cAIC进行随机效应模型比较,因为似然比检验(LRT)在多数复杂模型场景下适用性有限;需确认当前模型设定是否可能存在问题。
内容的提问来源于stack exchange,提问作者yentl02
相关产品推荐
相关产品推荐

