Prueba De Hipótesis

Cómo exprimir la prueba de Kolmogorov-Smirnov y unos cuantos asuntos más

Suponía que era de conocimiento universal. Pero si John D. Cook siente la necesidad de recordarnos que las probabilidades pequeñas se suman pero las grandes no, será por algo.

Lo raro es que no ocurra nunca nada altamente improbable, edición número 6210.

En los extremos, la varianza importa más que la media. (Se refiere a dos poblaciones con medias y varianzas distintas. Si una observación es extrema, es casi seguro que viene de la población con mayor varianza que la de mayor media, para casi todas las definiciones razonables y compatibles de razonables de mayor y extremo).

Reducción del error en tests A/B (y similares)

Hoy, cuatro maneras distintas de realizar un test A/B. Comienzo con unos datos simulados que tienen este aspecto:

set.seed(1)
n <- 1000
test <- c(rep(0, n/2), rep(1, n/2))
y0 <- rnorm(n)
y1 <- y0 + test + rnorm(n)

Ahí:

  • n es el número de sujetos, 1000.
  • test es un vector que indica el tratamiento: 500 en un grupo, 500 en otro.
  • y0 es el valor de/asociado a los sujetos en un periodo anterior al tratamiento.
  • y1 es el valor de los sujetos después del tratamiento. Como se puede ver, está relacionado con el tratamiento en sí y con el valor anterior. Se le ha añadido, además, cierta cantidad de ruido estadístico.

Hay varias maneras de estimar el efecto del tratamiento (o de, como dicen algunos, realizar un test A/B). Voy a mencionar cuatro.

Significativo vs significativo

Con esta entrada voy a abundar en una literatura ya muy extensa y que muchos encontrarán ya, con razón, aburrida, sobre las diferencias entre significativo y significativo.

Véase:

En 2006, el ingreso anual bruto medio de los médicos era de 70.717 USD […] para los países con el sistema Bismark y 119.911 USD […] para los del sistema Beveridge. Las diferencias no son significativas (p=0.178).

Olé.

El párrafo está extraído de PNS89 International comparison of the remuneration of physicians among countries with bismarck and beveridge health care system y traducido por un servidor.

P-valores y decisiones

Los números de esta entrada son reales aunque disfrazados: proceden de un proyecto real. Para medir la efectividad de una serie de modelos que hemos creado en Circiter, hemos pedido al cliente lo de siempre: que parta la lista de sujetos en dos al azar para después poder medir los éxitos y fracasos usando dos procedimientos distintos.

Pero como tenemos dudas acerca del proceso de partición —que no controlamos nosotros— hemos medido el número de éxitos y fracasos en cada uno de los grupos en una prueba previa. Esperábamos que las proporciones fuesen similares en ambos grupos y hemos obtenido esto:

Gelmaneando

Hoy, gelmaneo así:

bar <- function(n, reps = 1e4){
  foo <- function(n){
    x <- rnorm(n)
    tmp <- t.test(x)
    c(tmp$p.value, abs(mean(x)))
  }

  res <- replicate(reps, foo(n))
  tmp <- t(res)
  tmp <- tmp[tmp[,1] < 0.05,]
  tmp[,2]
}

res <- lapply(c(3, 10, 20, 50, 100), bar)
sapply(res, mean)
#[1] 0.8662636 0.6583157 0.4934551 0.3240322 0.2337086

Resumo:

  • Fabrico un montón de errores de tipo I. Recuérdese: error de tipo I implica artículo publicado.
  • Hago variar el número de sujetos (3, 10, etc.), n.
  • Mido el tamaño (promedio) del efecto, E; el estudio de su distribución, ejercicio para el lector.

Y efectivamente, E es función decreciente de n.

Una pregunta sobre pruebas de hipótesis

Más que pregunta, debería haberlo planteado como encuesta: no estoy preguntando sino preguntándote qué es lo que haces tú (habitualmente).

Va de pruebas de hipótesis (a la Fisher). La teoría dice que hay que plantear una hipótesis nula y para poder estudiar lo anómalos que son los datos obtenidos experimentalmente bajo dicha hipótesis. Es decir, calculas $latex P(X | H_0)$.

Alternativamente (en muchos contextos, no en todos: no sabría cómo hacerlo, p.e., con el ks.test) uno puede echarle un vistazo a los intervalos de confianza del parámetro de interés y ver si incluye o no el valor de referencia.

Y termino con lo de los intervalos

Y termino con lo de los intervalos. Me refiero a esto y esto.

Nunca me habría atrevido a escribir sobre el tema, y exponerme, de paso, a la muy razonadas explicaciones de quienes tuvieron a bien comentarlas, si no hubiese sido por un tema personal: el recuerdo de la frustración que me supuso hacerme en su día con la teoría subyacente tanto a las pruebas de hipótesis como a la construcción de intervalos de confianza.

Otra vuelta al caso del test que rechaza y el intervalo que contiene

Esta visita adicional al tema es consecuencia de mi revisión de todo el asunto de las pruebas de hipótesis. En particular, en el caso de prueba binomial, como en esta entrada, de la que la que lees es continuación.

En particular,

binom.test(79, 100, 0.7)

# Exact binomial test
#
# data:  79 and 100
# number of successes = 79, number of trials = 100, p-value = 0.04982
# alternative hypothesis: true probability of success is not equal to 0.7
# 95 percent confidence interval:
#   0.6970846 0.8650563
# sample estimates:
#   probability of success
# 0.79

es un caso en el que la prueba rechaza (al nivel de confianza del 5% siempre) y el intervalo de confianza del parámetro cubre el valor 0.7 de partida.

El test rechaza pero el intervalo contiene: [contra]ejemplos

De acuerdo con el saber popular, pruebas que rechazan acompañan a intervalos de confianza que no contienen.

Pero

foo <- function(N, p = 0.7){
  n <- qbinom(0.975, N, p)
  tmp <- binom.test(n, N, p)
  c(tmp$p.value, tmp$conf.int,
    tmp$conf.int[1] < p & p < tmp$conf.int[2])
}

res <- as.data.frame(t(sapply(20:200, foo)))
res$n <- 20:200

res[res$V1 < 0.05,]

no tiene cero filas.

Test de Student e importancia práctica: un ejercicio

Esto de los test estadísticos junto con un cierto tipo de formación estadística conduce a automatismos que, a menudo, nos cuesta sacudirnos. Tendemos a aceptar y rechazar hipótesis con escaso juicio. Y una de las dimensiones de un estudio que se ignoran en ocasiones es el de la importancia práctica. Que es, tal vez, aquel por el que se propuso la prueba en primer lugar.

Así que voy a proponer a mis lectores un ejercicio (copiado de algún lugar que anunciaré otro día). Les voy a pedir que piensen si un determinado tratamiento contra, por ejemplo, el ácido úrico (en alguna parte del organismo) es efectivo o no. Supongamos que se sabe que una variación de alrededor de 2 ml/dl no tiene mayor relevancia médica en una persona, pero incrementos de 10 ml/dl y más comienzan a tener efectos importantes sobre la salud.