Top Banner
etodos de Remuestreo Tema 1. Introducci´ on a los M´ etodos de Remuestreo basado en B. Efron, R. Tibshirani (1993). An Introduction to the bootstrap. O. Kirchkamp (2017). Resampling methods. Curso 2017/18 1/55
55

M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Dec 03, 2018

Download

Documents

truongthuy
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Metodos de RemuestreoTema 1. Introduccion a los Metodos de

Remuestreo

basado enB. Efron, R. Tibshirani (1993). An Introduction to the bootstrap.

O. Kirchkamp (2017). Resampling methods.

Curso 2017/18

1/55

Page 2: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Introduccion

I La Estadıstica es una ciencia puramente experimental que aprendede la experiencia, especialmente de la que aparece de manerasecuencial .

I Se puede considerar que comienza alrededor del siglo XVII cuandoGraunt (UK) empezo a usar tablas de mortalidad.

I Actualmente se aplica en todas las ciencias que requierentratamiento de la informacion, desde ciencias biomedicas, psicologıa,educacion, economıa, hasta el estudio de las partıculas en fısicacuantica o de galaxias extremadamente distantes.

2/55

Page 3: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Introduccion

I Pero la mayorıa de las personas y los dispositivos no son muyeficientes para encontrar patrones en un mar de datos con ruido.

I Es decir, tenemos tendencia a contemplar patrones inexistentes fueraque suceden para satisfacer nuestros propositos: astrologıa...

I La teorıa estadıstica intenta proporcionar metodos optimos para labusqueda de senales reales en ambientes ruidosos y tambienproporciona controles estrictos contra la sobre-interpretacion depatrones al azar.

3/55

Page 4: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Introduccion

La teorıa estadıstica trata de responder a tres preguntas basicas:

1. ¿Como debo recoger o muestrear mis datos?

2. ¿Como debo analizar y resumir los datos que he recogido?

3. ¿Como son de exactos los resumenes de mis datos?

El punto 3 constituye parte del proceso conocido como InferenciaEstadıstica.

4/55

Page 5: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Introduccion

I Las tecnicas de remuestreo son tecnicas desarrolladas hace pocosanos para calcular estadısticos, basandose en tecnicascomputacionales intensivas que evitan los calculos complejos de lateorıa estadıstica tradicional.

I Aunque el uso de las tecnicas de remuestreo implican el uso deconceptos tradicionales de inferencia estadıstica, cambiaradicalmente su implementacion.

I Mediante el uso de computacion intensiva se aplican las tecnicas demanera flexible, facil y con un mınimo de aparato matematico.

5/55

Page 6: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo

I Los tres conceptos basicos: recogida de datos, resumen de losmismos e inferencia se ilustran en la noticia aparecida en el NewYork Times.

I Se hizo un estudio sobre si pequenas dosis de aspirina podrıanprevenir los ataques al corazon en personas de mediana edad.

I Los datos del estudios se tomaron de manera eficiente mediante unestudio controlado, aleatorizado y doble ciego.

6/55

Page 7: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

7/55

Page 8: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo

I La mitad de las personas recibio una sustancia placebo y laspersonas se asignaron de manera aleatoria a los tratamientos.

I Tanto los sujetos como las personas que trabajaban en el estudio nosabıan la identificacion de tanto el tipo de las dosis como de lospacientes.

I Los estadısticos de resumen del artıculo eran muy simples:

Ataques Corazon No Ataque CorazonAspirina 104 11037Placebo 189 11034

8/55

Page 9: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo

I A simple vista parece que hay menos ataques de corazon en elgrupo de aspirina.

I La razon de odds (la razon o ratio entre ambos ratios de ataques lacorazon) es

θ = 104/11037189/11034 = 0,55

Ver

https :// es.wikipedia.org /wiki/Raz %C3 %B3n_de_ momios

I Segun este estudio, las personas que toman aspirinas tienen casi lamitad de riesgo de sufrir un ataque al corazon.

9/55

Page 10: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo

