α y están relacionados. Trataré de ilustrar el punto con una prueba de diagnóstico. Digamos que tiene una prueba de diagnóstico que mide el nivel de un marcador sanguíneo. Se sabe que las personas que tienen una determinada enfermedad tienen niveles más bajos de este marcador en comparación con las personas sanas. Está claro de inmediato que debe decidir un valor límite, por debajo del cual una persona se clasifica como "enferma", mientras que las personas con valores superiores a este límite se consideran saludables. Sin embargo, es muy probable que la distribución del marcador de sangre varíe considerablemente incluso entre personas enfermas y sanas. Algunas personas sanas pueden tener niveles muy bajos de marcadores sanguíneos, a pesar de que son perfectamente saludables.β
Hay cuatro posibilidades que pueden ocurrir:
- una persona enferma se identifica correctamente como enferma (verdadero positivo = TP)
- una persona enferma se clasifica falsamente como saludable (falso negativo = FN)
- una persona sana se identifica correctamente como sana (verdadero negativo = TN)
- una persona sana se clasifica falsamente como enferma (falso positivo = FP)
Estas posibilidades se pueden ilustrar con una tabla de 2x2 :
Sick Healthy
Test positive TP FP
Test negative FN TN
α denota la tasa de falsos positivos, que es . es la tasa de falsos negativos, que es . Escribí un guión simple para ilustrar la situación gráficamente.α=FP/(FP+TN)ββ=FN/(TP+FN)R
alphabeta <- function(mean.sick=100, sd.sick=10, mean.healthy=130, sd.healthy=10, cutoff=120, n=10000, side="below", do.plot=TRUE) {
popsick <- rnorm(n, mean=mean.sick, sd=sd.sick)
pophealthy <- rnorm(n, mean=mean.healthy, sd=sd.healthy)
if ( side == "below" ) {
truepos <- length(popsick[popsick <= cutoff])
falsepos <- length(pophealthy[pophealthy <= cutoff])
trueneg <- length(pophealthy[pophealthy > cutoff])
falseneg <- length(popsick[popsick > cutoff])
} else if ( side == "above" ) {
truepos <- length(popsick[popsick >= cutoff])
falsepos <- length(pophealthy[pophealthy >= cutoff])
trueneg <- length(pophealthy[pophealthy < cutoff])
falseneg <- length(popsick[popsick < cutoff])
}
twotable <- matrix(c(truepos, falsepos, falseneg, trueneg), 2, 2, byrow=T)
rownames(twotable) <- c("Test positive", "Test negative")
colnames(twotable) <- c("Sick", "Healthy")
spec <- twotable[2,2]/(twotable[2,2] + twotable[1,2])
alpha <- 1 - spec
sens <- pow <- twotable[1,1]/(twotable[1,1] + twotable[2,1])
beta <- 1 - sens
pos.pred <- twotable[1,1]/(twotable[1,1] + twotable[1,2])
neg.pred <- twotable[2,2]/(twotable[2,2] + twotable[2,1])
if ( do.plot == TRUE ) {
dsick <- density(popsick)
dhealthy <- density(pophealthy)
par(mar=c(5.5, 4, 0.5, 0.5))
plot(range(c(dsick$x, dhealthy$x)), range(c(c(dsick$y, dhealthy$y))), type = "n", xlab="", ylab="", axes=FALSE)
box()
axis(1, at=mean(pophealthy), lab=substitute(mu[H[0]]~paste("=",m, sep=""), list(m=mean.healthy)), cex.axis=1.5,tck=0.02)
axis(1, at=mean(popsick), lab=substitute(mu[H[1]]~paste("=",m, sep=""), list(m=mean.sick)), cex.axis=1.5, tck=0.02)
axis(1, at=cutoff, lab=substitute(italic(paste("Cutoff=",coff, sep="")), list(coff=cutoff)), pos=-0.004, tick=FALSE, cex.axis=1.25)
lines(dhealthy, col = "steelblue", lwd=2)
if ( side == "below" ) {
polygon(c(cutoff, dhealthy$x[dhealthy$x<=cutoff], cutoff), c(0, dhealthy$y[dhealthy$x<=cutoff],0), col = "grey65")
} else if ( side == "above" ) {
polygon(c(cutoff, dhealthy$x[dhealthy$x>=cutoff], cutoff), c(0, dhealthy$y[dhealthy$x>=cutoff],0), col = "grey65")
}
lines(dsick, col = "red", lwd=2)
if ( side == "below" ) {
polygon(c(cutoff,dsick$x[dsick$x>cutoff],cutoff),c(0,dsick$y[dsick$x>cutoff],0) , col="grey90")
} else if ( side == "above" ) {
polygon(c(cutoff,dsick$x[dsick$x<=cutoff],cutoff),c(0,dsick$y[dsick$x<=cutoff],0) , col="grey90")
}
legend("topleft",
legend=(c(as.expression(substitute(alpha~paste("=", a), list(a=round(alpha,3)))),
as.expression(substitute(beta~paste("=", b), list(b=round(beta,3)))))), fill=c("grey65", "grey90"), cex=1.2, bty="n")
abline(v=mean(popsick), lty=3)
abline(v=mean(pophealthy), lty=3)
abline(v=cutoff, lty=1, lwd=1.5)
abline(h=0)
}
#list(specificity=spec, sensitivity=sens, alpha=alpha, beta=beta, power=pow, positiv.predictive=pos.pred, negative.predictive=neg.pred)
c(alpha, beta)
}
Veamos un ejemplo. Suponemos que el nivel medio del marcador sanguíneo entre las personas enfermas es de 100 con una desviación estándar de 10. Entre las personas sanas, el nivel sanguíneo medio es de 140 con una desviación estándar de 15. El médico establece el límite en 120.
alphabeta(mean.sick=100, sd.sick=10, mean.healthy=140, sd.healthy=15, cutoff=120, n=100000, do.plot=TRUE, side="below")
Sick Healthy
Test positive 9764 901
Test negative 236 9099
Usted ve que las áreas sombreadas están en relación entre sí. En este caso, y . Pero, ¿qué sucede si el clínico hubiera establecido el límite de manera diferente? Pongámoslo un poco más bajo, a 105 y veamos qué sucede.α=901/(901+9099)≈0.09β=236/(236+9764)≈0.024
Sick Healthy
Test positive 6909 90
Test negative 3091 9910
Nuestro es muy bajo ahora porque casi ninguna persona sana es diagnosticada como enferma. Pero nuestro ha aumentado, porque las personas enfermas con un alto nivel de marcadores sanguíneos ahora se clasifican falsamente como saludables.αβ
Finalmente, veamos cómo y cambian para diferentes puntos de corte:αβ
cutoffs <- seq(0, 200, by=0.1)
cutoff.grid <- expand.grid(cutoffs)
plot.frame <- apply(cutoff.grid, MARGIN=1, FUN=alphabeta, mean.sick=100, sd.sick=10, mean.healthy=140, sd.healthy=15, n=100000, do.plot=FALSE, side="below")
plot(plot.frame[1,]~cutoffs, type="l", las=1, xlab="Cutoff value", ylab="Alpha/Beta", lwd=2, cex.axis=1.5, cex.lab=1.2)
lines(plot.frame[2,]~cutoffs, col="steelblue", lty=2, lwd=2)
legend("topleft", legend=c(expression(alpha), expression(beta)), lwd=c(2,2),lty=c(1,2), col=c("black", "steelblue"), bty="n", cex=1.2)
Puede ver inmediatamente que la proporción de y no es constante. Lo que también es muy importante es el tamaño del efecto. En este caso, esta sería la diferencia de las medias de los niveles de marcadores sanguíneos entre las personas enfermas y sanas. Cuanto mayor sea la diferencia, más fácil se pueden separar los dos grupos mediante un límite:αβ
Aquí tenemos una prueba "perfecta" en el sentido de que el límite de 150 discrimina a los enfermos de los sanos.
Ajustes de Bonferroni
Los ajustes de Bonferroni reducen el error pero inflan el error tipo II ( ) . Esto significa que el error de tomar una decisión negativa falsa aumenta mientras que los falsos positivos se minimizan. Es por eso que el ajuste de Bonferroni a menudo se llama conservador. En los gráficos anteriores, observe cómo aumentó cuando bajamos el límite de 120 a 105: aumentó de a . Al mismo tiempo, disminuyó de a .αββ0.020.31α0.090.01
Para otros en el futuro:
En la estimación del tamaño de la muestra, el Ztotal se calcula sumando la Z correspondiente a alfa y Z correspondiente a la potencia (1-beta). Matemáticamente, si el tamaño de la muestra se mantiene constante, el aumento de Z para alfa significa que disminuye la Z de potencia en la MISMA cantidad, por ejemplo, aumentar Zalpha de 0.05 a 0.1 disminuye Zpower en 0.05.
La diferencia es que la Z para alfa es de dos colas mientras que la Z para beta es de 1 cola. Entonces, mientras que el valor Z cambia en la misma cantidad, pero el% de probabilidad que corresponde a este valor Z no cambia en la misma cantidad.
Ejemplo:
5% alfa (95% de confianza) con 80% de potencia (20% beta) da el mismo tamaño de muestra que
20% alfa (80% de confianza) con 93.6% de potencia (6.4% beta) en lugar del 95% de potencia que tendríamos si la relación fuera 1: 1.
fuente
No existe una relación general entre alfa y beta.
Todo depende de su prueba, tome el ejemplo simple:
(Wikipedia)
En el uso coloquial, el error tipo I puede considerarse como "condenar a una persona inocente" y el error tipo II "dejar en libertad a una persona culpable".
Un jurado puede ser severo: sin error de tipo II, algún tipo I Un jurado puede ser "amable": sin tipo I pero con un tipo II Un jurado puede ser normal: algún tipo I y otro tipo II Un jurado puede ser perfecto: sin error
En la práctica hay dos efectos antagonistas:
Cuando la calidad de la prueba aumenta, los errores de tipo I y tipo II disminuyen hasta cierto punto. Cuando un jurado mejora, tiende a dar un mejor juicio sobre las personas inocentes y culpables.
Después de algún punto, el problema subyacente aparece en la construcción de la prueba. Los tipos I o II son más importantes para quien realiza la prueba. Con el ejemplo del jurado, los errores de tipo I son más importantes y, por lo tanto, el proceso legal se construye para evitar el tipo I. Si hay alguna duda, la persona es libre. Intuitivamente, esto condujo a un crecimiento en el error tipo II.
Sobre Bonferroni:
(Wikipedia de nuevo)
La corrección de Bonferroni controla solo la probabilidad de falsos positivos. La corrección generalmente tiene el costo de aumentar la probabilidad de producir falsos negativos y, en consecuencia, reducir el poder estadístico. Al probar una gran cantidad de hipótesis, esto puede dar lugar a grandes valores críticos.
fuente