【发布时间】:2015-02-23 22:22:15
【问题描述】:
我在 R v.3.0.2 上运行包 nlme 中的 lme -model。
我正在尝试使用predict.lme 提取模型估计值,但它返回错误。这是复制错误的代码:
my.model = lme(fixed = Maxi ~ Time*Origin, random = ~ 1 |Genotype, method = "REML", weights=varPower(), data=dd)
new.my.model <- data.frame(Origin = c("Ka", "Ka", "La", "La"), Time = c("mor", "eve", "mor", "eve"))
predict(my.model, new.my.model, level = 0:1)
#Error in predict.lme(my.model, new.my.model, level = 0:1) :
#cannot evaluate groups for desired levels on 'newdata'
这是数据:
dd<-read.table(text="Origin Genotype Time Maxi
Ka Ka1 mor 14,59
Ka Ka1 eve 13,42
Ka Ka11 mor 14,08
Ka Ka11 eve 16,29
Ka Ka15 mor 14,38
Ka Ka15 eve 14,56
La La1 mor 17,82
La La1 eve 13,28
Ka Ka1 mor 16,44
Ka Ka1 eve 15,52
Ka Ka15 mor 13,76
Ka Ka15 eve 13,55
Ka Ka1 mor 19,15
Ka Ka1 eve 19,12
La La6 mor 10,54
La La6 mor 11,38
La La6 eve 10,48
Ka Ka15 mor 15,25
Ka Ka15 eve 16,51
La La1 mor 17,46
La La1 eve 15,57
Ka Ka1 mor 16,83
Ka Ka1 eve 15,63
Ka Ka15 mor 14,54
Ka Ka15 eve 15,09
La La1 mor 11,3
La La1 eve 11,94", header=TRUE, dec=",")
数据是两个因子 (Ka, La),每个因子有两个水平 (mor, eve) 和随机效应。我正在尝试提取 4 个数据级别的估计值,即 Ka,mor ;卡,伊芙;拉莫尔;拉,伊芙。
最初是在 CV 的另一个场合被问到的,但我在这里被推荐了。
【问题讨论】:
-
您需要在 newdata 参数中为 Genotype 指定一个值,因为 Genotype 在您的模型中。你可以做
new.my.model <-data.frame(expand.grid(Origin=c("Ka","La"), Time=c("mor","eve")), Genotype="Ka1") -
这将返回:
Error in sprintf(ngettext(sum(wch), "level %s not allowed for %s", "levels %s not allowed for %s"), : too few arguments.我做错了什么吗?此外,我对随机效应并不感兴趣,我只需要 4 种手段。这不会也为基因型返回一些东西吗?顺便说一句,这是在nlme中提取估计值的唯一方法吗?
标签: r statistics nlme