2014-03-06 21 views
5

Ich verwende glm.nb() Funktion in R MASS Paket, um die Parameter eines negativen binomialen Regressionsmodells zu schätzen. Wie könnte ich die vorhergesagte Wahrscheinlichkeit (Wahrscheinlichkeits-Massenfunktion) bei neuen Daten berechnen, welche R-Funktion kann ich verwenden?Wie berechnet man die vorhergesagte Wahrscheinlichkeit eines negativen Binomialregressionsmodells?

Mein Datensatz ist wie folgt. y folgt der negativen Binomialverteilung und x ist die Kovariate. Und ich verwende glm.nb(y ~ x, data=data), um Modellparameter zu schätzen. Gegeben wie neu x und y, wie kann ich die vorhergesagte Wahrscheinlichkeit berechnen.

Gibt es eine Möglichkeit, es mit Java zu berechnen?

y  x 

91 1.000000                      
79 1.000000 

86 1.000000 

32 1.000000 

41 1.000000 

29 0.890609 

44 1.000000 

42 1.000000 

31 0.734058 

35 1.000000 
+1

Wenn Sie neue Datenpunkt sagen, dann meinen Sie einen neuen 'X' und 'Y'? (Es wäre hilfreich, ein reproduzierbares Beispiel zu zeigen) –

Antwort

9

Angenommen, Sie Ihre Daten wie folgt ein:

set.seed(1) 
x = seq(-2, 8, .01) 
y = rnbinom(length(x), mu=exp(x), size=10) 
fit = glm.nb(y ~ x) 

und Sie haben einen neuen Punkt: Sie wollen x=5 die Wahrscheinlichkeit y=100 gegeben zu finden.

Sie können den vorhergesagten Wert von y von x erhalten predict mit (mit type="response" es Ihnen sagen, es nach der Umkehrung der Link-Funktion wollen angewendet wurde):

predicted.y = predict(fit, newdata=data.frame(x=5), type="response") 

Dann könnten Sie herausfinden, die Wahrscheinlichkeit, mit:

dnbinom(100, mu=predicted.y, size=fit$theta) 

(Dies wird unter Verwendung von fit$theta, die Maximum-Likelihood-Schätzung der Parameter "size" der negativen binomialen).

So in einer Funktion:

prob = function(newx, newy, fit) { 
    dnbinom(newy, mu=predict(fit, newdata=data.frame(x=newx), type="response"), size=fit$theta) 
} 
Verwandte Themen