Por la "variabilidad", de los autores entiende cualquier medida razonable de la dispersión de la enfermedad coronaria condicional en la edad.
El estudio de este mediante la segmentación de los datos en estrecha grupos de edad (como se muestra en diferentes colores en la mano derecha del diagrama de dispersión), el cálculo de la dispersión de la enfermedad coronaria valores dentro de cada grupo de edad, y el trazado de los dispersiones en contra de edad (que se muestra en la parte izquierda del punto del gráfico).
Debido a que la enfermedad coronaria es binario y codificados con ceros y unos, es una variable de Bernoulli. La CHD valores dentro de cualquier grupo de edad $i$ son completamente resumidos por su recuento $n_i$ y el número de (decir), $k_i$, que por lo tanto tiene una distribución Binomial con (desconocido) probabilidad de $p_i = \Pr(1)$. Aunque hay muchas formas de calcular el $p_i$, no tiene que ser quisquilloso; la proporción $\hat p_i = k_i / n_i$ va a hacer muy bien. Una adecuada medida de la dispersión de la enfermedad coronaria, a continuación, es la estimación de la desviación estándar $\sqrt{\hat p_i(1-\hat p_i)}$. Puede variar de $0$ (al $\hat p_i$ está cerca de a $0$ o $1$) a $1/2$ (alcanzado al $\hat p_i = 1/2$). La gama completa de posibles desviaciones estándar se muestra en el eje horizontal en la parte izquierda de la parcela. Claramente todos ellos están en el alto (derecha) de la gama, que explique y justifique la valoración de que "la variabilidad en todas las edades es grande."
De Hosmer y Lemeshow pasar a analizar estos datos en ocho grupos de edad en lugar de los once que se muestra aquí. La conclusión de manera consistente gran variabilidad comienza a romperse con más grupos de edad: se puede ver en la mano derecha de la parcela de que todos los CHD valores son constantes en el menor y mayor edad, que no presenten ningún variabilidad a todos. Que se puede esperar: cuando utilizamos muchos grupos, algunos grupos tienen pocos valores, resultando en una alta incertidumbre sobre la verdadera dispersión dentro de cada grupo. Los autores, mediante la limitación del número de grupos, mantener bastante altos recuentos $n_i$ dentro de cada grupo, logrando así una sólida imagen de la dispersión de la enfermedad coronaria condicional en la edad.
Más sofisticado, pero un poco más opaco, el método para estimar el condicional dispersión es suave CHD contra la Edad, el uso de un local estimador de la media. Este suave puede ser convertido a un estimador de la dispersión utilizando la misma fórmula como antes:
He resaltado en rojo, y por el engrosamiento de la línea) los "grandes" desviaciones estándar, es decir, aquellos mayores que el valor medio de $1/4$.
Estos datos están disponibles en el archivo chdage.dat
encontrado en ftp://ftp.wiley.com/public/sci_tech_med/logistic/alr.zip. El R
código utilizado para crear estas parcelas se reproduce a continuación para aquellos a quienes les gusta experimentar con ellos.
#
# Applied Logistic Regression, Table 1.1
#
folder <- "F:/Research/ALR/logistic/" # Location of the data file on your system
x <- read.table(paste0(folder, "chdage.dat"), col.names=c("Id", "Age", "CHD"))
#
# Specify age grouping.
#
n.groups <- 11
k <- 5 # Should be relatively prime to n.groups and near n.groups/2
colors <- rainbow(n.groups)
colors <- colors[(1:n.groups * k) %% n.groups + 1]
#
# Study dispersion ("variability") of CHD by age.
#
breaks <- quantile(x$Age, (0:n.groups)/n.groups) #$
x$AgeGroup <- cut(x$Age, breaks)
s <- aggregate(x$CHD, by=list(x$AgeGroup), function(y) sqrt(mean(y)*(1-mean(y))))
dotchart(s$x, s$Group.1, xlim=c(0, 0.525), pch=16, col=colors, cex=min(1, 10/n.groups),
xlab="Standard Deviation",
main="Variation in CHD by Age Group", cex.main=0.8)
#
# Plot the raw data.
#
names(colors) <- levels(x$AgeGroup)
plot(jitter(x$Age), x$CHD, yaxp=c(0, 1, 1), ylim=c(0,1)+c(-1,1)*0.05,
cex=1.25, col=colors[x$AgeGroup],
xlab="Age (years, jittered)", ylab="CHD",
main="CHD vs. Age", cex.main=0.8)
abline(v = breaks, lty=1, col="Gray")
#
# Plot the smoothed dispersion.
#
CHD.smooth <- lowess(x$Age, x$CHD)
CHD.smooth$y <- pmin(1, pmax(0, CHD.smooth$y))
CHD.sd <- sqrt(CHD.smooth$y * (1-CHD.smooth$y))
large <- CHD.sd > 1/4
plot(CHD.smooth$x, CHD.sd, type="l", lwd=2, col="Gray",
xlab="Age", ylab="Standard Deviation",
main="Smoothed Dispersion of CHD",
cex.main=0.75, cex.lab=0.75, cex.axis=0.75) #$
lines(CHD.smooth$x[large], CHD.sd[large], lwd=3, col="Red")