I Realmente θ es solo un estimador del valor poblacional desconocido.

I La muestra parece suficientemente grande en el estudio: 22071, perola conclusion de que la aspirina funciona bien se basa en solo 293casos observados de ataques al corazon.

I ¿Se puede asegurar que se obtendrıa el mismo resultado si tomamosotra muestra distinta?

I Usando estadıstica clasica, aproximando mediante la distribucionnormal, se obtiene que un intervalo al 95 % para el verdadero valor θes 0,43 < θ < 0,70

I Parece obvio que nunca excede el valor de 1, es decir que la aspirinaen cualquier caso no es significativamente mala para la salud.

10/55

Page 11: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Razon de odds y distribucion asintotica

I Dada una tabla de contingencia 2 × 2

C DA n11 n12

B n21 n22

I El estimador que se utiliza para la razon de odds es

θ = n11n22n12n21

I La distribucion de este estimador es muy asimetrica por lo que paraconsiderar una aproximacion a la normal es mejor tomar latransformacion log(θ).

11/55

Page 12: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Razon de odds y distribucion asintotica

I Una estimacion del error estandar de log(θ) (aplicando el metododelta) es

σlog(θ) =√

1n11

+ 1n12

+ 1n21

+ 1n22

de modo que el correspondiente intervalo de Wald es

log(θ) ± z α2σlog(θ)

I Si se toman la funcion exponencial (antilogaritmo) de los extremosse obtiene el intervalo correspondiente para θ.

I El test es algo conservador (la probabilidad de cubrimiento es algomayor que el nivel nominal).

12/55

Page 13: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo sobre aspirina

(teta = (104/ 11037) /(189/ 11034))

[1] 0 .550115

SE = sqrt (1/104 + 1/ 11037 + 1/189 + 1/ 11034)LSup = log(teta) + qnorm (1 -0 .05/2)*SELInf = log(teta) - qnorm (1 -0 .05/2)*SE

exp(LInf)exp(LSup)

[1] 0 .4324113[1] 0 .699858

13/55

Page 14: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo sobre aspirina

I Por otro lado, en un estudio sobre accidentes cerebrovasculares(ictus) se observo

Ictus No IctusAspirina 119 11037Placebo 98 11034

θ = 119/1103798/11034 = 1,21

I de modo que un intervalo al 95 % para el verdadero valor es θ es0,93 < θ < 1,59

I Este intervalo incluye al valor neutro 1 en el que se obtiene que laaspirina no es significativamente ni mejor ni peor que el placebo.

14/55

Page 15: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Bootstrap

I Se podrıa decir que la aspirina es significativamente beneficiosa paraprevenir ataques al corazon pero no es significativamente perjudicialpara causar accidentes cerebrovasculares. Pero es un tema que siguesiendo controvertido.

I El bootstrap es un metodo de simulacion que se puede usar en casoscomo el anterior.

I El termino bootstrap deriva de la frase to pull oneself up by one’sbootstrap. Se basa en el libro del siglo XVIII las aventuras del baronMunchausen de Rudolph E. Raspe.

I El baron habıa caıdo en el fondo de un profundo lago y se le ocurrioescapar tirando de los cordones de sus propias botas...

15/55

Page 16: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

16/55

Page 17: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ideas de bootstrap en el ejemplo de aspirina

I En el caso del bootstrap, se consideran dos poblaciones:I la primera con 11037 observaciones contiene 119 unos y 10918 cerosI la segunda con 11034 observaciones contiene 98 unos y 10936 ceros.

I Se genera una muestra con reemplazamiento de 11037 elementosde la primera poblacion, y una muestra de 11034 elementos de lasegunda poblacion.

I Se calcula la proporcion respectiva de unos en ambas muestras:

θ∗ = Proporcion de unos en la muestra 1Proporcion de unos en la muestra 2

17/55

Page 18: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Bootstrap

I Se repite este proceso un numero elevado de veces, digamosN = 1000, y se obtiene una muestra de 1000 valores de θ∗.

