Académique Documents
Professionnel Documents
Culture Documents
Por
Introducción
El desarrollo en computadoras y softwares de los últimos años ha abierto las puertas a
nuevos métodos estadísticos más potentes y precisos, destacando todos aquellos que
emplean el remuestreo como principal herramienta de análisis. Dentro de este grupo,
aparece el bootstrapping que fue propuesto y estudiado inicialmente por Efron (1979) como
un método para la aproximación de la distribución de muestreo de un estadístico.
N , 2
X̄ y s , se puede concluir que X̄ y s n−1 . De igual manera, da por
2 2
2 n
hecho el cumplimiento del Teorema de Límite Central para tamaños de muestra
suficientemente grandes, sin definir acertadamente lo que "suficientemente grande"
significa. En muchas ocasiones por ejemplo, los sesgos que se observan en la distribución
poblacional, se transfieren a la distribución de los estadísticos incluso con tamaños de
muestra del orden de 1000.
Los métodos de remuestreo, por su parte, presentan varias ventajas. Primero, son más
flexibles en lo que referente a supuestos acerca de la población y permiten además, estimar
la distribución de un estadístico de manera empírica. Segundo, no exigen de tamaños de
muestra excesivamente grandes para ser precisos y confiables (en general se recomienda un
tamaño de muestra mínimo de 50). Tercero, tienen magnitudes de sesgo significativamente
más pequeñas que otros modelos de inferencia. Cuarto, son más fáciles de comprender y
aplicar debido a su mecanicidad y a que principalmente emplean tecnología de softwares.
Finalmente, son menos costosos y en la mayoría de las veces, más rápidos y efectivos que
otros.
(1) Crear B muestras nuevas a partir de la muestra original utilizando para esto, muestreo
con reemplazo. Las muestras generadas se denominan Muestras Bootstrap y son de tamaño
1
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
(3) Utilizar la Distribución Bootstrap considerando que ésta contiene información relevante
en cuanto a la forma, centro y dispersión de la distribución muestral del estadístico.
Nótese que mediante este método se genera una analogía importante que facilita la
comprensión del modelo: "la muestra aleatoria es a la población así como la muestra
bootstrap es a dicha muestra aleatoria".
Ejemplo 1:
El siguiente caso representa el funcionamiento del método de bootstrapping. La tabla 1 presenta
una muestra de 24 determinaciones de cobre en pisos de productos integrales en partes por millón.
La figura 1 presenta la distribución de la muestra, la cual tiene un claro sesgo hacia la derecha. La
línea roja por su parte, identifica el valor de la media de los datos.
Histogram of chem
20
15
Frequency
10
5
0
0 5 10 15 20 25 30
chem
Figura 1
2
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
Se desea estimar el valor de la media X̄ mediante bootstrap. Para esto se ejecuta el siguiente
algoritmo en R usando B 1000 :
> library(MASS)
> data(chem)
> med=c()
> for (i in 1:1000){
+ m.boot=sample(chem,length(chem),replace=T)
+ m.med=mean(m.boot)
+ med=c(med,m.med)
+ }
> #Media Observada:
> mean(chem)
[1] 4.280417
> #"Media Bootstrap:
> mean(med)
[1] 4.33121
> #Distribución Bootstrap
> hist(med)
> lines(c(mean(chem),mean(chem)),c(0,350),col="red")
> lines(c(mean(med),mean(med)),c(0,350),col="blue")
Nótese que la media de la muestra original (4.28) es semejante a la obtenida usando bootstrap
(4.33). La figura 2 presenta además la distribución bootstrap, identificando la posición de los dos
estadísticos antes mencionados con líneas roja y azul respectivamente.
Histogram of med
350
300
250
Frequency
200
150
100
50
0
3 4 5 6 7 8 9
med
Figura 2
3
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
La Distribución Bootstrap
Cuando se genera una distribución bootstrap, la cual posee características de forma, centro
y dispersión semejantes a la distribución muestral del estadístico ̂ , es posible calcular los
siguientes estimadores bootstrap considerando los ̂ i obtenidos:
∗
B ̂∗
̂ ∗
∑ i1 i
E boot
B
Ejemplo 1 (cont.):
Siguiendo con el ejemplo anterior de las determinaciones de cobre. Si se calculan la media y la
desviación estándar del promedio de los datos y se los compara con los estimadores bootstrap se
observa lo siguiente:
Los resultados obtenidos permiten concluir que en efecto, los valores de las medias y las
desviaciones estándar son considerablemente cercanos. Además, el sesgo bootstrap indica la
4
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
Como se mencionó líneas arriba, la distribución muestral del estadístico en algunos casos
suele mantener el sesgo propio de la población. Esto limita el cumplimiento, y
consecuentemente, la aplicación del Teorema de Límite Central en la inferencia tradicional.
Mediante la distribución bootstrap, es posible verificar gráficamente la afirmación anterior.
De igual manera, se facilita la toma de decisiones correctivas que faciliten la convergencia
a la normalidad de la distribución de muestreo del estadístico. El siguiente ejemplo ilustra
este concepto:
Ejemplo 2:
La tabla 2 presenta los precios en US$1000 de una muestra de tamaño 50 de propiedades en
Seattle durante el año 2002.
142 232 132.5 200 362
244.95 335 324.5 222 225
175 50 215 260 307
210.95 1370 215.5 179.8 217
197.5 146.5 116.7 449.9 266
265 256 684.5 257 570
149.4 155 244.9 66.407 166
296 148.5 270 252.95 507
705 1850 290 164.95 375
335 987.5 330 149.95 190
Tabla 2
5
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
Histogram of prop
25
20
15
Frequency
10
5
0
prop
Figura 3
1000
500
0
-2 -1 0 1 2
Theoretical Quantiles
Figura 4
Si se realiza bootstrap para estimar el valor de la media y se genera la distribución pertinente (fig. 5
y fig. 6) usando R, se observa que el sesgo se mantiene incluso para un valor de B 1000 .
>
prop=c(142,232,132.5,200,362,244.95,335,324.5,222,225,175,50,
215,
6
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
+
260,307,210.95,1370,215.5,179.8,217,197.5,146.5,116.7,449.9,2
66,
+
265,256,684.5,257,570,149.4,155,244.9,66.407,166,296,148.5,27
0,
+
252.95,507,705,1850,290,164.95,375,335,987.5,330,149.95,190)
> med=c()
> for (i in 1:1000){
+ m.boot=sample(prop,length(prop),replace=T)
+ m.med=mean(m.boot)
+ med=c(med,m.med)
+ }
> hist(med)
> qqnorm(med)
Histogram of med
150
Frequency
100
50
0
med
Figura 5
7
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
450
400
Sample Quantiles
350
300
250
-3 -2 -1 0 1 2 3
Theoretical Quantiles
Figura 6
Intervalos de Confianza
Intervalos t
Intervalos de Percentiles
8
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
Intervalos BCa (de sesgo corregido y acelerado por sus siglas en inglés)
Este tipo de intervalo realiza una corrección por el sesgo en el caso anterior. Se lo obtiene
siguiendo estos pasos:
1 si ̂ ∗i ≤ ̂
Î ∗i
0 si ̂ ∗ ̂
(1) Calcular el primer factor de corrección z ∗ tal que para i :
∑ i1
B
Î ∗i
z ∗ −1
B 1
(2) Calcular el segundo factor de corrección a tal que para ̂ −i : Valor Jackniffe de i y
el promedio de todos ellos Θ −i :
∑ i1 ̂ −i − Θ −i
n 3
a 3
6 ∑ i1
n
̂ −i − Θ 2−i 2
(3) Calcular las cotas del intervalo con nivel de significancia de la siguiente manera:
z ∗ − z 1− 2
∗
L B∗ z
1 − a z ∗ − z 1− 2
z ∗ z 1− 2
U B ∗ z∗
1 − a z ∗ z 1− 2
L≤≤U
Para que el intervalo BCa sea suficientemente confiable es recomendable que el tamaño de
B sea de al menos 1000.
Ejemplo 3:
Para llevar a cabo este ejemplo y los siguientes, se considerarán la funciones guardadas en la
librería "boot" de R. Retomando los datos del precio de las propiedades, se calcularán los distintos
tipos de intervalos de confianza estudiados.
9
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
Los resultados obtenidos indican que la distribución bootstrap no se aproxima a una normal dada la
diferencia entre el intervalo normal y el de percentiles. Nótese además, que el intervalo BCa
presenta una cota superior mucho mayor debido al sesgo antes estudiado.
Ejemplo 4:
Los datos galaxies en la librería MASS muestran la velocidad en Km/seg de distintas galaxias
observables desde el hemisferio norte. Realizando bootstrap con estos datos para obtener
información acerca de la varianza:
> data(galaxies)
> #Se divide la velocidad para mil
> gal=galaxies/1000
> var.boot=function(x,i){
+ var(x[i])
+ }
> #Bootstrap de la varianza de la velocidad
> boot.gal=boot(gal,var.boot,R=500)
10
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
> boot.gal
> plot(boot.gal)
Histogram of t
0.08
35
30
0.06
25
Density
t*
0.04
20
0.02
15
10
0.00
5 10 15 20 25 30 35 40 -3 -2 -1 0 1 2 3
Figura 7
La figura 7 evidencia un leve sesgo positivo esperable dado que se está estudiando la distribución
de la varianza. Calculando luego los intervalos de confianza:
11
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
Nótese que el BCa resulta ser un intervalo más adecuado dada la cola derecha que presenta la
distribución bootstrap.
Ejemplo 5:
Los datos cats en la librería MASS presentan los pesos corporales y del cerebro de 144 gatos.
Realizando bootstrap para estudiar su covarianza se tiene que:
> cov.boot=function(x,i){
+ var(Hwt[i],Bwt[i])
+ }
> boot.cats=boot(cats,cov.boot,R=1000)
> boot.cats
> boot.ci(boot.cats,0.95)
Cuando se realizan análisis de regresión lineal, es común suponer que los errores
distribuyen normal con varianza 2 constante. Estos supuestos sin embargo, no suelen
cumplirse en muchos casos prácticos. El método de bootstrapping permite realizar
estimaciones acerca de los coeficientes de la regresión sin necesidad de asumir
normalidad u homocedasticidad. Existen entonces las siguientes maneras de llevar a cabo el
proceso asumiendo el modelo y X y una muestra de tamaño n:
Bootstrap de X Fijo
Este caso se aplica cuando se asume que la varianza de los errores es constante, pero se
sospecha que la normalidad de los mismos no se cumple. El método funciona en base al
12
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
siguiente algoritmo:
Ejemplo 6:
Los datos Duncan en la librería "car" de R, presentan información socioeconómica al respecto de
45 individuos entrevistados. Interesa estudiar la relación lineal dada por la expresión:
> library(car)
> data(Duncan)
> attach(Duncan)
> mod.duncan=lm(prestige~income+education)
> summary(mod.duncan)
Call:
lm(formula = prestige ~income + education)
Residuals:
Min 1Q Median 3Q Max
-29.5380 -6.4174 0.6546 6.6051 34.6412
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -6.06466 4.27194 -1.420 0.163
income 0.59873 0.11967 5.003 1.05e-05 ***
education 0.54583 0.09825 5.555 1.73e-06 ***
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
Residual standard error: 13.37 on 42 degrees of freedom
Multiple R-squared: 0.8282, Adjusted R-squared: 0.82
F-statistic: 101.2 on 2 and 42 DF, p-value: < 2.2e-16
13
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
Histogram of residuals(mod.duncan)
15
Frequency
10
5
0
residuals(mod.duncan)
Figura 8
Residuals vs Fitted
40
17
20
Residuals
0
-20
0 20 40 60 80 100
Fitted values
lm(prestige ~ income + education)
Figura 9
14
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
> X=model.matrix(mod.duncan)
> boot.coef=function(x,i){
+ y=fit+e[i]
+ mod=lm(y ~X-1)
+ coefficients(mod)
+ }
> duncan.fix.boot=boot(Duncan,boot.coef,R=1000)
> duncan.fix.boot
Los intervalos de confianza bootstrap de los coeficientes, indican si los coeficientes obtenidos se
pueden considerar significativos, tal que:
> boot.ci(duncan.fix.boot,index=1,0.95)
15
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
CALL :
boot.ci(boot.out = duncan.fix.boot, conf = 0.95, index = 3)
Intervals :
Level Normal Basic
95% ( 0.3592, 0.7344 ) ( 0.3534, 0.7350 )
Level Percentile BCa
95% ( 0.3566, 0.7383 ) ( 0.3598, 0.7426 )
Bootstrap de X Aleatorio
Es así que lo que se pretende calcular es un nuevo modelo definido por la ecuación
y boot Xboot e .
Ejemplo 7:
Los datos mtcars en la librería "boot", muestran información técnica al respecto de 32 vehículos
distintos. Interesa estudiar la relación lineal:
mpg i 0 1 wt i 2 disp i i
Corriendo la regresión:
> data(mtcars)
> attach(mtcars)
> mod.mtcars=lm(mpg~wt+disp)
> summary(mod.mtcars)
Call:
lm(formula = mpg ~wt + disp)
Residuals:
Min 1Q Median 3Q Max
-3.4087 -2.3243 -0.7683 1.7721 6.3484
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 34.96055 2.16454 16.151 4.91e-16 ***
16
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
Residuals vs Fitted
18 20
6
17
4
Residuals
2
0
-2
-4
10 15 20 25
Fitted values
lm(mpg ~ wt + disp)
Figura 10
17
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
Se obtienen así los estimadores bootstrap de los coeficientes y sus respectivos errores estándar.
Ahora estudiando su significancia:
> boot.ci(mtcars.rand.boot,index=1,0.95)
Los intervalos bootstrap indican que todos los coeficientes son significativos. Nótese que en el
resumen de la regresión, se muestra que el tercer coeficiente no es significativo para un de
5%.
18
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
Wild Bootstrap
Este método está definido según Beibold y Chen (1996) y Davidson y Flachaire (2001), y
supone que la distribución de los residuos es simétrica. El procedimiento especifica un
remuestreo en el que los nuevos valores de los residuos u j se obtienen mediante la
siguiente expresión de dos puntos:
O bien:
5 − 1 j 5 1
− ; con probabilidad p
2 2 5
uj
5 1 j
; con probabilidad 1 − p
2
∀j ∈ 1, n
Se genera de esta manera, un nuevo modelo dado por y boot X u . Luego, se procede a
calcular los coeficientes bootstrap de forma semejante al caso de X fijo.
Ejemplo 8:
Supoonga los datos VA de la librería "MASS" en R, que muestran un experimento médico en
enfermos de cáncer de pulmón realizado por Kalbfleisch & Prentice. Interesa estimar el modelo
lineal:
Corriendo la regresión:
> library(MASS)
> data(VA)
> attach(VA)
> mod.VA=lm(stime~age+Karn+diag.time-1)
> summary(mod.VA)
Call:
lm(formula = stime ~age + Karn + diag.time - 1)
19
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
Residuals:
Min 1Q Median 3Q Max
-168.08 -80.47 -36.42 11.77 829.12
Coefficients:
Estimate Std. Error t value Pr(>|t|)
age -0.8402 0.5970 -1.407 0.162
Karn 2.8894 0.5387 5.364 3.47e-07 ***
diag.time 0.2327 1.1713 0.199 0.843
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
Residual standard error: 146.9 on 134 degrees of freedom
Multiple R-squared: 0.4659, Adjusted R-squared: 0.454
F-statistic: 38.96 on 3 and 134 DF, p-value: < 2.2e-16
Mediante Wild Bootstrap se intentará averiguar si los valores estimados de los coeficientes son
adecuados:
> fit=fitted(mod.VA)
> e=residuals(mod.VA)
> X=model.matrix(mod.VA)
> wboot.coef=function(x,i){
+ s=sample(c(-1,1),1)
+ y=fit+e[i]*s
+ mod=lm(y ~X-1)
+ coefficients(mod)
+ }
> VA.wild.boot=boot(VA,wboot.coef,R=1000)
> VA.wild.boot
> boot.ci(VA.wild.boot,index=1,0.95)
20
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
> boot.ci(VA.wild.boot,index=2,0.95)
> boot.ci(VA.wild.boot,index=3,0.95)
Dados los intervalos de confianza se puede concluir que los coeficientes 1 y 3 no son significativos,
y sólo debería considerarse el correspondiente a la variable Karn.
Ejemplo 9:
Suponga nuevamente los datos Duncan. La figura 11 muestra una gráfica de puntos de los
ingresos frente al prestigio. La línea de color rojo es una curva LOWESS.
21
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
100
80
60
prestige
40
20
0
20 40 60 80
income
Figura 11
> attach(Duncan)
> boot.line=function(x,i){
> dat=x[i,]
> attach(dat)
> lines(lowess(income,prestige,f=0.1),col="blue")
> }
> boot.lowess=boot(Duncan,boot.line,R=100)
La figura 12 indica que las curvas bootstrap generadas se comportan de forma distinta a la original.
Por lo tanto es posible concluir que la forma encontrada surge producto de la aleatoriedad de la
muestra.
22
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
100
80
60
prestige
40
20
0
20 40 60 80
income
Figura 12
23
Universidad San Francisco de Quito
Segundo Semestre 2009 – 2010
Bibliografía
- MMDS, Cap. 18: Bootstrap Methods and Permutation Tests.
24