2015-02-05 4 views
5

Dies kann eher ein Fehlerbericht als eine Frage sein, aber: warum explizit das Verwenden des newdata Arguments zur Vorhersage mit dem gleichen Datensatz wie die Trainingsdaten manchmal andere Vorhersagen als erzeugen das Argument newdata weglassen und das Trainingsdatenset explizit verwenden?Predicant.glmer auf Trainingssatz unterscheidet sich mit und ohne newdata

library(lme4) 
packageVersion("lme4") # 1.1.8 
m1 <- glmer(myformula, data=X, family="binomial") 
p1 <- predict(m1, type="response") 
p2 <- predict(m1, type="response", newdata=X) 
all(p1==p2) # FALSE 

Dies ist nicht nur ein Rundungsfehler. Ich sehe cor(p1,p2) Rückkehr 0.8.

Dies scheint bei Modellen mit Gefälle isoliert zu sein. Im folgenden Plot implizit bedeutet predict(..., type="response") ohne newdata und explizite bedeutet predict(..., type="response", newdata=X), wo X ist das gleiche wie Training. Der einzige Unterschied zwischen Modell 1 und den anderen Modellen besteht darin, dass Modell 1 nur (zufällige) Abschnitte enthält und die anderen Modelle zufällige Abschnitte und zufällige Steigungen aufweisen.

enter image description here

+0

installieren wäre es hilfreich, ein [reproduzierbares Beispiel], um (http://stackoverflow.com/questions/5963269/how-to- make-a-great-r-reprovised-example) mit Beispiel-Eingabedaten, so dass wir auch den zu verifizierenden Code ausführen können. Achten Sie darauf, wie Sie die Formel angegeben haben. – MrFlick

+1

@MrFlick; versuche mit 'm1 <- lmer (Reaktion ~ Tage + (Tage || Betreff), Schlafstudie)' – user20650

+1

Hmm, Vorhersagen sind gleichbedeutend mit 'newX' anstelle von' newdata' – user20650

Antwort

4

Es stellt sich heraus, dass dies einen Fehler in predict.merMod ist, die (im November 2014 als this Github issue) in der Entwicklungsversion behoben wurde. Wenn Sie Compilation Tools installiert haben, können Sie die Entwicklungsversion direkt von Github über

devtools::install_github("lme4/lme4") 
Verwandte Themen