¿Qué es una buena visualización para las regresiones de Poisson?

11

Quiero asociar defectos de código con métricas de complejidad de código como cercanía. Un modelo común es ver esto como un proceso de Poisson, donde la duración es cuánto tiempo se dedica a la codificación y la densidad es una función de la complejidad del código. Puedo hacer una regresión y obtener valores de significación, etc.

Sin embargo, es difícil para mí visualizar los resultados (y aún más difícil para mis colegas menos inclinados matemáticamente). ¿Hay una buena manera de ver esto para ver cosas como valores atípicos, si es una tendencia lineal, etc.? (Se agradecen los enlaces a los paquetes R.)

Por ejemplo, podría trazar Defects / Time ~ Complexitypero esto es bastante ruidoso y, dado que Defectses discreto y muy pequeño, es difícil ver la tendencia. Una cosa en la que estaba pensando es que podría dividir los datos en cuantiles y luego hacer una regresión por cuantil y graficar las densidades resultantes. engañar a la gente sobre lo que es un cuantil.

Xodarap
fuente

Respuestas:

6

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.

ingrese la descripción de la imagen aquí

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).

ingrese la descripción de la imagen aquí

#--------------------------------------------------------------------
# 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))
Peter Ellis
fuente
2

E[yi|xi]yixi

xiyi=0,yi=1

xixi

xixi

Por cierto: ¿también ha ejecutado una regresión binomial negativa en sus datos? ¿Son los resultados muy diferentes? Si es así, su suposición de Poisson (media condicional igual a la varianza condicional) podría ser demasiado restrictiva (ver "sobredispersión"). Ese podría ser el caso, por ejemplo, si su variable "defecto" tiene muchos ceros.

Sin nombre
fuente