24
Universidad San Francisco de Quito Segundo Semestre 2009 – 2010 1 Aproximación al Método de Bootstrapping Por Juan Sebastián Araujo Dueñas 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. En cuanto a esto, la inferencia estadística tradicional emplea ciertas suposiciones acerca de la distribución poblacional para determinar matemáticamente la distribución muestral de un estadístico. De este modo, cuando la población distribuye N, 2 , y se estima el valor X y s 2 , se puede concluir que X N , 2 n y s 2 n1 2 . De igual manera, da por 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. ¿Cómo funciona el Bootstrapping? El método de bootstrapping surge de una muestra aleatoria de tamaño n que se toma de una población con parámetro . A partir de este punto, la implementación general se realiza siguiendo los pasos detallados a continuación: (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

Aproximación al Bootstrap

Embed Size (px)

DESCRIPTION

Introducción al Uso de bootsrap en R

Citation preview

Page 1: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

1

Aproximación al Método de Bootstrapping

Por

Juan Sebastián Araujo Dueñas

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. En cuanto a esto, la inferencia estadística tradicional emplea ciertas suposiciones acerca de la distribución poblacional para determinar matemáticamente la distribución muestral de un estadístico. De este modo, cuando la población distribuye N,2 , y se estima el valor

X y s2 , se puede concluir que X N , 2

n y s2 n−12 . De igual manera, da por

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. ¿Cómo funciona el Bootstrapping? El método de bootstrapping surge de una muestra aleatoria de tamaño n que se toma de una población con parámetro . A partir de este punto, la implementación general se realiza siguiendo los pasos detallados a continuación: (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

Page 2: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

2

n al igual que la original. (2) Calcular el estadístico de interés i

∗ de cada muestra bootstrap. Luego, definir la distribución de los valores estimados creando así la Distribución Bootstrap. (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.

2.90 3.10 3.40 3.40 3.70 3.70 2.80 2.50 2.40 2.40 2.70 2.20 5.28 3.37 3.03 3.03 28.95 3.77 3.40 2.20 3.50 3.60 3.70 3.70

Tabla 1 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

chem

Freq

uenc

y

0 5 10 15 20 25 30

05

1015

20

Figura 1

Page 3: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

3

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

med

Freq

uenc

y

3 4 5 6 7 8 9

050

100

150

200

250

300

350

Figura 2

Page 4: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

4

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: (a) Media o Promedio Bootstrap el cual es un indicador del centro de la distribución:

Eboot∗ ∑i1

B i∗

B (b) Error Estándar Bootstrap el cual es un indicador de la dispersión de la distribución:

SEboot∗ 1B − 1 ∑i1

B i∗ − Eboot∗

2

(c) Sesgo Bootstrap el cual es indicador de la forma de la distribución:

biasboot∗ Eboot∗ − Cada uno de estos valores es también un estimador de la media, la desviación estándar y el sesgo del estimador muestral que se está estudiando. 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: > #Media Observada: > mean(chem) [1] 4.280417 > #Media Bootstrap: > mean(med) [1] 4.33121 > #SE Media Observada: > sd(chem)/sqrt(length(chem)) [1] 1.081326 > #SE Media Bootstrap: > sd(med) [1] 1.066086 > #Sesgo Bootstrap: > mean(med)-mean(chem) [1] 0.05079375 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

Page 5: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

5

existencia de la cola a la derecha notoria en la figura 2. 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

Dado que la muestra no discriminó por tipo de propiedades (comerciales, residenciales o industriales), es esperable que la cola derecha sea mayor que la izquierda producto del mayor valor de las localidades dedicadas al comercio. En efecto, una inspección gráfica en las figuras 3 y 4 revela esto.

Page 6: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

6

Histogram of prop

prop

Freq

uenc

y

0 500 1000 1500 2000

05

1015

2025

Figura 3

-2 -1 0 1 2

050

010

0015

00

Normal Q-Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

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,

Page 7: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

7

+ 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) > 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

med

Freq

uenc

y

200 250 300 350 400 450

050

100

150

Figura 5

Page 8: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

8

-3 -2 -1 0 1 2 3

250

300

350

400

450

Normal Q-Q Plot

Theoretical Quantiles

Sam

ple

Qua

ntile

s

Figura 6

Algunas Aplicaciones en Inferencia Intervalos de Confianza Existen varias maneras de calcular Intervalos de Confianza cuando se emplea el método de bootstrapping. La forma a emplear dependerá exclusivamente de la distribución bootstrap resultante del proceso. Si la distribución mencionada no presenta un sesgo de considerable magnitud y se observa una aproximación a la normal, se puede usar intervalos t o de percentiles, en caso contrario es recomendable usar intervalos BC. Intervalos t Cuando se observa que la distribución bootstrap se aproxima a una normal es posible calcular un intervalo de confianza con nivel de significancia mediante la siguiente fórmula:

I.C. 1− Eboot∗ t n−1, 1− 2∗ SEboot

Intervalos de Percentiles De igual manera, es posible calcular un intervalo con nivel de significancia de percentiles en caso de una aproximación a la normal de la distribución bootstrap. Para hacerlo, se debe encontrar los cuantiles

2 100% y 1 −

2 100% , los cuales

Page 9: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

9

corresponden a la cota inferior y superior del intervalo respectivamente. A diferencia del caso anterior, este intervalo de confianza no es balanceado. Una forma de verificar la validez de estos dos casos presentados es comparándolos y observando su parecido. Si sus valores difieren de manera considerable, entonces se deben descartar y se procede a utilizar alguna de las siguientes opciones a continuación. 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) Calcular el primer factor de corrección z∗ tal que para I i

∗ 1 si i

∗ ≤

0 si i∗ :

z∗ −1 ∑i1B I i

∗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 :

a ∑i1

n −i − Θ−i3

6 ∑i1n −i − Θ−i

232

(3) Calcular las cotas del intervalo con nivel de significancia de la siguiente manera:

L B ∗ z∗

z∗ − z1− 2

1 − a z∗ − z1− 2

U B ∗ z∗

z∗ z1− 2

1 − a z∗ z1− 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.

Page 10: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

10

> #Función para calcular la media: > med.boot=function(x,i){ + mean(prop[i]) + } > #Generación de muestras bootstrap: > boot.prop=boot(prop,med.boot,R=1000,stype="i") > boot.prop ORDINARY NONPARAMETRIC BOOTSTRAP Call: boot(data = prop, statistic = med.boot, R = 1000, stype = "i") Bootstrap Statistics : original bias std. error t1* 329.2571 1.732379 43.83978 > #Intervalos al 95% de Confianza: > boot.ci(boot.prop,0.95) BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS Based on 1000 bootstrap replicates CALL : boot.ci(boot.out = boot.prop, conf = 0.95) Intervals : Level Normal Basic 95% (241.6, 413.4 ) (230.6, 408.6 ) Level Percentile BCa 95% (249.9, 427.9 ) (259.4, 456.1 ) Calculations and Intervals on Original Scale 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)

Page 11: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

11

> boot.gal ORDINARY NONPARAMETRIC BOOTSTRAP Call: boot(data = gal, statistic = var.boot, R = 500) Bootstrap Statistics : original bias std. error t1* 20.82789 -0.04902143 4.787492 > plot(boot.gal)

Histogram of t

t*

Den

sity

5 10 15 20 25 30 35 40

0.00

0.02

0.04

0.06

0.08

-3 -2 -1 0 1 2 3

1015

2025

3035

Quantiles of Standard Normal

t*

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: > #Intervalos de confianza al 95% > boot.ci(boot.gal,0.95) BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS Based on 500 bootstrap replicates CALL : boot.ci(boot.out = boot.gal, conf = 0.95) Intervals : Level Normal Basic 95% (11.49, 30.26 ) (10.98, 29.45 ) Level Percentile BCa 95% (12.21, 30.68 ) (13.43, 32.34 )

Page 12: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

12

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 ORDINARY NONPARAMETRIC BOOTSTRAP Call: boot(data = cats, statistic = cov.boot, R = 1000) Bootstrap Statistics : original bias std. error t1* 0.9501127 -0.006945726 0.1231418 > boot.ci(boot.cats,0.95) BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS Based on 1000 bootstrap replicates CALL : boot.ci(boot.out = boot.cats, conf = 0.95) Intervals : Level Normal Basic 95% ( 0.7157, 1.1984 ) ( 0.6991, 1.1709 ) Level Percentile BCa 95% ( 0.7294, 1.2011 ) ( 0.7631, 1.2724 ) Análisis de Regresión Lineal 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

Page 13: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

13

siguiente algoritmo: (1) Calcular mediante OLS. (2) Para i 1, . . . ,B (i) Definir Xboot X (ii) Remuestrear el vector de residuos . (iii) Definir yboot Xboot boot

(iv) Estime boot dados los pares de valores yj,boot,Xpj,boot ∀j 1, . . .n . 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:

prestigei 0 1 incomei 2educationi i Corriendo entonces la regresió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 La figura 8 muestra la distribución de los residuos. La figura 9 muestra el comportamiento de los residuos en relación a la variable de respuesta. Nótese que existe asimetría en la figura pero no hay evidencia clara de heterocedasticidad por lo que se realizará bootstrap de X fijo.

Page 14: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

14

Histogram of residuals(mod.duncan)

residuals(mod.duncan)

Freq

uenc

y

-30 -20 -10 0 10 20 30 40

05

1015

Figura 8

0 20 40 60 80 100

-20

020

40

Fitted values

Res

idua

ls

lm(prestige ~ income + education)

Residuals vs Fitted

6

9

17

Figura 9

> #Bootstrap de X fijo > fit=fitted(mod.duncan) > e=residuals(mod.duncan)

Page 15: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

15

> 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 ORDINARY NONPARAMETRIC BOOTSTRAP Call: boot(data = Duncan, statistic = boot.coef, R = 1000) Bootstrap Statistics : original bias std. error t1* -6.0646629 0.131035157 4.19422747 t2* 0.5987328 -0.003759805 0.11859840 t3* 0.5458339 0.001182099 0.09433975 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) BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS Based on 1000 bootstrap replicates CALL : boot.ci(boot.out = duncan.fix.boot, conf = 0.95, index = 1) Intervals : Level Normal Basic 95% (-14.080, 2.009 ) (-14.300, 1.739 ) Level Percentile BCa 95% (-13.869, 2.170 ) (-13.955, 2.082 ) > boot.ci(duncan.fix.boot,index=2,0.95) BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS Based on 1000 bootstrap replicates CALL : boot.ci(boot.out = duncan.fix.boot, conf = 0.95, index = 2) Intervals : Level Normal Basic 95% ( 0.3657, 0.8282 ) ( 0.3655, 0.8192 ) Level Percentile BCa 95% ( 0.3783, 0.8320 ) ( 0.3785, 0.8322 ) > boot.ci(duncan.fix.boot,index=3,0.95) BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS Based on 1000 bootstrap replicates

