Después de ajustar el modelo, ¿por qué no utilizar los defectos pronosticados como una variable para compararlos con los demás utilizando las técnicas estándar que sean significativas para ellos? Tiene la ventaja de ser una variable continua para que pueda ver incluso pequeñas diferencias. Por ejemplo, las personas entenderán la diferencia entre un número esperado de defectos de 1.4 y de 0.6 a pesar de que ambos se redondean a uno.
Para un ejemplo de cómo el valor predicho depende de dos variables, puede hacer un diagrama de contorno de tiempo v. Complejidad como los dos ejes y el color y los contornos para mostrar los defectos predichos; y superponer los puntos de datos reales en la parte superior.
La siguiente trama necesita algo de pulido y una leyenda, pero podría ser un punto de partida.
Una alternativa es la gráfica de variable agregada o la gráfica de regresión parcial, más familiar de una regresión de respuesta gaussiana tradicional. Estos se implementan en la biblioteca del automóvil. Efectivamente, muestran la relación entre lo que queda de la respuesta y lo que queda de una de las variables explicativas, después de que el resto de las variables explicativas hayan tenido su contribución tanto a la respuesta como a las variables explicativas eliminadas. En mi experiencia, a la mayoría de los públicos no estadísticos les resulta un poco difícil de apreciar (por mis malas explicaciones, por supuesto).
#--------------------------------------------------------------------
# Simulate some data
n<-200
time <- rexp(n,.01)
complexity <- sample(1:5, n, prob=c(.1,.25,.35,.2,.1), replace=TRUE)
trueMod <- exp(-1 + time*.005 + complexity*.1 + complexity^2*.05)
defects <- rpois(n, trueMod)
cbind(trueMod, defects)
#----------------------------------------------------------------------
# Fit model
model <- glm(defects~time + poly(complexity,2), family=poisson)
# all sorts of diagnostic checks should be done here - not shown
#---------------------------------------------------------------------
# Two variables at once in a contour plot
# create grid
gridded <- data.frame(
time=seq(from=0, to=max(time)*1.1, length.out=100),
complexity=seq(from=0, to=max(complexity)*1.1, length.out=100))
# create predicted values (on the original scale)
yhat <- predict(model, newdata=expand.grid(gridded), type="response")
# draw plot
image(gridded$time, gridded$complexity, matrix(yhat,nrow=100, byrow=FALSE),
xlab="Time", ylab="Complexity", main="Predicted average number of defects shown as colour and contours\n(actual data shown as circles)")
contour(gridded$time, gridded$complexity, matrix(yhat,nrow=100, byrow=FALSE), add=TRUE, levels=c(1,2,4,8,15,20,30,40,50,60,70,80,100))
# Add the original data
symbols(time, complexity, circles=sqrt(defects), add=T, inches=.5)
#--------------------------------------------------------------------
# added variable plots
library(car)
avPlots(model, layout=c(1,3))