I Este proceso es facil de implementar con cualquier softwareestadıstico como R o MatLab, por ejemplo.

I Esta muestra de 1000 valores de θ∗ contiene informacion que sepuede usar para realizar inferencia a partir de los datos reales.

I Por ejemplo, Efron y Tibshirani obtienen una desviacion estandarmuestral alrededor de 0,17 y un intervalo de confianza basado en loscuantiles muestrales alrededor de (0,93; 1,60).

18/55

Page 19: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Bootstrap

I Basta tomar el elemento de la muestra que ocupa el lugar 25 y elque ocupa el lugar 975 una vez ordenada la muestra de los 1000valores de θ∗.

I Este resultado es similar al obtenido mediante metodos clasicos deinferencia (basados en la aproximacion a la distribucion normal).

I Pero aquı NO se ha usado ningun argumento de aproximacion deltipo Teorema Central del Lımite como en los metodos clasicos.

19/55

Page 20: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo sobre aspirina

n1 = 11037 + 104 # tamano muestra 1s1 = 104 # numero de exitos

n2 = 11034 + 189 # tamano muestra 2s2 = 189 # numero de exitos

p1 = c(rep (1,s1), rep (0,n1 -s1 )) # muestra 1p2 = c(rep (1,s2), rep (0,n2 -s2 )) # muestra 2

n.bs = 1000 # tomo n.bs muestras bootstrap

# reservo dos vectores de cerosbs1 = rep (0, n.bs)bs2 = rep (0, n.bs)

20/55

Page 21: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo sobre aspirina

for (i in 1: n.bs) {# proporcion de exitos en muestras bootstrap 1 y 2

bs1[i] = sum( sample (p1 , n1 , replace =TRUE ))/n1

bs2[i] = sum( sample (p2 , n2 , replace =TRUE ))/n2

}

# replicas de la estimacion bootstrap del ratioratio = bs1/bs2

# histograma de las estimaciones del ratiolattice :: histogram ( ratio )

21/55

Page 22: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

22/55

Page 23: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo de aspirina

mean( ratio )median ( ratio )

[1] 0 .5571126[1] 0 .5539163

# IC bootstrap son los cuantiles del 0.025 y# 0.975 de la muestra ordenadaquantile (ratio , probs =c(0 .025 ,0 .975 ))

2.5 % 97.5 %0 .4330636 0 .7086892

23/55

Page 24: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo de aspirina

# O bien a mano:# ordenas las estimas del ratio para obtener# los IC bootstrap

rats = sort( ratio )

# IC bootstrap son los cuantiles del 0.025 y# 0.975 de la muestra ordenada

CI.bs = c(rats[ round (0 .025*n.bs )],rats[ round (0 .975*n.bs )])CI.bs

[1] 0 .4310098 0 .7086662

24/55

Page 25: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Estudio de la media

I Por ejemplo, se puede considerar el caso de la media muestral,estudiando su precision como estimador de la media poblacional.

I Ejemplo: Ratones bajo tratamiento o no para prolongar susupervivencia despues de cirugıa invasiva.

Tratamiento 94 197 16 38 99 141 23Control 52 104 146 10 51 30 40 27 46

I Metodo: comparacion de las medias de tiempos de vida entre eltratamiento y el control

I Las medias de cada grupo son1. Tratamiento: 86.862. Control: 56.22

25/55

Page 26: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo ratones

I La diferencia entre ambas medias x − y = 30,63 sugiere que haybastante efecto del tratamiento.

I ¿Como son de precisos estos estimadores?Resulta que las muestras son muy pequenas...

I En el caso de la media, el error estandar estimado basado en nvalores de una m.a.s. x1, x2, . . . , xn es√

s2

n

donde

s2 = 1n − 1

n∑i=1

(xi − x)2

26/55

Page 27: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo ratones

I Si el error estandar de las estimas de las medias es pequeno, entoncesla diferencia entre las medias de supervivencia serıa significativa.

I Los errores estandar de x e y son SEx = 25,24 y SEy = 14,14

I El error estandar para la diferencia x − y es igual a√25,242 + 14,142 = 28,93

