Este post contiene algunas ideas sobre el bootstrapping y como aplicarlo en 3 simples pasos
El bootstrap o estimación de Monte Carlo es un método de remuestreo no paramétrico propuesto por Bradley Efron en 1979. La idea central de este método es simple; dada una muestra aleatoria con n observaciones dicha muestra es tratada como si fuera toda la población de las cuál extraeremos B muestras con reemplazamiento.
Para cada remuestreo se calculará el valor del estimador bootstrap que se utilizará para estimar la variabilidad muestral. Tal y como los estudios teóricos han demostrado, este enfoque proporciona una buena aproximación de la distribución de los estimadores, lo cual permitirá describir algunas de sus propiedades muestrales, así como el cálculo de intervalos de confianza y la realización de contrastes de hipótesis.
El procedimiento bootstrap es útil para:
- Valorar el sesgo y el error muestral de un estadístico calculado a partir de una muestra.
- Establecer un intervalo de confianza para un parámetro estimado.
- Realizar una prueba de hipótesis respecto a uno o más parámetros poblacionales.
Adicionalmente, el bootstrapping tiene varios métodos para estimar intervalos de confianza:
• Percentile Bootstrap
• Standard Bootstrap
• Bootstrap-t (“Pivotal Bootstrap”)
• Bias-corrected (BCa) Bootstrap
Cuál método debemos seleccionar? Bueno esto es ejercicio para el “buen” sentido común de cada quién.
Antes de empezar con nuestro ejemplo quiero recalcar que si la muestra original es una mala representación de la población (todas, absolutamente todas las muestras son representativas!!! Ahora bien, que sean una buena o mala representación es otro tema) no importa que técnica de muestreo utilicen, los resultados los llevarán a tomar las decisiones equivocadas!.
Veamos un ejemplo detallado de cómo construir un intervalo de confianza del 95% para la media de la siguiente manera:
1- Generar una muestra aleatoria de tamaño 20 que siga una distribución normal con media=50 y dev std=15.
2- Calcular algunos estadísticos como la media, la desviación estándar, error estándar y el rango.
3- Generar B=100 muestras con reemplazamiento a partir de nuestra muestra original.
4- Calcular la media para cada una de las B muestras.
5- Aplicar el método de los percentiles para calcular un intervalo de confianza del 95% para la media
6- Comparar el IC bootstrap con el IC asumiendo que la muestra sigue una distribución normal como lo es en nuestro caso.
7- Bootstrap en 3 pasos!!!
Paso 1: Nuestra muestra aleatoria de normalmente distribuida de tamaño 20
data muestra;
do i=1 to 20;
x=int(RAND('NORMAL',50,15));
output;
end;
drop i;
run;
Paso 2: Medidas de tendencia central
proc means mean median std stderr range;run;
Mean =49.0500000
Median =47.0000000
Std Dev=16.4299950
Stderr= 3.5327602
Range =67.0000000
Paso 3: Generar 100 muestras con reemplazamiento
proc surveyselect data=muestra out=boot /* a */
seed=441244 /* b */
method=urs /* c */
samprate=1 /* d */
outhits /* e */
rep=100; /* f */
run;
Vamos a detenernos aquí para explicar el Proc SurveySelect. El procedimiento SurveySelect ofrece una variedad de métodos de muestreo para seleccionar muestras aleatorias basadas en simples o complejos diseños de muestras.
a – Invocamos SurveySelect y definimos archivo fuente (data o población) y nuestro archivo de salida (nuestra muestra o out)
b – definimos la semilla con que iniciaremos nuestro generador de números pseudo-aleatorios con la opción seed
c – definimos el método de muestreo, recuerden que necesitamos generar B muestras aleatorias con reemplazamiento (también llamada Unrestricted Random Sampling URS)
d – Con la opción SAMPRATE=1 obtenemos muestras del mismo tamaño que la muestra original.
e - Outhits indica cuanta veces fue seleccionada una observación para construir la muestra Bi
f – Rep nos permite seleccionar el número de muestras a generar
Paso 4: Calcular la media para cada una de las B muestras
proc univariate data=boot noprint;
var x;
by Replicate;
output out=meanall mean=mean;
run;
Replicate es una variable automática generada por el SurveySelect que indica que el nro de la muestra replicada.
Nuevamente vamos a detenernos aquí y vamos a echar un vistazo al histograma de las medias.

Interesante no? A que les recuerda esa distribución?
Paso 5: Aplicar el método de los percentiles para calcular un intervalo de confianza del 95% para la media.
Para generar este intervalo solo necesitamos calcular 2.5-ésimo percentil y el 97.5-ésimo percentil, estos los podemos obtener con el Univariate.
proc univariate data=outall;
var mean;
output out=final pctlpts=2.5, 97.5 pctlpre=ic;
run;
Con un 95% de confianza podemos decir que la media está entre (41.85, 54.6)
Paso 6: Calcular un intervalo de confianza del %95 para media de una distribución normal con media=50 y dev std=15. Toda la información que necesitamos ya la hemos calculado en el paso 2 así que solo queda construir el intervalo de la siguiente manera:
Media +- ( t ( 1 - alfa / 2 ) ) * STDERR
DATA Normal_IC ;
LI = 50 - ( TINV ( 0.95 , 20-1 ) * 3.5327602 ) ;
LU = 50 + ( TINV ( 0.95 , 20-1 ) * 3.5327602 ) ;
output;
RUN ;
Nuestro intervalo del 95% es (43.89,56.10) el cual es muy semejante al que calculamos usando bootstrapping.
Paso 7: Solo en 3 Pasos!!!
*Paso 1;
proc surveyselect data=muestra out=boot
seed=441244
method=urs
samprate=1
outhits
rep=100;
run;
*Paso 2;
proc univariate data=boot noprint;
var x;
by Replicate;
output out=meanall mean=mean;
run;
*Paso 3;
proc univariate data=meanall;
var mean;
output out=interval pctlpts=2.5, 97.5 pctlpre=ic;
run;
Para descargar el programa completo hagan clic aquí.
Un comentario final, esto es solo una breve intro al bootstrapping, este tema tiene mucho bemoles y les recomiendo leer un texto más avanzados sobre este tema.
SASludos,
Alberto

0 comentarios:
Publicar un comentario en la entrada