Você está na página 1de 5

Introdução ao Método Bootstrap

Prof. Víctor Hugo Lachos Dávila, Aldo M. Garay, Monique Massuia

8 de maio de 2014

Exemplo 01
Avaliaremos o rendimento de 16 trabalhadores, medido numa escala de 0 a 100 e
apresentados na Tabela 1. Este exercício tem como nalidade obter a esperança e
variância estimada pelo método bootstrap do 1o quartil.

Tabela 1: Rendimento dos trabalhadores.


67 67 52 52 66 55 42 68 80 50 87 84 70 79 83 75

Podemos ver facilmente que o 1o quartil da amostra é 54,25 e não podemos


calcular a variância deste parâmetro de interesse, pois não temos uma fórmula
conhecida.

Tabela 2: Valores obtidos com a metodología bootstrap.


Remostragem (B ) Esperança Variância Viés

100 58,19 45,49 3,94

200 57,69 41,53 3,44

1000 57,67 40,99 3,42

10000 57,61 40,75 3,37

1
2

percentilboot <- function(data,percent,B)


{ # B = Numero de remostras; percent = Percentil
perc <- quantile(data,percent)
per <- c(0)
for(i in 1:B)
{
rem <- sample(data,replace=TRUE)
per[i] <- quantile(rem,percent)
}
e <- mean(per)
v <- var(per)
bias <- e - perc
print("Esper, Var e Bias estimada Bootstrap:")
return(cbind(e,v,bias))
}

Exemplo 02
Um estudo interessante que faremos neste momento é tentar explicar o quanto um
automóvel consome de combustível por milhas percorridas. Para isso utilizaremos
os dados de Montgomery e Peck (1992)1 , o qual tem dados de 32 carros do ano
de 1975. Os dados disponíveis são: consumo de combustível em milhas por galão
(M pG), cavalos de potência (hp), quantidade de litros necessária para encher o
motor (D), peso do carro (P ) e largura do carro (L).
Com estas variáveis em mãos, iremos construir os intervalos de conanças assin-
1 Montgomery, D. C. e Peck, E. A.. "Introduction to Linear Regression Analysis", second
edition, John Wiley & SONS,INC.
3

tóticos e os intervalos de conança Bootstrap para os parâmetros β do modelo de


regressão linear que tem como variável dependente M pG e variável independente
D, hp, P e L.

#########################################################
##### calculando os Intervalos Assint\'{o}ticos para Betas
#########################################################

asympci <- function(y,x,alpha)


{
# Construct the confidence interval of (1-alpha)100%.
# By asymptotic theory.
n <- length(y)
k <- ncol(x)
beta <- solve(t(x)%*%x,t(x)%*%y)
e <- (y - x%*%beta)
s <- sqrt((t(e)%*%e)/(n-k))
sigma_beta <- (s)*sqrt(diag(solve(t(x)%*%x)))
clower <- c(0)
cupper <- c(0)
for(i in 1:k)
{
clower[i] <- beta[i] + qnorm(alpha/2)*sigma_beta[i]
cupper[i] <- beta[i] - qnorm(alpha/2)*sigma_beta[i]
}
ans <- list(cbind(beta,sigma_beta,clower,cupper))
return(ans)
}
4

> asympci(y,x,0.05)
[[1]]
sigma_beta clower cupper
cons 42.5783942488 13.182495321 16.741178194 68.415610304
D -0.0443071916 0.021654071 -0.086748391 -0.001865992
hp 0.0221177063 0.039174640 -0.054663176 0.098898589
P -0.0007416109 0.002713888 -0.006060734 0.004577512
L -0.1417602364 0.253024267 -0.637678686 0.354158214

##############################################################
##### Calcular os Intervalos Bootstrap para o EMV de Betas
##############################################################
ciboot <- function(y,x,alpha,B){
# Construct the confidence interval of (1-alpha)100%.
# By bootstrap method, with random X.
n <- length(y)
k <- ncol(x)
beta <- solve(t(x)%*%x,t(x)%*%y)
e <- (y - x%*%beta)
s <- sqrt((t(e)%*%e)/(n-k))
sigma_beta <- (s)*sqrt(diag(solve(t(x)%*%x)))
betares <- matrix(0,B,k)
aux <- matrix(0,B,k)
yres <- c(0)
xres <- matrix(0,n,k)
s <- 1:n
for(j in 1:B){
d <- sample(s,replace=TRUE)
5

for(i in 1:n){
yres[i] <- y[d[i]]
for(p in 1:k){
xres[i,p] <- x[d[i],p]
}
}
b <- solve(t(xres)%*%xres,t(xres)%*%yres)
for(v in 1:k){
betares[j,v] <- b[v]
}
}
betaBoot <- apply(betares,2,mean)
seBoot <- apply(betares,2,sd)
Inter_Inf <- betaBoot - qnorm(1-alpha/2)*seBoot
Inter_Sup <- betaBoot + qnorm(1-alpha/2)*seBoot
ans <- list(cbind(betaBoot, seBoot, Inter_Inf,Inter_Sup))
return(ans)
}
> ciboot(y,x,0.05,5000)
[[1]]
betaBoot seBoot Inter_Inf Inter_Sup
[1,] 42.4143668434 12.207301971 18.488494631 6.634024e+01
[2,] -0.0439942916 0.022491197 -0.088076228 8.764485e-05
[3,] 0.0251286071 0.042876187 -0.058907174 1.091644e-01
[4,] -0.0009361091 0.002319271 -0.005481797 3.609579e-03
[5,] -0.1372696505 0.235767136 -0.599364745 3.248254e-01

Você também pode gostar