I Pero la diferencia observada es 30.63. Si se calcula el estadıstico decontraste: 30,63/28,93 = 1,05, es decir es mucho menor que elvalor 1.96 tıpico de la distribucion normal.

I Esto implica que el tratamiento NO tiene efectos significativos en lasupervivencia de los ratones.

27/55

Page 28: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo de ratones

Trata = c(94 , 197 , 16, 38, 99, 141 , 23)Cont = c(52 , 104 , 146 , 10, 51, 30, 40, 27, 46)

# Grafico stem -and -leaf de grupo tratamientostem(Trata , scale =2)

The decimal point is 1 digit (s) to the right of the |

0 | 62 | 384 |6 |8 | 49

10 |12 |14 | 116 |18 | 7

28/55

Page 29: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo de ratones

# Grafico stem -and -leaf de grupo controlstem(Cont , scale =2)

The decimal point is 1 digit (s) to the right of the |

0 | 02 | 704 | 06126 |8 |

10 | 412 |14 | 6

29/55

Page 30: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo de ratones

ecdf1 = ecdf( Trata )ecdf2 = ecdf(Cont)

X11 ()plot(ecdf2 , verticals =TRUE , do.points =FALSE ,col=’blue ’,xlab="dias",ylab=" Distribucion Empirica ",main="Cont(azul) / Trata ( naranja )" )

plot(ecdf1 , verticals =TRUE , do.points =FALSE , add=TRUE ,col=’orange ’)

30/55

Page 31: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

31/55

Page 32: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo de ratones

Grafico alternativo con ggplot

library ( ggplot2 )Tiempos = c(Trata , Cont)Grupos = as.factor (c(rep(" trata ",length ( Trata )),rep(" control ",length (Cont ))))

Losdatos = data.frame (Tiempos , Grupos )

ggplot (Losdatos , aes(Tiempos , colour = Grupos )) +stat_ecdf ()

32/55

Page 33: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

33/55

Page 34: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo de ratones# Siguiendo a Efron y Tibshirani :mean( Trata )mean(Cont)

[1] 86 .85714[1] 56 .22222

( sdDiff =sqrt(var( Trata )/ length ( Trata )+ var(Cont)/ length (Cont )))

[1] 28 .93607

# Aplicas el TCL(t = (mean( Trata ) - mean(Cont )) / sdDiff )

[1] 1 .058711

2*(1- pnorm (t))

[1] 0 .2897316

34/55

Page 35: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo de ratones

# Pones los valores en un solo vector# Defines otro vector de 1’s y 2’s segun su grupox = matrix (c(Trata , Cont , rep (1, length ( Trata )),rep (2, length (Cont ))) , ncol =2)

# t-test de Studentt.test (x[ ,1] ∼ x[ ,2])

Welch Two Sample t-test

data: x[, 1] by x[, 2]t = 1.0587 , df = 9.6545 , p- value = 0 .3155alternative hypothesis : true difference in means is not equal to 0

95 percent confidence interval :-34 .15279 95 .42263

sample estimates :mean in group 1 mean in group 2

86 .85714 56 .22222

35/55

Page 36: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Calculo de medianas

I El calculo de los errores estandar es un metodo para estudiar laprecision de los estimadores. Pero, salvo en el caso de la media, nohay en general formulas concretas para estimarlos.

I Por ejemplo, si se calculan las medianas en el ejemplo de los ratones,se tiene que la mediana para el tratamiento es 94 y para el controles 46.

I La diferencia entre medianas es 48, mucho mayor que la diferenciaentre medias.

I Pero, ¿como es de precisa esta estimacion?La unica manera de responder es usando bootstrap en este caso.

36/55

Page 37: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Esquema del Bootstrap

I Supongamos que se observa una muestra x = x1, x2, . . . , xn sobre laque se calcula un cierto estadıstico s(x).

I Por ejemplo, x es el grupo control de observaciones y s(x) es lamedia muestral.

