Pruebas de Bootstrap para Principiantes

'Bootstrap Tests for Beginners'

Parte 2 de Pruebas no paramétricas para principiantes

Foto de Mohamed Nohassi en Unsplash

En la Parte 1 de esta serie, presenté pruebas simples de rango y signo como introducción a las pruebas no paramétricas. Como se mencionó en la Parte 1, el bootstrap también es un método no paramétrico popular para la inferencia estadística, basado en el re-muestreo de datos observados. Ha ganado una gran popularidad (especialmente en el ámbito académico), desde que Bradley Efron lo introdujo por primera vez en la década de 1980. Efron y Tibshirani (1994) proporcionan una encuesta introductoria y completa del método bootstrap. Su aplicación ha sido extensiva en los campos de la ciencia estadística, con el libro anterior atrayendo más de 50,000 citas de Google Scholar hasta la fecha.

En esta publicación, presento el método bootstrap para principiantes de una manera intuitiva, con ejemplos simples y código R.

Introducción

Como se mencionó en la Parte 1, los elementos clave de la prueba de hipótesis incluyen:

  1. Las hipótesis nula y alternativa (H0 y H1)
  2. La estadística de prueba
  3. La distribución muestral de la estadística de prueba bajo H0
  4. La regla de decisión (valor p o valor crítico, en un nivel dado de significación)

En la generación de la distribución muestral de una estadística de prueba,

  • las pruebas paramétricas (como la prueba t o la prueba F) suponen que la población sigue una distribución normal. Si la población no es normal, entonces se utiliza una distribución normal como aproximación a la distribución muestral, por virtud del teorema del límite central (llamado aproximación normal asintótica);
  • las pruebas de rango y signo utilizan el rango y los signos de los puntos de datos para generar la distribución muestral exacta, como se discutió en la Parte 1;
  • el bootstrap genera o aproxima la distribución muestral de una estadística, basada en el re-muestreo de los datos observados (con reemplazo), de manera similar a como se toman muestras de forma aleatoria y repetida de la población.
  • Al igual que las pruebas de rango y signo, el bootstrap no requiere la normalidad de la población o la aproximación normal asintótica basada en el teorema del límite central.
  • En su forma básica, el bootstrap requiere muestreo aleatorio puro de una población de media y varianza fijas (sin normalidad), aunque existen métodos de bootstrap aplicables a datos dependientes o heterocedásticos.

En esta publicación, se presenta el método bootstrap básico para los datos generados al azar a partir de una población con ejemplos. Para los métodos de bootstrap para estructuras de datos más generales, se presentan sus detalles breves y recursos de R en una sección separada.

Ejemplos de juguete para el bootstrap

Ejemplo 1: X = (1, 2, 3)

Supongamos que un investigador observa un conjunto de datos X = (1, 2, 3) con una media de muestra de 2 y una desviación estándar ( s ) de 1. Suponiendo una población normal, la distribución muestral de la media de muestra (Xbar) bajo H0: μ = 2 es

donde s = 1 y μ es la media poblacional. Esto significa que, bajo la aproximación normal, la media de muestra sigue una distribución normal con media 2 y una varianza de 1/3.

El bootstrap re-muestrea los datos observados X = (1, 2, 3) con reemplazo, dando igual probabilidad de 1/3 a sus miembros. La Tabla 1 a continuación presenta todos los 27 posibles resultados de estos re-muestreos (o pseudo-datos) X* = (X1*, X2*, X3*) con los valores medios de cada resultado.

Tabla 1: Muestreo con reemplazo de X (Imagen creada por el autor)

La media de estos 27 resultados es 2 y la varianza es 0,23. La distribución de las medias de muestra de estos X* representa la distribución bootstrap exacta, que se representa en la Figura 1 a continuación:

Figura 1: Distribución bootstrap exacta y su estimación de densidad (Imagen creada por el autor)

La gráfica de barras a la izquierda muestra la distribución bootstrap exacta, mientras que la estimación de densidad del kernel de la distribución bootstrap (en rojo) se traza junto con la distribución normal con la media 2 y varianza 1/3 (en negro).

