หลังจากที่คุณจัดวางโมเดลแล้วทำไมไม่ใช้ข้อบกพร่องที่คาดการณ์ไว้เป็นตัวแปรเพื่อเปรียบเทียบกับรุ่นอื่น ๆ โดยใช้เทคนิคมาตรฐานที่มีความหมายต่อพวกเขา มันมีข้อดีของการเป็นตัวแปรต่อเนื่องเพื่อให้คุณเห็นความแตกต่างเล็ก ๆ ตัวอย่างเช่นผู้คนจะเข้าใจถึงความแตกต่างระหว่างจำนวนข้อบกพร่องที่คาดหวังของ 1.4 และ 0.6 แม้ว่าพวกเขาทั้งสองรอบหนึ่ง
สำหรับตัวอย่างของค่าที่ทำนายขึ้นอยู่กับตัวแปรสองตัวที่คุณสามารถทำโครงร่างของเวลา v. ความซับซ้อนเป็นสองแกนและสีและรูปทรงเพื่อแสดงข้อบกพร่องที่คาดการณ์ไว้; และวางจุดข้อมูลจริงที่ด้านบน
เนื้อเรื่องด้านล่างต้องการการขัดเกลาและตำนาน แต่อาจเป็นจุดเริ่มต้น
อีกทางเลือกหนึ่งคือพล็อตตัวแปรที่เพิ่มเข้ามาหรือพล็อตการถดถอยบางส่วนซึ่งคุ้นเคยมากกว่าจากการตอบกลับแบบเกาส์แบบดั้งเดิม สิ่งเหล่านี้ถูกนำไปใช้ในห้องสมุดรถยนต์ อย่างมีประสิทธิภาพแสดงความสัมพันธ์ระหว่างสิ่งที่เหลืออยู่ของการตอบสนองและสิ่งที่เหลืออยู่ของตัวแปรอธิบายอย่างใดอย่างหนึ่งหลังจากที่ตัวแปรอธิบายที่เหลือได้มีส่วนร่วมในการลบออกทั้งการตอบสนองและตัวแปรอธิบาย จากประสบการณ์ของฉันผู้ชมที่ไม่ใช่เชิงสถิติพบว่าเป็นเรื่องยากที่จะชื่นชม (แน่นอนโดยคำอธิบายที่ไม่ดีของฉัน)
#--------------------------------------------------------------------
# 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))