从嵌套的LME获取NaN

时间:2015-03-26 19:27:55

标签: r mixed-models nlme

我的数据子集存在一些问题(子集仍有600个值)。对于实验,我有两个时间点,每个时间点内嵌有三个处理(TT),其中嵌套了5个重复的培养物(A到E)。在这些培养物中的每一种中,个体生物都有20个值。对于这个子集,我想看看治疗之间的差异和同一治疗中时间点之间的差异。

我正在使用R 3.1.2和nlme包

我的代码如下:

model4a <-lme(Velocity~WeekTT, random=~1|Week/TT/Culture, method = "REML", data=body2, weights = varIdent(form=~1|WeekCulture), control=lmeControl(opt="optim"))

STR如下:

    data.frame':   600 obs. of  4 variables:
     $ Culture  : Factor w/ 5 levels "A","B","C","D",..: 1 2 3 4 5 1 2 3 4 5 
     $ Treatment: Factor w/ 3 levels "T20","T25","T25F": 1 1 1 1 1 2 2 2 2 2 
     $ Week     : num  10 10 10 10 10 10 10 10 10 10 ...
     $ Velocity : num  259 279 265 275 256 ...

这是我得到的结果的屏幕抓​​图和底部的错误(处理发布一些可重现的数据,但认为它可能是一个简单的代码错误)。

过去3周我一直在处理不同的模型,我认为这是一个简单的问题,只是我的大脑已经疲惫不堪,而且我已经过度思考。

1 个答案:

答案 0 :(得分:1)

如果WeekTT是逐周治疗的互动,那么你已经在模型中包含了两次,一次作为固定效果,一次作为随机效果,因为随机效应分组结构{{1 }扩展到Week/TT/Culture,因此这些固定效果参数无法识别也就不足为奇了。也许,如果你想保持固定效果,只包括三向交互作为随机效应。

Week + Week:TT + Week:TT:Culture

取决于model4a <-lme(Velocity~WeekTT, random=~1|Week:TT:Culture, method = "REML", data=body2, weights = varIdent(form=~1|WeekCulture), control=lmeControl(opt="optim")) 语句正在做什么(weights是否表示三向交互?数据转换是否会处理异方差?),您可能只能汇总最低值等级(即计算每个WeekCulture组合的平均值),如Murtaugh (2007)“生态数据分析的简单性和复杂性”所暗示的那样。那么你根本就不需要混合模型......