Page 16: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

16

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 ) El intercepto sería entonces el único coeficiente no significativo en el modelo. Bootstrap de X Aleatorio Suponiendo ahora, que hay evidencia de heterocedasticidad en el modelo, es necesario emplear otro método. el Bootstrap de X aleatorio permite estimar adecuadamente los coeficientes de regresión en este escenario. Para generarlo se debe seguir el algoritmo a continuación: (1) Calcular mediante OLS. (2) Para i 1, . . . ,B

(i) Remuestrear los pares yj,Xpj ∀j 1, . . .n .

(ii) Estime boot dados los pares de valores yj,boot,Xpj,boot ∀j 1, . . .n . Es así que lo que se pretende calcular es un nuevo modelo definido por la ecuación yboot 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:

mpgi 0 1wti 2dispi 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 ***

Page 17: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

17

wt -3.35082 1.16413 -2.878 0.00743 ** disp -0.01773 0.00919 -1.929 0.06362 . --- Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1 Residual standard error: 2.917 on 29 degrees of freedom Multiple R-squared: 0.7809, Adjusted R-squared: 0.7658 F-statistic: 51.69 on 2 and 29 DF, p-value: 2.744e-10 La figura 10 muestra que existe evidencia de heterocedasticidad por lo que se realizará un bootstrap de X aleatorio para confirmar los valores de los coeficientes.