I En el caso del bootstrap, se define una muestra bootstrapx∗ = (x∗

1 , x∗2 , . . . , x∗

n ) que se obtiene muestreando n veces conreemplazamiento a partir de los datos originales (x1, x2, . . . xn)

I Por ejemplo si n = 7 una posible muestra bootstrap podrıa ser

x∗ = (x5, x7, x5, x4, x7, x3, x1)

37/55

Page 38: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

38/55

Page 39: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Algoritmo del Bootstrap

I Se genera un numero B elevado de muestras bootstrapx∗1, x∗2, . . . , x∗B cada una de tamano n. Los tamanos tıpicos de Bpara errores estandar suelen estar entre 500 y 5000.

I Para cada muestra bootstrap b = 1, . . . ,B se calcula el estadısticos(x∗b) . Por ejemplo, la mediana.

I El estimador bootstrap del error estandar es la desviacion estandarde las B muestras bootstrap

seBoot =

√√√√ 1B − 1

B∑b=1

(s (x∗b) − s(·))2

donde

s(·) = 1B

B∑b=1

s(x∗b)

39/55

Page 40: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo con la mediana

I Por ejemplo, Efron y Tibshirani obtienen en el grupo control un errorestandar igual a 11.54 y en el grupo tratamiento, 36.35 basandoseen B = 100 replicas.

I Ası, usando ese numero de replicas la diferencia de medianasobservada igual a 48 se obtiene un error estandar estimado igual a√

36,352 + 11,542 = 38,14

I Ası el estadıstico es 48/38,14 = 1,26 que tampoco essignificativamente mayor que 0, aunque es mayor que en el caso dela media.

I Para la mayorıa de los estadısticos no existen formulas explıcitas quesirvan para calcular el error estandar, por ello se puede usar unprocedimiento bootstrap.

40/55

Page 41: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo de ratones

Se calcula el error estandar del estadıstico media muestral.En el caso de la mediana muestral, serıa semejante sustituyendo elcomando mean por median en el programa.

# Tamanos muestralesn1 = length ( Trata )n2 = length (Cont)

n.bs = 1000 # numero de muestras bootstrap

bs1 = rep (0, n.bs)bs2 = rep (0, n.bs)

for (i in 1: n.bs) {bs1[i] = mean( sample (Trata , n1 , replace =TRUE ))bs2[i] = mean( sample (Cont , n2 , replace =TRUE ))

}

41/55

Page 42: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo de ratones

# replicas bootstrap de estimadores de las diferenciasdiff = bs1 -bs2

sd(diff) # estima error estandar

[1] 26 .1389

# histograma de estimas de las diferenciaslattice :: histogram (diff)

42/55

Page 43: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

43/55

Page 44: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo de ratones

# Programas alternativos

B = 200

# Caso de la mediamean( Trata ) - mean(Cont)sd( replicate (B, mean( sample (Trata , replace =TRUE )) -mean( sample (Cont , replace =TRUE ))))

# Caso de la medianamedian ( Trata ) - median (Cont)sd( replicate (B, median ( sample (Trata , replace =TRUE )) -median ( sample (Cont , replace =TRUE ))))

44/55

Page 45: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo de ratones

# Programa para las medianas con distintos tamannos# de muestras bootstrap

sdMedian = function (B){sd( replicate (B,median ( sample (Trata , replace =TRUE )) -median ( sample (Cont , replace =TRUE ))))}

# Se prueban diferentes numeros de replicasB = seq (500 , 5000 , 200)sdMedianEstimates = sapply (B, sdMedian )

X11 ()plot( sdMedianEstimates ∼ B, type="l", col="blue")

45/55

Page 46: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

46/55

Page 47: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Programas para el ejemplo de los ratonesI Se puede programar facilmente el ejemplo de los ratones con las

librerıas bootstrap y boot.

library ( bootstrap )

mouse.boot.c = bootstrap (mouse.c , 1000 , mean)mouse.boot.t = bootstrap (mouse.t , 1000 , mean)

