Après avoir ajusté le modèle, pourquoi ne pas utiliser les défauts prévus comme variable pour les comparer aux autres en utilisant les techniques standard qui ont du sens pour eux? Il a l'avantage d'être une variable continue pour que vous puissiez voir même de petites différences. Par exemple, les gens comprendront la différence entre un nombre attendu de défauts de 1,4 et de 0,6, même s'ils arrondissent tous les deux à un.
Pour un exemple de la façon dont la valeur prédite dépend de deux variables, vous pouvez faire un tracé de contour du temps par rapport à la complexité comme les deux axes et la couleur et les contours pour montrer les défauts prédits; et superposer les points de données réels sur le dessus.
L'intrigue ci-dessous a besoin d'un peu de polissage et d'une légende, mais pourrait être un point de départ.
Une alternative est le graphique variable ajouté ou le graphique de régression partielle, plus familier d'une régression de réponse gaussienne traditionnelle. Ceux-ci sont implémentés dans la bibliothèque de voitures. En effet, ils montrent la relation entre ce qui reste de la réponse et ce qui reste de l'une des variables explicatives, après que les autres variables explicatives ont vu leur contribution à la fois à la réponse et aux variables explicatives supprimées. D'après mon expérience, la plupart des publics non statistiques trouvent cela un peu difficile à apprécier (cela pourrait bien sûr être dû à mes mauvaises explications).
#--------------------------------------------------------------------
# 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))