Experimentos estadísticos con remuestreo
Experimentos con remuestreo
Pruebas de bootstrapping y permutación

Introducción
La mayoría de las personas que trabajan con datos hacen observaciones y luego se preguntan si estas observaciones son estadísticamente significativas. Y a menos que uno tenga alguna formación formal en inferencia estadística y experiencia previa en la realización de pruebas de significancia, el primer pensamiento que viene a la mente es buscar a un estadístico que pueda brindar consejos sobre cómo realizar la prueba, o al menos confirmar que la prueba se ha ejecutado correctamente y que los resultados son válidos.
Existen muchas razones para esto. Para empezar, a menudo no es inmediatamente obvio qué prueba se necesita, qué fórmulas respaldan los principios de la prueba, cómo utilizar las fórmulas y si se puede utilizar la prueba en primer lugar, por ejemplo, porque los datos no cumplen las condiciones necesarias como la normalidad. Existen paquetes completos de R y Python para la estimación de una gran cantidad de modelos estadísticos y para realizar pruebas estadísticas, como statsmodels.
Sin embargo, sin una comprensión completa de la teoría estadística, el uso de un paquete replicando un ejemplo de la guía del usuario a menudo deja una sensación de inseguridad, a la espera de críticas severas una vez que el enfoque sea examinado por un estadístico experimentado. Personalmente, soy un ingeniero que se convirtió en analista de datos con el tiempo. Tomé cursos de estadística durante mis estudios de pregrado y postgrado, pero no utilicé la estadística de manera extensiva porque esto no es típico de lo que hace un ingeniero para ganarse la vida. Creo que lo mismo se aplica a muchos otros analistas de datos y científicos de datos, especialmente si su formación formal es, por ejemplo, en ingeniería, ciencias de la computación o química.
Decidí escribir este artículo porque me di cuenta recientemente de que la simulación puede usarse fácilmente en lugar de los métodos estadísticos más clásicos basados en fórmulas. La mayoría de las personas probablemente pensarían inmediatamente en el bootstrapping para estimar la incertidumbre de la media. Pero no se trata solo del bootstrapping. El uso de remuestreo dentro de pruebas de permutación aleatorias puede proporcionar respuestas a muchos problemas de inferencia estadística. Estas pruebas no son generalmente muy difíciles de escribir y ejecutar. Se aplican universalmente a datos continuos o binarios, independientemente del tamaño de la muestra y sin hacer suposiciones sobre la distribución de los datos. En este sentido, las pruebas de permutación son no paramétricas y el único requisito es la intercambiabilidad, es decir, la probabilidad de observar una cierta secuencia de valores es la misma para cualquier permutación de la secuencia. Esto realmente no es mucho pedir.
La falta de recursos informáticos fue quizás una de las razones del impresionante avance de las pruebas de inferencia estadística basadas en fórmulas en el pasado. El remuestreo miles de veces de una muestra de datos con decenas o miles de registros era prohibitivo en ese entonces, pero ya no lo es. ¿Esto significa que los métodos clásicos de inferencia estadística ya no son necesarios? Por supuesto que no. Pero tener la capacidad de realizar una prueba de permutación y confirmar los resultados puede ser reconfortante cuando los resultados son similares, o ayudar a comprender qué suposiciones no se cumplen cuando observamos discrepancias. Poder realizar una prueba estadística desde cero sin depender de un paquete también brinda cierto sentido de empoderamiento.
- Estudiante indio en el MIT crea un dispositivo de conversación sin voz
- Investigadores de CMU proponen un método de ataque simple y efectiv...
- Principales publicaciones de VoAGI para junio de 2023 ¡GPT4All es e...
Las pruebas de permutación, por supuesto, no son algo nuevo, pero pensé que sería una buena idea proporcionar algunos ejemplos y el código correspondiente. Esto puede aliviar el miedo de algunos expertos en datos por ahí y acercar la inferencia estadística utilizando la simulación a su práctica diaria. El artículo utiliza pruebas de permutación para responder dos preguntas. Hay muchos más escenarios en los que se puede utilizar una prueba de permutación y para preguntas más complejas el diseño de una prueba de permutación puede no ser inmediatamente obvio. En este sentido, este artículo no es exhaustivo. Sin embargo, los principios son los mismos. Al comprender lo básico, será más fácil buscar una fuente autorizada sobre cómo diseñar una prueba de permutación para responder otras preguntas comerciales más sutiles. Mi intención es desencadenar una forma de pensar en la que simular la distribución de la población esté en el centro y usar los resultados teóricos permite estimar cuál es la probabilidad de que ocurra un efecto observado por casualidad. De eso se tratan las pruebas de hipótesis.
La inferencia estadística comienza con una hipótesis, por ejemplo, que un nuevo medicamento es más efectivo contra una enfermedad dada en comparación con el tratamiento tradicional. La efectividad podría medirse verificando la reducción de un índice sanguíneo determinado (variable continua) o contando el número de animales en los que no se puede detectar la enfermedad después del tratamiento (variable discreta) al usar el nuevo medicamento y el tratamiento tradicional (control). Tales comparaciones de dos grupos, también conocidas como pruebas A/B, se discuten extensamente en todos los textos clásicos de estadística y en blogs de tecnología populares como este. Utilizando el ejemplo del diseño de medicamentos, probaremos si el nuevo medicamento es más efectivo en comparación con el tratamiento tradicional (prueba A/B). Basándonos en esto, estimaremos cuántos animales necesitamos para establecer que el nuevo medicamento es más efectivo asumiendo que en realidad es un 1% más efectivo (o para otro tamaño de efecto) que el tratamiento tradicional. Aunque las dos preguntas parecen no estar relacionadas, lo están. Reutilizaremos el código del primero para responder al segundo. Todo el código se puede encontrar en el repositorio de mi blog.
Doy la bienvenida a los comentarios, pero por favor sean constructivos. No pretendo ser un estadístico y mi intención es ayudar a otros a pasar por un proceso de aprendizaje similar cuando se trata de pruebas de permutación.
Pruebas A/B
Volvamos a la primera pregunta, es decir, si el nuevo medicamento es más efectivo que el tratamiento tradicional. Cuando realizamos un experimento, los animales enfermos se asignan a dos grupos, dependiendo del tratamiento que reciben. Los animales se asignan a los grupos al azar y, por lo tanto, cualquier diferencia observada en la eficacia del tratamiento se debe a la efectividad del medicamento, o simplemente sucedió por casualidad que los animales con un sistema inmunológico más fuerte fueron asignados al grupo del nuevo medicamento. Estas son las dos situaciones que debemos desentrañar. En otras palabras, queremos examinar si el azar puede explicar cualquier beneficio observado en el uso del nuevo medicamento.
Imaginemos algunos números imaginarios para hacer una ilustración:
La variable de respuesta es binaria, es decir, el tratamiento fue exitoso o no. La prueba de permutación funcionaría de la misma manera si la variable de respuesta fuera continua (¡esto no es el caso de las pruebas estadísticas clásicas!), pero la tabla anterior contendría medias y desviaciones estándar en lugar de conteos.
De manera intencional, no usamos grupos de tratamiento del mismo tamaño, ya que esto no es un requisito para la prueba de permutación. Esta prueba A/B hipotética involucró un gran número de animales y parece que el nuevo medicamento es prometedor. El nuevo medicamento es un 1,5% más efectivo que el tratamiento tradicional. Dado el gran tamaño de la muestra, esto parece significativo. Volveremos a esto. Como humanos, tendemos a considerar significativas cosas que pueden no serlo. Por eso es tan importante estandarizar las pruebas de hipótesis.
“Piense en la hipótesis nula como si nada hubiera sucedido, es decir, el azar puede explicarlo todo”.
En las pruebas A/B, utilizamos una suposición de referencia de que no se ha observado nada especial. Esto también se conoce como la hipótesis nula. La persona que realiza la prueba generalmente espera demostrar que la hipótesis nula no se cumple, es decir, que se ha hecho un descubrimiento. En otras palabras, la hipótesis alternativa es verdadera. Una forma de demostrar esto es mostrar que la probabilidad de que el azar conduzca a una diferencia tan extrema como la observada es muy baja. Ya estamos comenzando a ver la conexión con las pruebas de permutación.
Imaginemos un procedimiento donde todos los animales tratados se agrupan en un solo grupo (de 2487 + 1785 animales) y luego se dividen nuevamente al azar en dos grupos con los mismos tamaños que los dos grupos originales de tratamiento. Para cada animal sabemos si el tratamiento fue exitoso o no, por lo tanto, podemos calcular el porcentaje de animales curados para cada grupo. Utilizando los datos observados, establecimos que el nuevo medicamento aumentó el porcentaje de animales curados del 80,34% al 81,79%, es decir, un aumento de casi el 1,5%. Si volvemos a muestrear los dos grupos muchas veces, ¿con qué frecuencia veríamos que el nuevo medicamento lleva a un mayor porcentaje de animales curados en comparación con el tratamiento tradicional? Este “con qué frecuencia” es el valor p ubicuo en la inferencia estadística. Si ocurre con frecuencia, es decir, el valor p es mayor que un umbral con el que nos sentimos cómodos (el nivel de significancia, a menudo 5%), entonces lo que vimos en el experimento puede deberse al azar y, por lo tanto, no se rechaza la hipótesis nula. Si ocurre raramente, entonces el azar solo no puede llevar a la diferencia observada y, por lo tanto, se rechaza la hipótesis nula (¡y puedes organizar una fiesta si tu equipo descubrió el nuevo medicamento!). Si observas cuidadosamente lo que realmente hicimos con las permutaciones es simular la hipótesis nula, es decir, que los dos grupos de tratamiento son equivalentes.
Piensa nuevamente en cómo se ha formulado la hipótesis nula, ya que esto determina cómo se llevará a cabo la prueba de permutación. En el ejemplo anterior, queremos ver con qué frecuencia el azar nos haría creer que la hipótesis alternativa es verdadera, es decir, que el nuevo medicamento es más efectivo. Esto significa que la hipótesis nula, que es complementaria a la hipótesis alternativa, afirma que el nuevo medicamento es menos eficiente o tan eficiente como el tratamiento tradicional. Esto también se conoce como una prueba unidireccional (en contraposición a una prueba bidireccional, también conocida como una prueba de dos vías). Piénsalo de otra manera. No queremos ser engañados por el azar en creer que el nuevo medicamento es más efectivo. Ser engañado en la otra dirección no importa, porque de todos modos no pretendemos reemplazar el tratamiento tradicional. La prueba de dos vías daría lugar a valores p más altos y, por lo tanto, es más conservadora porque tiene una mayor probabilidad de rechazar la hipótesis nula. Sin embargo, esto no significa que deba usarse si no es la prueba correcta para usar.
La prueba de permutación se puede formular en el caso más general de la siguiente manera. Supongamos que hay Gᵢ, i=1,..,Nᴳ grupos con cardinalidad ∣ Gᵢ ∣, i=1,..,Nᴳ:
- Agrupe todos los puntos de datos de todos los grupos; esto simula básicamente la hipótesis nula al asumir que no ha ocurrido nada.
- Asigne aleatoriamente ∣ G₁ ∣ puntos al grupo G₁ sin reemplazo, asigne ∣ G₂ ∣ puntos al grupo G₂ sin reemplazo, …, hasta que todos los puntos hayan sido asignados.
- Calcule la estadística de interés como se calcula en las muestras originales y registre el resultado.
- Repita el procedimiento anterior un gran número de veces y registre cada vez la estadística de interés.
Esencialmente, el procedimiento anterior construye una distribución con la estadística de interés. La probabilidad de observar un valor que sea al menos tan extremo como la diferencia observada es el valor p. Si el valor p es grande, entonces la casualidad puede producir fácilmente la diferencia observada y no hemos hecho ningún descubrimiento (aún).
“Piense en el valor p como la probabilidad de observar un resultado tan extremo como nuestra observación si la hipótesis nula fuera cierta”.
La formulación anterior es bastante genérica. Volviendo a nuestro ejemplo, solo tenemos dos grupos, uno para el nuevo medicamento y otro para el tratamiento tradicional. El código para realizar la prueba de permutación es el siguiente.
Hacemos 10,000 permutaciones, lo que lleva aproximadamente 30 segundos en mi máquina. La pregunta clave es: ¿con qué frecuencia la casualidad hace que el nuevo medicamento sea un 1.5% o más eficiente que el tratamiento tradicional? Podemos visualizar el histograma de las diferencias de eficacia simuladas y también calcular el valor p como se muestra a continuación.
Esto da como resultado el siguiente histograma:

Las barras rojas indican cuando se encontró que el nuevo medicamento era más efectivo que el tratamiento tradicional por casualidad. Esto no parece tan raro. El valor p es 0.1084. Suponiendo que queríamos realizar la prueba con un nivel de significancia de a=0.05, esto significa que no se puede rechazar la hipótesis nula. No hay nada que celebrar en este momento. Si has organizado una fiesta, debes cancelarla. O tal vez posponerla.
“Piense en a como la tasa de falsos positivos, es decir, asumiendo que la hipótesis nula es cierta, concluiríamos que hay una diferencia estadísticamente significativa el 5% de las veces si repitiéramos el experimento”.
Hay cierto motivo para ser optimista. La prueba A/B que acabamos de realizar puede tener dos resultados posibles: o bien hay un efecto (en nuestro caso, el nuevo medicamento es más efectivo que el tratamiento tradicional) o no hay suficiente evidencia para concluir que hay un efecto. La prueba no concluye que no haya efecto. Después de todo, el nuevo medicamento podría ser más efectivo. Simplemente no podemos demostrar esto todavía con el nivel de significancia elegido y los datos hasta ahora. La prueba esencialmente nos ha protegido contra un falso positivo (también conocido como error de Tipo 1); pero podría ser que tengamos un falso negativo (también conocido como error de Tipo 2). Esto es lo que espera el equipo.
Hay otra pregunta que podríamos hacer. ¿Cuál sería la diferencia observada necesaria para concluir que el nuevo medicamento es más efectivo que el tratamiento tradicional? Claramente, el 1.5% no es suficiente, pero ¿cuánto sería suficiente? La respuesta se puede obtener fácilmente del histograma producido. Podemos “mover” la línea vertical correspondiente a la diferencia observada hacia la derecha, hasta que la cola con las barras rojas represente el 5% del área total; o en otras palabras, usar el percentil 95% np.percentile(differences, 95)
, que da como resultado 0.0203 o 2.03%. Un poco más que el 1.5% que observamos desafortunadamente, pero no está muy lejos.
Usando un nivel de significancia de 0.05, no rechazaríamos la hipótesis nula si el aumento en la eficacia del tratamiento con el nuevo medicamento está en el intervalo (-∞, 0.0203]. Esto también se conoce como intervalo de confianza: el conjunto de valores de la estadística observada que no rechazaría la hipótesis nula. Debido a que usamos un nivel de significancia del 5%, este es un intervalo de confianza del 95%. Suponiendo que el nuevo medicamento no sea más eficiente, entonces al repetir el experimento múltiples veces se obtendría una diferencia en la eficacia dentro del intervalo de confianza el 95% de las veces. Esto es lo que nos dice el intervalo de confianza. El valor p superará a si y solo si el intervalo de confianza contiene el aumento observado en la eficacia, lo que significa que no se puede rechazar la hipótesis nula. Estas dos formas de verificar si se puede rechazar la hipótesis nula son, por supuesto, equivalentes.
Con el número de animales probados hasta ahora no podemos rechazar la hipótesis nula, pero no estamos muy lejos del límite del intervalo de confianza. El equipo es optimista, pero necesitamos recopilar más pruebas convincentes de que el nuevo medicamento es más efectivo. Pero, ¿cuántas pruebas más? Revisaremos esto en la siguiente sección, ¡ya que ejecutar una simulación con remuestreo puede ayudarnos a responder esta pregunta también!
Antes de concluir esta sección, es importante destacar que también podríamos usar una prueba estadística clásica para aproximar el valor p. La tabla presentada anteriormente también se conoce como tabla de contingencia, que proporciona la interrelación entre dos variables y se puede utilizar para establecer si hay una interacción entre ellas. La independencia de las dos variables se puede examinar utilizando una prueba de chi-cuadrado a partir de la matriz de contingencia, pero se debe tener cuidado de no realizar una prueba bilateral (no se probó exhaustivamente, pero parece que scipy utiliza una prueba bilateral como predeterminada; esto dará lugar a valores p más altos). ¿No es bueno saber cómo ejecutar una prueba de permutación antes de adentrarse en la guía de usuario de las bibliotecas estadísticas?
Estimación de potencia
Seguramente uno se sentiría decepcionado dado que no podemos demostrar que el aumento de la eficacia del nuevo medicamento sea estadísticamente significativo. Bien podría ser que el nuevo medicamento sea realmente mejor después de todo. Estamos dispuestos a realizar más trabajo tratando a más animales, pero ¿cuántos animales necesitaríamos? Aquí es donde entra en juego la potencia.
La potencia es la probabilidad de detectar un tamaño de efecto dado para un tamaño de muestra y nivel de significancia dados. Digamos que esperamos que el nuevo medicamento aumente la eficacia del tratamiento en un 1,5% en comparación con el tratamiento tradicional. Suponiendo que hemos tratado a 3000 animales con cada tratamiento y hemos fijado el nivel de significancia en 0,05, la potencia de la prueba es del 80%. Esto significa que si repetimos el experimento muchas veces, veremos que en 4 de cada 5 experimentos concluimos que el nuevo medicamento es más efectivo que el tratamiento tradicional. En otras palabras, la tasa de falsos negativos (error de Tipo II) es del 20%. Los números anteriores son, por supuesto, hipotéticos. Lo importante es que las cuatro cantidades: tamaño de muestra, tamaño de efecto, nivel de significancia y potencia están relacionadas y establecer tres de ellas permite calcular la cuarta. El escenario más típico es calcular el tamaño de muestra a partir de las otras tres. Esto es lo que investigamos en esta sección. Como simplificación, asumimos que en cada experimento tratamos al mismo número de animales con el nuevo medicamento y el tratamiento tradicional.
El procedimiento a continuación intenta construir una curva con la potencia como función del tamaño de muestra:
- Crea un conjunto de datos sintético con animales que se supone que han sido sometidos al tratamiento tradicional para que la eficacia del tratamiento sea más o menos la que conocemos (a continuación, lo establezco en 0,8034, que corresponde a la matriz de contingencia anterior).
- Crea un conjunto de datos sintético con animales que se supone que han sido sometidos al tratamiento con el nuevo medicamento agregando el tamaño de efecto que nos gustaría investigar (a continuación, lo establezco en 0,015 y 0,020 para ver su efecto en los resultados).
- Realiza una muestra bootstrap de tamaño n_muestra de cada conjunto de datos sintético (a continuación, lo establezco en los valores 3000, 4000, 5000, 6000 y 7000).
- Realiza una prueba de permutación para determinar la significancia estadística utilizando el enfoque que establecimos en la sección anterior y registra si la diferencia en la eficacia del tratamiento es estadísticamente significativa o no.
- Sigue generando muestras bootstrap y calcula con qué frecuencia la diferencia en la eficacia del tratamiento es estadísticamente significativa; esta es la potencia de la prueba.
Por supuesto, esta es una simulación más larga y, por lo tanto, limitamos el número de muestras bootstrap a 200, mientras que el número de permutaciones en la prueba de significancia también se reduce a 500 en comparación con la sección anterior.
Ejecutar esta simulación de arranque/permutación lleva aproximadamente una hora en una máquina modesta y podría beneficiarse de la multiprocesamiento que está más allá del alcance de este artículo. Podemos visualizar fácilmente los resultados utilizando matplotlib:
Esto produce este gráfico:

¿Qué aprendemos de esto? Si esperamos que el nuevo medicamento sea un 1,5% más efectivo, entonces para demostrar esto con una potencia del 80%, necesitaríamos tratar a más de 7000 animales. Si el tamaño de efecto es mayor, es decir, un 2%, necesitaríamos trabajar menos, ya que ~4500 animales serían suficientes. Esto es intuitivo. Es más fácil detectar un efecto grande que un efecto pequeño. Decidir realizar un experimento tan grande requiere un análisis de costo/beneficio, pero al menos ahora sabemos lo que se necesita para demostrar que el nuevo medicamento es más efectivo.
También podemos usar statsmodels para calcular el tamaño de muestra requerido:
Esto imprime:
tamaño del efecto: 0.015, tamaño de muestra: 8426.09tamaño del efecto: 0.020, tamaño de muestra: 4690.38
Los resultados de la simulación parecen consistentes. En la simulación llegamos a un tamaño de muestra de 7000 que no fue suficiente para alcanzar un poder de 0.8 cuando el tamaño del efecto fue del 1.5%, como también se observa utilizando la función proportion_effectsize
.
Conclusiones
Espero que hayas disfrutado este artículo. Personalmente, encuentro satisfactorio poder investigar todos estos conceptos estadísticos desde cero utilizando el remuestreo y las permutaciones simples.
Antes de terminar, es importante tener precaución. Este artículo pone mucho énfasis en el valor p, el cual está siendo cada vez más criticado. La verdad es que la importancia del valor p ha sido exagerada históricamente. El valor p indica qué tan incompatibles son los datos con un modelo estadístico o una prueba de permutación que representa la hipótesis nula. El valor p no es la probabilidad de que la hipótesis alternativa sea verdadera. Además, un valor p que muestra que se puede rechazar el valor nulo no significa que el tamaño del efecto sea importante. Un tamaño de efecto pequeño puede ser estadísticamente significativo, pero es tan pequeño que no es importante.
Referencias
- Estadística introductoria y análisis: Una perspectiva de remuestreo por Peter Bruce (Wiley, 2014)
- Estadística práctica para científicos de datos: Más de 50 conceptos esenciales utilizando R y Python por Peter Bruce, Andrew Bruce, Peter Gedeck (O’Reilly, 2020)
- Interpretación de resultados de pruebas A/B: falsos positivos y significancia estadística, un blog tecnológico de Netflix