10 15 20 25

-4-2

02

46

Fitted values

Res

idua

ls

lm(mpg ~ wt + disp)

Residuals vs Fitted

2018

17

Figura 10

> #Bootstrap de X aleatorio > boot.coef=function(x,i){ + d=x[i,] + mod=lm(mpg~wt+disp,data=d) + coefficients(mod) + } > mtcars.rand.boot=boot(mtcars,boot.coef,R=1000) > mtcars.rand.boot ORDINARY NONPARAMETRIC BOOTSTRAP Call: boot(data = mtcars, statistic = boot.coef, R = 1000) Bootstrap Statistics : original bias std. error t1* 34.96055404 0.0288372977 2.440907162

Page 18: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

18

t2* -3.35082533 -0.0435788142 1.143319864 t3* -0.01772474 0.0002484925 0.008538405 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) BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS Based on 1000 bootstrap replicates CALL : boot.ci(boot.out = mtcars.rand.boot, conf = 0.95, index = 1) Intervals : Level Normal Basic 95% (30.09, 39.67 ) (29.93, 39.56 ) Level Percentile BCa 95% (30.36, 39.99 ) (29.92, 39.53 ) > boot.ci(mtcars.rand.boot,index=2,0.95) BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS Based on 1000 bootstrap replicates CALL : boot.ci(boot.out = mtcars.rand.boot, conf = 0.95, index = 2) Intervals : Level Normal Basic 95% (-5.447, -1.133 ) (-5.436, -1.174 ) Level Percentile BCa 95% (-5.528, -1.265 ) (-5.419, -1.131 ) > boot.ci(mtcars.rand.boot,index=3,0.95) BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS Based on 1000 bootstrap replicates CALL : boot.ci(boot.out = mtcars.rand.boot, conf = 0.95, index = 3) Intervals : Level Normal Basic 95% (-0.0341, -0.0019 ) (-0.0340, -0.0025 ) Level Percentile BCa 95% (-0.0330, -0.0014 ) (-0.0335, -0.0017 ) 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%.