Ejemplo 2: X = (1, 2, 6)

Ahora consideremos el caso donde X = (1, 2, 6) con una media muestral de 3 y s = 2,65. El cálculo similar al de la Tabla 1 muestra que la media de X* es 3 con una varianza de 1,62. La distribución bootstrap exacta se muestra en la Figura 2 a continuación, junto con una estimación de densidad de kernel (en rojo), que muestra una clara desviación de la distribución normal con la media 3 y la varianza de s ²/n (en negro).

Figura 1: Distribución bootstrap exacta y su estimación de densidad (Imagen creada por el autor)

A partir de estos dos ejemplos, podemos afirmar los siguientes puntos:

  • El Ejemplo 1 es el caso en que el conjunto de datos X es exactamente simétrico en torno a su media. La distribución de muestreo bootstrap para la media muestral también es simétrica, bien aproximada por una distribución normal.
  • El Ejemplo 2 es el caso en que el conjunto de datos X es asimétrico en torno a su media, lo que se refleja bien en la forma de la distribución de muestreo bootstrap. Sin embargo, la distribución normal no puede reflejar esta asimetría.
  • Dado que la distribución de la población es desconocida en estos ejemplos, es difícil evaluar si la distribución bootstrap es una mejor representación de la verdadera distribución de muestreo de la media muestral.
  • Sin embargo, observamos que el bootstrap tiene la capacidad de reflejar posibles asimetrías en la distribución de la población, que la aproximación normal asintótica no puede capturar.

Se debe tener en cuenta que el bootstrap es capaz de capturar muchas propiedades no normales de una población, como la asimetría, la cola gruesa y la bimodalidad, que no pueden ser capturadas por una aproximación normal.

Muchos estudios académicos que comparan el bootstrap y la aproximación normal asintótica proporcionan fuertes evidencias de que el bootstrap en general funciona mejor, al capturar las características de la verdadera distribución de muestreo, especialmente cuando el tamaño de la muestra es pequeño. Informan que, a medida que el tamaño de la muestra aumenta, los dos métodos muestran propiedades similares, lo que significa que el bootstrap debe ser generalmente preferido cuando el tamaño de la muestra es pequeño.

Bootstrap para X = (X1, …, Xn)

Los ejemplos anteriores presentan el caso donde n = 3, donde podemos obtener la distribución bootstrap exacta para todas las 27 posibles muestras. Teniendo en cuenta que el número de todas las posibles muestras es nⁿ, calcular la distribución bootstrap exacta con nⁿ muestras puede ser demasiado pesado computacionalmente, para un valor general de n. Sin embargo, este proceso no es necesario, ya que una simulación de Monte Carlo puede proporcionar una aproximación bastante precisa a la distribución bootstrap exacta.

Supongamos que los datos X se obtienen aleatoriamente de una población con media y varianza fijas. Supongamos que la estadística de interés, como la media muestral o el estadístico t, se denota como T(X). Entonces,

  1. obtenemos X* = (X₁*, …, Xₙ*) por remuestreo con reemplazo de X, dando puramente al azar la probabilidad igual a cada miembro de X.
  2. Dado que no podemos hacer esto para todas las posibles nⁿ muestras, repetimos lo anterior suficientes veces B, como 1000, 5000 o 10000. Al hacer esto, tenemos B diferentes conjuntos de X*, que pueden escribirse como {X*(i)}, donde i = 1, …, B.
  3. A partir de cada X*(i), se calcula la estadística de interés [T(X*)]. Entonces tenemos {T(X*,i)} (i = 1, …, B), donde T*(X*,i) es T(X*) calculado a partir de X*(i).

La distribución bootstrap {T(X*,i)} se utiliza como una aproximación a la distribución bootstrap exacta, así como a la distribución de muestreo desconocida de T.