mouse.boot.diff = mouse.boot.t $ thetastar -mouse.boot.c $ thetastarhist( mouse.boot.diff , main=’Histograma remuestreos ’,col=’lightblue ’, xlab=’Remuestreos diferencias ’,ylab=’Frecuencias ’)abline (v=0, col=" orange ", lwd =2)

sd( mouse.boot.diff )

[1] 28 .04734

47/55

Page 48: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

48/55

Page 49: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Programas para el ejemplo de los ratones

I Como introduccion al manejo de la librerıa boot, se puedenconsultar las siguientes paginas Web:

www.mayin.org / ajayshah /KB/R/ documents / boot.html

cran.r - project.org /doc/ Rnews / Rnews _2002 -3 .pdf

ww2.coastal.edu / kingw / statistics /R- tutorials / resample.html

49/55

Page 50: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Programas para el ejemplo de los ratoneslibrary (boot)trat = c(94 , 197 , 16, 38, 99, 141 , 23)control = c(52 , 104 , 146 , 10, 51, 30, 40, 27, 46)

bichos = data.frame ( sobrevive =c(control ,trat),grupo =c(rep (1, length ( control )), rep (2, length (trat ))))

lafuncion = function (x, i) {booty = tapply (x$sobrevive , x$grupo ,FUN= function (x) sample (x, length (x),TRUE ))diff( sapply (booty , mean )) }

bbichos = boot(data=bichos , lafuncion , R =1000)plot( bbichos )

sd( bbichos $t)

[1] 28 .60951

50/55

Page 51: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

51/55

Page 52: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo con Rcpp

I Ejemplo del efecto de la aspirina sobre los ataques de corazonmediante la interfaz de R con C++ usando Rcpp.

n1 = 11037 # Numero de fracasoss1 = 104 # numero de exitosn2 = 11034 # Numero de fracasoss2 = 189 # numero de exitosreplica = 1000

library (Rcpp)sourceCpp (" BootAspirinaExample.cpp ")

sale = bootRcpp (n1 , n2 , s1 , s2 , replica )

52/55

Page 53: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo con Rcpp

I Donde el programa de C++ es BootAspirinaExample.cpp:

// [[ Rcpp :: depends ( RcppArmadillo )]]# include <RcppArmadilloExtensions / sample .h>

using namespace Rcpp ;

// [[ Rcpp :: export ]]NumericVector bootRcpp (SEXP n1succ _, SEXP n2succ _,SEXP n1fail _, SEXP n2fail _, SEXP replicas _) {

int n1succ = as <int >( n1succ _);int n2succ = as <int >( n2succ _);int n1fail = as <int >( n1fail _);int n2fail = as <int >( n2fail _);int replicas = as <int >( replicas _);

53/55

Page 54: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo con Rcpp

int totaln1 = n1succ + n1fail ;int totaln2 = n2succ + n2fail ;

NumericVector p1( totaln1 );NumericVector p2( totaln1 );NumericVector bs1( replicas );NumericVector bs2( replicas );NumericVector ratio ( replicas );

for(int i=0; i< totaln1 ; i++) {if(i < n1succ ){

p1[i] = 1;} else {

p1[i] = 0;}

}

54/55

Page 55: M´etodos de Remuestreo - halweb.uc3m.eshalweb.uc3m.es/esp/Personal/personas/jmmarin/esp/Boots/tema1... · M´etodos de Remuestreo Tema 1. Introducci´on a los M ´etodos de Remuestreo

Ejemplo con Rcppfor(int i=0; i< totaln2 ; i++) {

if(i < n2succ ){p2[i] = 1;

} else {p2[i] = 0;

}}

bool replace = true;

for(int i=0; i< replicas ; i++) {bs1[i] = sum( RcppArmadillo :: sample (p1 , n1fail ,replace , NumericVector :: create ()))/ totaln1 ;bs2[i] = sum( RcppArmadillo :: sample (p2 , n2fail ,replace , NumericVector :: create ()))/ totaln2 ;ratio [i] = bs1[i]/bs2[i];

}return ratio ;

}

55/55