Vorhersage auf Modellen mit gemischten Effekten: Was tun mit zufälligen Effekten?

13

Betrachten wir diesen hypothetischen Datensatz:

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)

Wir können lmedie Antwort mit einem Zufallseffektmodell modellieren:

require(nlme)
model <- lme(response ~ dose + group + dose*group, 
             random = ~1|subject, df)

Ich würde gerne nutzen predict das Ergebnis dieses Modells verwenden, um beispielsweise die Reaktion eines generischen Probanden der Gruppe 1 auf eine Dosis von 10 zu erhalten:

pred <- predict(model, newdata=list(dose=10, group=1))

Mit diesem Code erhalte ich jedoch den folgenden Fehler:

Error in predict.lme(model, newdata = list(dose = 10, group = 1)) : 
cannot evaluate groups for desired levels on 'newdata'

Um es loszuwerden, muss ich zum Beispiel tun

pred <- predict(model, newdata=list(dose=10, group=1, subject=5))

Das macht für mich jedoch nicht wirklich viel Sinn ... Das Thema ist ein störender Faktor in meinem Modell, also welchen Sinn muss es haben, um es einzubeziehen predict ? Wenn ich eine im Datensatz nicht vorhandene Betreffnummer eingebe, wird predictzurückgegeben NA.

Ist das das gewünschte Verhalten predictin dieser Situation? Vermisse ich etwas wirklich Offensichtliches?

nico
quelle
modelXβ+ZγyN(Xβ+Zγ,σ2I)Z ). Deshalb liefert Fitting () in erster Linie Ergebnisse "mit Belästigung". (Und eigentlich halte ich es nicht für lästig, sondern eher für ein Extra.) info aber ok ...)
usεr11852 sagt Reinstate Monic
@ user11852: Nur um das zu verdeutlichen, denke ich darüber nach, wie ein Modell verwendet werden soll, zum Beispiel im Falle von wiederholten Maßnahmen für dasselbe Thema.
nico
Z
2
@ user11852: Ich suche keine Schätzung zum selben Thema. Ich mache wiederholte Messungen zu verschiedenen Themen, um Bevölkerungsschätzungen zu erhalten. Ich interessiere mich nicht für die Themen, die ich bereits getestet habe, da ich bereits die experimentelle Antwort habe ... Ich möchte vorhersagen können, wie ein neues Thema einer bestimmten Gruppe auf den Reiz reagiert. Greg Antwort löst das Problem in der Tat.
nico

Antworten:

17

Wenn Sie sich die Hilfe predict.lmeansehen, werden Sie levelfeststellen, dass es ein Argument gibt, das bestimmt, auf welcher Ebene die Vorhersagen getroffen werden sollen. Die Standardeinstellung ist die höchste oder innerste Stufe. Wenn Sie also die Stufe nicht angeben, wird versucht, sie auf der Betreffebene vorherzusagen. Wenn Sie level=0im Rahmen Ihres ersten predictAnrufs (ohne subject) angeben , wird die Vorhersage auf Bevölkerungsebene angezeigt und es wird keine Betreffnummer benötigt.

Greg Snow
quelle