2017-02-07 4 views
0

Ich möchte wissen, ob es möglich ist, Binomial-Glm mit Interaktionen in numerischen Variablen zu zeichnen. In meinem Fall:Plotten binomial glm mit Interaktionen in numerischen Variablen

##Data set artificial 
set.seed(20) 
d <- data.frame(
    mating=sample(0:1, 200, replace=T), 
    behv = scale(rpois(200,10)), 
    condition = scale(rnorm(200,5)) 
) 

#Binomial GLM ajusted 
model<-glm(mating ~ behv + condition, data=d, family=binomial) 
summary(model) 

In einer Situation, in behv und Zustand im Modell

#Plotting first for behv 
x<-d$behv ###Take behv values 
x2<-rep(mean(d$condition),length(d_p[,1])) ##Fixed mean condition 

# Points 
plot(d$mating~d$behv) 

#Curve 
curve(exp(model$coefficients[1]+model$coefficients[2]*x+model$coefficients[3]*x2) 
/(1+exp(model$coefficients[1]+model$coefficients[2]*x+model$coefficients[3]*x2))) 

Bedeutung ist aber nicht funktioniert !! Es gibt einen anderen richtigen Ansatz?

Dank

Antwort

1

Es ist wie Ihre gewünschte Ausgabe scheint, ist eine grafische Darstellung der bedingten Mittel (oder Best-Fit-Linie). Dazu können Sie vorhergesagte Werte mit der Funktion predict berechnen.

Ich werde dein Beispiel ein wenig ändern, um ein schöneres Ergebnis zu bekommen.

d$mating <- ifelse(d$behv > 0, rbinom(200, 1, .8), rbinom(200, 1, .2)) 
model <- glm(mating ~ behv + condition, data = d, family = binomial) 
summary(model) 

Jetzt machen wir einen newdata Datenrahmen mit der gewünschten Werte:

newdata <- d 
newdata$condition <- mean(newdata$condition) 
newdata$yhat <- predict(model, newdata, type = "response") 

Schließlich sortieren wir newdata durch die x-Achsen-Variable (wenn nicht, werden wir Linien erhalten, die im Zick-Zack überall auf dem Grundstück), und dann Grundstück:

newdata <- newdata[order(newdata$behv), ] 
plot(newdata$mating ~ newdata$behv) 
lines(x = newdata$behv, y = newdata$yhat) 

Ausgang:

enter image description here

Verwandte Themen