Setelah Anda cocok dengan model, mengapa tidak menggunakan cacat yang diprediksi sebagai variabel untuk dibandingkan dengan yang lain menggunakan teknik standar apa pun yang berarti bagi mereka? Ini memiliki keuntungan menjadi variabel kontinu sehingga Anda dapat melihat bahkan perbedaan kecil. Misalnya, orang akan memahami perbedaan antara jumlah cacat yang diharapkan dari 1,4 dan 0,6 meskipun keduanya membulat menjadi satu.
Sebagai contoh bagaimana nilai prediksi tergantung pada dua variabel Anda bisa melakukan plot kontur waktu v. Kompleksitas sebagai dua sumbu dan warna dan kontur untuk menunjukkan cacat yang diprediksi; dan menempatkan titik data aktual di atas.
Plot di bawah ini membutuhkan beberapa pemolesan dan legenda tetapi mungkin merupakan titik awal.
Alternatifnya adalah plot variabel ditambahkan atau plot regresi parsial, lebih akrab dari regresi respon Gaussian tradisional. Ini diterapkan di perpustakaan mobil. Secara efektif menunjukkan hubungan antara apa yang tersisa dari respon dan apa yang tersisa dari salah satu variabel penjelas, setelah sisa variabel penjelas memiliki kontribusi mereka terhadap respon dan variabel penjelas dihapus. Dalam pengalaman saya, sebagian besar pemirsa non-statistik menemukan ini agak sulit untuk dihargai (bisa dengan penjelasan saya yang buruk, tentu saja).
#--------------------------------------------------------------------
# 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))