Page 19: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

19

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 uj se obtienen mediante la siguiente expresión de dos puntos:

uj −j ; con probabilidad 0.5

j ; con probabilidad 0.5 ∀j ∈ 1,n

O bien:

uj −

5 − 1 j

2 ; con probabilidad p 5 1

2 5

5 1 j

2 ; con probabilidad 1 − p

∀j ∈ 1,n Se genera de esta manera, un nuevo modelo dado por yboot X u . Luego, se procede a calcular los coeficientes bootstrap de forma semejante al caso de X fijo. El Wild Bootstrap se aplica en los casos en que se sospecha de heterocedasticidad pero no es posible definir una relación numérica entre la varianza de los residuos y los regresores o los valores predichos. 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:

stimei 1agei 2Karni 3diag. timei i 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)

Page 20: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

20

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 ORDINARY NONPARAMETRIC BOOTSTRAP Call: boot(data = VA, statistic = wboot.coef, R = 1000) Bootstrap Statistics : original bias std. error t1* -0.8402197 0.01272943 0.5927433 t2* 2.8894421 -0.01153854 0.5271826 t3* 0.2326970 0.03326928 1.1980984 > boot.ci(VA.wild.boot,index=1,0.95) BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS Based on 1000 bootstrap replicates CALL : boot.ci(boot.out = VA.wild.boot, conf = 0.95) Intervals : Level Normal Basic 95% (-2.0147, 0.3088 ) (-2.0618, 0.3385 )

Page 21: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

21

Level Percentile BCa 95% (-2.0189, 0.3814 ) (-2.0673, 0.3384 ) > boot.ci(VA.wild.boot,index=2,0.95) BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS Based on 1000 bootstrap replicates CALL : boot.ci(boot.out = VA.wild.boot, conf = 0.95, index = 2) Intervals : Level Normal Basic 95% ( 1.868, 3.934 ) ( 1.901, 3.994 ) Level Percentile BCa 95% ( 1.785, 3.878 ) ( 1.756, 3.850 ) > boot.ci(VA.wild.boot,index=3,0.95) BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS Based on 1000 bootstrap replicates CALL : boot.ci(boot.out = VA.wild.boot, conf = 0.95, index = 3) Intervals : Level Normal Basic 95% (-2.1488, 2.5477 ) (-2.1425, 2.5366 ) Level Percentile BCa 95% (-2.0712, 2.6079 ) (-2.1147, 2.4725 ) 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. Suavizamiento de Gráficos de Puntos (LOWESS) Existen casos en que la información entregada por variables predictoras X y respuestas y , se ajusta de forma más adecuada con una curva polinómica que con una línea de regresión. En estas situaciones, interesa estudiar si la forma de la curva se debe a efectos aleatorios de la muestra, o bien a características propias de la población. Esto puede ser analizado por el método de bootstrapping. El siguiente ejemplo ilustra lo mencionado. 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.

Page 22: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

22

20 40 60 80

020

4060

8010

0

income

pres

tige

Figura 11

Interesa conocer si la forma de la curva se da por aleatoriedad de la muestra o si es una característica poblacional distintiva. Usando bootrstrapping se observa lo siguiente: > 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.

Page 23: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

23

20 40 60 80

020

4060

8010

0

income

pres

tige

Figura 12

Page 24: Aproximación al Bootstrap

Universidad San Francisco de Quito Segundo Semestre 2009 – 2010

24

Bibliografía - MMDS, Cap. 18: Bootstrap Methods and Permutation Tests. - MENDIETA, Gonzalo, Bootstrap, 2009. - FOX, John, Bootstrapping Regression Models, 2002. - DAVIDSON, Anthony, HINKLEY, D.V.,Bootstrap Methods and Their Application. - DAVIDSON, Rusell, FLACHAIRE, Emmanuel, The Wild Bootstrap, Tamed at Last.