Como ejemplo, he generado X = (X1, …, X20) desde

  • la distribución F con 2 y 10 grados de libertad [F(2,10)],
  • la distribución chi-cuadrado con 3 grados de libertad [chisq(3)],
  • la distribución t-Student con 3 grados de libertad [t(3)], y
  • la distribución log-normal con media 0 y varianza 1 (lognormal).

La Figura 3 a continuación traza las estimaciones de densidad de {T(X*,i)}(i = 1,…., B), donde T es la media y B = 10000, en comparación con las densidades de la distribución normal con los valores de media y varianza correspondientes a los de X. Las distribuciones bootstrap pueden diferir de la distribución normal, especialmente cuando la distribución de la población subyacente se aleja sustancialmente de una distribución normal.

Figura 3: Distribución Bootstrap (roja) vs. Distribución Normal (negra) (Imagen Creada por el Autor)

El código R para las simulaciones de Monte Carlo anteriores y las gráficas se presentan a continuación:

n=20    # Tamaños de muestraset.seed(1234)pop = "lognorm"      # tipo de poblaciónif (pop=="F(2,10)") x=rf(n,df1=2,df2=10)if (pop=="chisq(3)") x=rchisq(n,df=3)if (pop=="t(3)") x=rt(n,df=3)if (pop=="lognorm") x=rlnorm(n)# Cálculo de la media bootstrap B=10000          # número de iteraciones de bootstrap stat=matrix(NA,nrow=B)for(i in 1:B){  xboot=sample(x,size=n,replace = TRUE)  stat[i,] = mean(xboot)}# Gráficasplot(density(stat),col="red",lwd=2,main=pop,xlab="")m=mean(x); s=sd(x)/sqrt(n)curve(dnorm(x,mean=m,sd=s),add=TRUE, yaxt="n")rug(stat)

La prueba y el análisis bootstrap se realizan en función de las curvas rojas anteriores, que son {T(X*,i)}, en lugar de las distribuciones normales en negro.

  • Las estadísticas inferenciales, como el intervalo de confianza o el valor p, se obtienen a partir de {T(X*,i)}, de la misma manera que lo hacemos usando una distribución normal.
  • La distribución bootstrap puede revelar información adicional y más detallada, como la simetría, la cola gruesa, la no normalidad, la bimodalidad y la presencia de valores atípicos, con respecto a las propiedades de la población.

Supongamos que T(X) es la media muestral como se mencionó anteriormente.

El intervalo de confianza bootstrap para la media poblacional se puede obtener tomando percentiles apropiados de {T(X*,i)}. Por ejemplo, sea {T(X*,i;θ)} el percentil θ de {T(X*,i)}. Entonces, el intervalo de confianza bootstrap del 95% se obtiene como el intervalo [{T(X*,i;2.5)},{T(X*,i;97.5)}].

Supongamos que T(X) es la estadística de prueba t para H0: μ = 0 contra H0: μ > 0. Entonces, el valor p bootstrap se calcula como la proporción de {T(X*,i)} mayor que el valor T(X) de la muestra original. Es decir, el valor p se calcula análogamente al caso de la distribución normal, dependiendo de la estructura de H1.

Tabla 2: Intervalos de Confianza Bootstrap vs. Normal del 95% (Imagen Creada por el Autor)

La Tabla 2 anterior presenta el intervalo de confianza bootstrap en comparación con el intervalo de confianza normal asintótico, ambos con un 95% de confianza. Las dos alternativas proporcionan intervalos similares cuando la distribución de la población es t(3) o chisq(3), pero pueden ser bastante diferentes cuando la población sigue las distribuciones F(2,10) o lognorm.

Prueba t Bootstrap en R

El método bootstrap se puede aplicar a pruebas t de una y dos muestras. En este caso, la estadística de prueba de interés T(X) es la estadística t de prueba, y su distribución bootstrap se puede obtener como se indicó anteriormente. En R, el paquete “MKinfer” proporciona las funciones para las pruebas bootstrap.

Consideremos X e Y en el ejemplo utilizado en la Parte 1:

