Prenons cet ensemble de données hypothétique:
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)
nous pouvons utiliser lme
pour modéliser la réponse avec un modèle à effet aléatoire:
require(nlme)
model <- lme(response ~ dose + group + dose*group,
random = ~1|subject, df)
Je voudrais utiliser predict
sur le résultat de ce modèle pour obtenir, par exemple, la réponse d'un sujet générique du groupe 1 à une dose de 10:
pred <- predict(model, newdata=list(dose=10, group=1))
Cependant, avec ce code, j'obtiens l'erreur suivante:
Error in predict.lme(model, newdata = list(dose = 10, group = 1)) :
cannot evaluate groups for desired levels on 'newdata'
Pour m'en débarrasser, je dois faire, par exemple
pred <- predict(model, newdata=list(dose=10, group=1, subject=5))
Cependant, cela n'a pas vraiment de sens pour moi ... le sujet est un facteur de nuisance dans mon modèle, alors dans quel sens faut-il l'inclure predict
? Si je mets un numéro de sujet non présent dans l'ensemble de données, predict
retourne NA
.
Est-ce le comportement recherché predict
dans cette situation? Suis-je en train de manquer quelque chose de vraiment évident?
model