Procesos de Remuestreo
Procesos de Remuestreo
Procesos de Remuestreo
basado en
B. Efron, R. Tibshirani (1993). An Introduction to the bootstrap.
O. Kirchkamp (2017). Resampling methods.
Curso 2018/19
1/73
Errores estándar
I La media muestral
σF2
x̄ ∼ µF ,
n
2/73
Cálculo de errores estándar mediante el TCL
σ
I Ası́ el error estándar de x̄ es simplemente √F .
n
I En una distribución normal se espera que X sea menor que una vez
la desviación estándar de µF aproximadamente el 68 % de las
ocasiones y menor que dos desviaciones estándar alrededor del 95 %
de las veces, aplicando el TCL (teorema central del lı́mite).
3/73
4/73
Limitaciones del TCL
PF {X = 1} = p
PF {X = 0} = 1 − p
5/73
Limitaciones del TCL
n
X
s= xi ∼ Bin(n, p)
i=1
s
I La media x = es igual a p
b que es el estimador plug-in de p, de
n
modo que
p(1 − p)
b ∼ N p,
p
n
6/73
Limitaciones del TCL
n = 25
7/73
Limitaciones del TCL
8/73
9/73
Bootstrap y errores estándar
10/73
Bootstrap y errores estándar
I Alternativamente, se puede decir que una muestra bootstrap
x1∗ , x2∗ , . . . xn∗ es una muestra aleatoria de tamaño n tomada con
reemplazamiento de la muestra original (que hace el papel de
población).
x1∗ = x7
x2∗ = x3
x3∗ = x3
··· ··· ···
xn∗ = x2
11/73
Algoritmo Bootstrap y errores estándar
para b = 1, 2, . . . , B.
3. Estimar el error estándar seF (θ)
b mediante
v
u
u 1 X B 2
se
bB = t θb∗ (b) − θb∗ (·)
B−1
b=1
B
1 X b∗
donde θb∗ (·) = θ (b)
B
b=1
12/73
13/73
Ejemplo de los institutos de máster en leyes
I La correlación entre GPA y LSAT es
library ( bootstrap )
( lawCor = with ( law , cor ( GPA , LSAT )))
[1] 0 .7763745
14/73
Ejemplo de los institutos de máster en leyes
I Ası́,
( se = (1 - lawCor ˆ2) / sqrt ( dim ( law )[1] -3))
[1] 0 .1146741
15/73
Ejemplo de los institutos de máster en leyes
law.boot =
replicate (1000 , { indB = sample ( ind , replace = TRUE );
with ( law [ indB ,] , cor ( GPA , LSAT ))})
sd ( law.boot )
[1] 0 .1336493
16/73
Error estándar del coeficiente de correlación
cor.test.plus = function ( x ) {
list (x ,
Stand ard.Erro r =
unname ( sqrt ((1 - x $ estimate ˆ2) / x $ parameter )))
}
17/73
Error estándar del coeficiente de correlación
library ( bootstrap )
cor.test.plus ( cor.test ( law $ GPA , law $ LSAT ))
sample estimates :
cor
0 .7763745
Stand ard.Error
[1] 0 .174806
18/73
Ejemplo de los institutos de máster en leyes
library ( ggplot2 )
qplot ( BStamannos , BSestimas , geom = " path " )
19/73
Ejemplo de los institutos de máster en leyes
21/73
Ejemplo de los institutos de máster en leyes
library ( latticeExtra )
22/73
23/73
Ejemplo de los institutos de máster en leyes
sd ( law.boot )
[1] 0 .1327579
sd ( law82.boot )
[1] 0 .1309014
24/73
Bootstrap Paramétrico
25/73
Bootstrap Paramétrico
(x̄ , ȳ )
!
(xi − x )2
P P
1 i (xi − x )(yi − y )
P i P 2
14 i (xi − x )(yi − y ) i (yi − y )
26/73
Bootstrap Paramétrico
27/73
Ejemplo de los centros de estudios de máster
x = µx + σx z1
z1 + c · z2
y = µy + σy √
1 + c2
donde z1 , z2 ∼ N(0, 1)
s
σx2 σy2
c= 2
−1
σxy
28/73
Ejemplo de los institutos de máster en leyes
library ( bootstrap )
29/73
Ejemplo de los institutos de máster en leyes
30/73
Ejemplo de los institutos de máster en leyes
# Bootstrap parametrico
pBoot = replicate (5000 , cor ( paraBoot ( law ))[2 ,1])
# Aproximacion bootstrap
sd ( pBoot )
[1] 0 .1214904
[1] 0 .1146741
31/73
Ejemplo de los institutos de máster en leyes
library ( latticeExtra )
32/73
33/73
Bootstrap Paramétrico
34/73
Aplicación a datos multivariantes
library ( bootstrap )
data ( scor )
plot ( scor )
35/73
36/73
Aplicación a datos multivariantes
I El vector de medias y la correspondiente matriz de covarianzas son:
colMeans ( scor )
cov ( scor )
37/73
Aplicación a datos multivariantes
I Se calculan los autovalores y autovectores de la matriz de
covarianzas.
I La matriz 5 × 5 de covarianzas tiene 5 autovalores positivos en orden
b1 ≥ λ
decreciente: λ b2 ≥ λb3 ≥ λb4 ≥ λ
b5 y a cada uno de ellos le
corresponde un autovector diferente.
round ( eigen ( cov ( scor )) $ values ,3) # Autovalores
38/73
Aplicación a datos multivariantes
xi = Q i v
para i = 1, . . . , 88
39/73
Aplicación a datos multivariantes
40/73
Aplicación a datos multivariantes
λb1
θb = P5
i=1 λi
b
686,990
θb = = 0,619
686,990 + 202,111 + 103,747 + 84,630 + 32,153
41/73
Aplicación a datos multivariantes
I Cuanto más cerca estén los puntos respecto al eje del componente
principal, mayor será el valor de θ.
b
42/73
Aplicación a datos multivariantes
43/73
Aplicación a datos multivariantes
b∗
λ
θb∗ = P5 1
b∗
j=1 λj
44/73
Aplicación a datos multivariantes
library ( bootstrap )
[1] 0 .619115
45/73
Aplicación a datos multivariantes
[1] 0 .04570752
library ( ggplot2 )
qplot ( scor.boot $ thetastar , geom = " histogram " , binwidth =0 .02 ,
fill = I ( " lightgreen " ) , xlab = " Samples " ) +
geom _ vline ( xintercept = teta , col = " red " )
46/73
47/73
Aplicación a datos multivariantes
library ( bootstrap )
data ( scor )
X = scor
eigenTeta = function ( X ) {
ee = eigen ( cov ( X ))[[ " values " ]]
ee [1] / sum ( ee )
}
library ( latticeExtra )
densityplot ( eigendist , plot.points = FALSE ,
xlab = expression ( theta ))
48/73
49/73
Aplicación a datos multivariantes
I El autovector b
v1 que corresponde al mayor autovalor se le denomina
primer componente principal de G
I Supongamos que se trata de de resumir el rendimiento de los
estudiantes mediante un solo número, en lugar de con 5 notas.
I Se puede demostrar que la mejor combinación lineal de las 5 notas es
5
X
yi = vb1k xik
k=1
50/73
Aplicación a datos multivariantes
51/73
Aplicación a datos multivariantes
I Tanto b
v1 como bv2 son estadı́sticos del mismo modo que lo es θ,
b y de
este modo se puede aplicar el bootstrap para calcular su variabilidad.
library ( bootstrap )
data ( scor )
X = scor
eigenVec = function ( X ) {
ee = eigen ( cov ( X ))[[ " vectors " ]]
return ( cbind ( ee [ ,1] , ee [ ,2]))
}
52/73
Aplicación a datos multivariantes
53/73
54/73
Cuando puede fallar el bootstrap
I Consideramos el siguiente problema:
X se distribuye como una distribución uniforme en (0, θ).
El estimador de máxima verosimilitud para θ es el máx(Xi )
N = 50
X = runif ( N )
( thetaHat = max ( X ))
[1] 0 .990335
55/73
Cuando puede fallar el bootstrap
library ( latticeExtra )
56/73
57/73
Estructuras de datos generales
58/73
Problemas unimuestrales
59/73
60/73
Problemas unimuestrales
61/73
Problemas de dos muestras
62/73
Ejemplo de los ratones
I Se toma el ejemplo de las diferencias de medias entre ratones según
son tratamiento o control
[1] 30 .63492
B = 1000
[1] 26 .19047
63/73
Ejemplo de los ratones
library ( simpleboot )
sd ( b $ t )
[1] 27 .27626
64/73
Ejemplo de los ratones
B = 1000
library ( bootstrap )
mouse.boot.c = bootstrap ( mouse.c , B , mean )
mouse.boot.t = bootstrap ( mouse.t , B , mean )
m ou se .b o ot .d if f =
mouse.boot.t $ thetastar - mouse.boot.c $ thetastar
sd ( m ou s e. bo ot . di ff )
[1] 26 .58504
66/73
Ejemplo de los ratones
[1] 30 .63492
67/73
Ejemplo de los ratones
library ( boot )
t.fun = function ( data ,i , n ){
bobo = data [ i ]
mean ( bobo [1: n ]) - mean ( bobo [ - c (1: n )])
}
Call :
boot ( data = Losratones , statistic = t.fun , R = 1000 , n = n )
Bootstrap Statistics :
original bias std. error
t1 * 30 .63492 -29 .97352 27 .83245
68/73
Estructuras de datos generales
69/73
70/73
Otro ejemplo
data ( sleep )
# test t Student
with ( sleep , t.test ( extra∼group ) $ statistic )
t
-1 .860813
71/73
Otro ejemplo
scores = sleep $ extra
R = 1000
t.valores = numeric ( R )
for ( i in 1: R ) {
grupo1 = sample ( scoresG1 , size =10 , replace = T )
grupo2 = sample ( scoresG2 , size =10 , replace = T )
t.valores [ i ] = t.test ( grupo1 , grupo2 ) $ statistic
}
sd ( t.valores )
[1] 1 .103293
72/73
73/73