x = c(-0.63, 0.18,-0.84,1.60,0.33, -0.82,0.49,0.74,0.58,-0.31,      1.51,0.39,-0.62,-2.21,1.12,-0.04,-0.02,0.94,0.82,0.59)y=c(1.14,0.54,0.01,-0.02,1.26,-0.29,0.43,0.82,1.90,1.51,    1.83,2.01,1.37,2.54,3.55, 3.99,5.28,5.41,3.69,2.85)# Instalar el paquete MKinferlibrary(MKinfer)# Prueba de una muestra para X con H0: mu = 0boot.t.test(x,mu=0)# Prueba de una muestra para Y con H0: mu = 1boot.t.test(y,mu=1)# Prueba de dos muestras para X e Y con H0: mu(x) - mu(y) = -1boot.t.test(x,y,mu=-1)

Los resultados se resumen en la siguiente tabla (todas las pruebas asumen una H1 bilateral):

Tabla 3: Intervalos de Confianza al 95% y valores p (Imagen creada por el autor)
  • Para probar μ(X) = 0, la media muestral de X es 0.19 y la estadística t es 0.93. Los intervalos de confianza y los valores p bootstrap y asintóticos proporcionan resultados inferenciales similares de no rechazar H0, pero el intervalo de confianza bootstrap es más ajustado.
  • Para probar μ(Y) = 1, la media muestral de Y es 1.99 y la estadística t es 2.63. Los intervalos de confianza y los valores p bootstrap y asintóticos proporcionan resultados inferenciales similares de rechazar H0 al nivel de significación del 5%, pero el intervalo de confianza bootstrap es más ajustado con un valor p más bajo.
  • Para probar H0: μ(X) — μ(Y) = — 1, la diferencia media entre X e Y es -1.80 y la estadística t es -1.87. Los intervalos de confianza y los valores p bootstrap y asintóticos proporcionan resultados inferenciales similares de rechazar H0 al nivel de significación del 10%.

Métodos Bootstrap para estructuras de datos más generales

Como se mencionó anteriormente, los métodos bootstrap también se han desarrollado para el modelo de regresión lineal, la predicción de series temporales y para los datos con estructuras más generales. Varias extensiones importantes de los métodos bootstrap se resumen a continuación:

  • Para el modelo de regresión lineal, el bootstrap se puede realizar mediante el muestreo de los residuos o el muestreo de los casos: ver el paquete “car” en R.
  • El bootstrap se puede aplicar a la predicción de series temporales basada en el modelo autorregresivo: ver el paquete “BootPR” en R.
  • Para datos de series temporales con estructura de dependencia serial desconocida, se puede utilizar el bootstrap estacionario (o bootstrap de bloques móviles). Esto implica el muestreo de bloques de observaciones de series temporales. El paquete R “tseries” proporciona una función para este método.
  • Para datos con heterocedasticidad de forma desconocida, se puede utilizar el bootstrap wild, utilizando el paquete R “fANCOVA”. Esto re-muestrea los datos escalando con una variable aleatoria con media cero y varianza unitaria para que se replique efectivamente la estructura heterocedástica.

Conclusión

Este post ha revisado el método bootstrap como una prueba no paramétrica donde el muestreo repetitivo de los datos observados se utiliza como una forma de calcular o aproximar la distribución de muestreo de una estadística. Aunque solo se cubre en este post el método bootstrap para el intervalo de confianza y el valor p para la prueba de la media poblacional, la aplicación del bootstrap es extensa, desde el análisis de regresión hasta los datos de series temporales con estructura de dependencia desconocida.

Muchos estudios académicos han informado que la prueba de bootstrap a menudo tiene un mejor desempeño que la aproximación normal asintótica, especialmente cuando el tamaño de la muestra es pequeño o moderado.

Por lo tanto, en muestras pequeñas, se recomienda encarecidamente a los investigadores en estadística y aprendizaje automático que utilicen el bootstrap como una alternativa útil a la inferencia estadística convencional basada en la aproximación normal asintótica.