应用带权方差结构后R中的LME函数不收敛

应用带权方差结构后R中的LME函数不收敛,r,mixed-models,variance,nlme,R,Mixed Models,Variance,Nlme,我是一名生物化学家,最近进入了生物信息学/系统生物学领域。因此,我仍然在提高我对统计学和R的知识。我遇到了一个需要花很长时间才能解决的问题,所以我决定寻求一些帮助。我试图复制一篇文章中的分析,这样我可以在以后对结果进行进一步的不同分析。这基本上是一个检测衰老相关基因的混合效应模型。通过阅读我试图复制的文章的方法(在这个问题的底部练习),我提出了一个R建模代码。然而,由于我试图建模的异质方差结构,我的代码没有收敛。我的代码是: model <- lme(Expression ~ Age +

我是一名生物化学家,最近进入了生物信息学/系统生物学领域。因此,我仍然在提高我对统计学和R的知识。我遇到了一个需要花很长时间才能解决的问题,所以我决定寻求一些帮助。我试图复制一篇文章中的分析,这样我可以在以后对结果进行进一步的不同分析。这基本上是一个检测衰老相关基因的混合效应模型。通过阅读我试图复制的文章的方法(在这个问题的底部练习),我提出了一个R建模代码。然而,由于我试图建模的异质方差结构,我的代码没有收敛。我的代码是:

model <- lme(Expression ~ Age + Tissue + Sex +
Race, random= ~1|Individual, data=DataSet, weights = 
varIdent(form=~1|Individual), control= lmeControl(opt = "optim"))
消息真的是空白

第二天,我尝试了不同的优化方法。结果基本相同。使用一个optim方法,我得到了“向量太大,无法分配…”类型的消息。在打印聚合的“初始值”后,其他的将永久停止(使用msVerbose=TRUE进行检查)

通过将
weights=varIdent(form=~1 | personal)
更改为
weights=varIdent(form=~1 | tissure)
我的收敛速度非常慢

通过允许一个随机斜率,我也得到了一些收敛,尽管速度更慢:

model <- lme(Expression ~ Age + Tissue + Sex +
Race, random= ~1 + Age|Individual, data=DataSet, weights = 
varIdent(form=~1|Individual), control= lmeControl(opt = "optim"))

model看起来您希望为每个个体考虑不同的误差方差。这就是原始分析中所做的吗?我没有看到您所包含的分析描述中描述的内容;这似乎只描述了整体块随机效应和剩余误差(个体间的方差是共享的)。@aosmith我很可能会误解它,但“var(b)=σb2I”不是意味着每个个体都有不同的误差方差吗?如果不是,并且它是个体间的共享方差,我将如何建模?块上的b方差通常用于区分该方差与剩余方差(sigma squared sub b vs sigma squared)。如果每个个体存在不同的剩余方差,则剩余方差应使用i进行索引,或者更可能乘以除单位矩阵(i)之外的矩阵。假设一个线性混合模型有一个共享的残差方差,因此具有“个体”随机效应的模型与
lme()
相匹配,对于这样一个模型就足够了。@aosmith该死,我认为方差结构中的“I”是对个体的引用,因为它们在模型公式中使用“I”来引用个体。现在想想,这是没有意义的。我的知识贫乏。谢谢你向我指出这一点。唯一的问题是,我以前尝试过在不使用
weights()
的情况下使用该公式,但它不起作用。我的意思是,它确实完成了,但结果与他们得到的结果大不相同。现在,我只考虑了一个随机截距,而不是一个随机斜率。所以我可以试试。@aosmith事实上,如果你能确认我的公式没有做错什么,我将非常感激。我不确定随机斜率语法是否正确。Is:
模型
model <- lme(Expression ~ Age + Tissue + Sex +
Race, random= ~1 + Age|Individual, data=DataSet, weights = 
varIdent(form=~1|Individual), control= lmeControl(opt = "optim"))