让我们考虑这个假设的数据集:
set.seed(12345)
num.subjects <- 10
dose <- rep(c(1,10,50,100), num.subjects)
subject <- rep(1:num.subjects, each=4)
group <- rep(1:2, each=num.subjects/2*4)
response <- dose*dose/10 * group + rnorm(length(dose), 50, 30)
df <- data.frame(dose=dose, response=response,
subject=subject, group=group)
我们可以使用lme
随机效应模型对响应进行建模:
require(nlme)
model <- lme(response ~ dose + group + dose*group,
random = ~1|subject, df)
我想使用predict
这个模型的结果来获得,例如,第 1 组的普通受试者对 10 剂量的反应:
pred <- predict(model, newdata=list(dose=10, group=1))
但是,使用此代码,我收到以下错误:
Error in predict.lme(model, newdata = list(dose = 10, group = 1)) :
cannot evaluate groups for desired levels on 'newdata'
例如,为了摆脱它,我需要做
pred <- predict(model, newdata=list(dose=10, group=1, subject=5))
然而,这对我来说并没有多大意义……这个主题在我的模型中是一个令人讨厌的因素,那么它有什么意义predict
呢?如果我输入数据集中不存在的主题编号,则predict
返回NA
.
predict
这是在这种情况下想要的行为吗?我错过了一些非常明显的东西吗?