2016-04-20 11 views
1

Ich habe einige Daten mit einigen fehlenden Werten für eine Variable, und ich möchte in der Lage sein, (zufällige) Vorhersagen für das, was diese sein könnten, zu erstellen. Hier ist mein erster Gedanke:Zufallsvorhersagen vom linearen Modell in R

# miss indicates where the observations with missing response are 
library(MASS) 
model <- glm.nb(data[-miss,4] ~ ., data=data[-miss,-4]) 
predict(model, newdata=data[miss,-4]) 

Allerdings, wenn ich die letzte Zeile wiederholen, gibt es die gleichen Antworten immer und immer wieder - es erscheint angesichts der vorhergesagten Mittelwert der Antworten zu geben, die Daten und das Modell. Ich möchte eine zufällige Vorhersage, die eine Varianz enthält, d. H. Eine Zufallszeichnung aus der Verteilung der Antwort einer Beobachtung mit solchen Prädiktoren unter dem gegebenen Modell.

Es könnte etwas mit dem Argument pred.var zu tun haben, aber ich bin nicht sicher, wie man das benutzt.

Antwort

1

Angenommen, wir haben Daten wie folgt aus:

set.seed(101) 
dd <- data.frame(x=(1:20)*0.1) 
dd$y <- rnbinom(20,mu=exp(dd$x),size=1) 
## make some missing values 
miss <- c(2,3,5) 
dd$y[miss] <- NA 

nun ein Modell passen:

m1 <- MASS::glm.nb(y~x,dd,na.action=na.exclude) 

Jetzt Prognosen verwenden aus diesem Modell Wert der erwartete bedeuten zu bekommen und rnbinom die zufällig zu erzeugen Werte ...

(Diese g Ives zufällige Werte für jedes Element, nicht nur die fehlenden, aber natürlich können Sie nur diejenigen auswählen, die Sie wollen ...) Es wäre schön, wenn die simulate Methode dies getan hätte, aber es ist nicht ganz flexibel genug ...