In statistics, bootstrapping is a method for assigning measures of accuracy to sample estimates. This technique allows estimation of the sampling distribution of almost any statistic using only very simple methods. Generally, it falls in the broader class of resampling methods.
1. Bootstrap:
Uma T´cnica de Minimiza¸˜o de Vi´s de um Estimador
e
ca
e
Ana Carla de Carvalho Correia
Maria Helynne Lima Silva
Michel Alves dos Santos
Universidade Federal de Alagoas
Instituto de Computa¸˜o
ca
Macei´ – AL, 31 de Maio de 2011
o
2. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bradley Efron
Nasceu em 24 de maio de 1938
Participou do California Institute of Technology, graduando-se em
Matem´tica em 1960
a
Doutorado em Universidade de Stanford
Suspenso por um ano por seu envolvimento com o Chaparral Stanford
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
2 / 11
3. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bradley Efron
Nasceu em 24 de maio de 1938
Participou do California Institute of Technology, graduando-se em
Matem´tica em 1960
a
Doutorado em Universidade de Stanford
Suspenso por um ano por seu envolvimento com o Chaparral Stanford
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
2 / 11
4. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bradley Efron
Nasceu em 24 de maio de 1938
Participou do California Institute of Technology, graduando-se em
Matem´tica em 1960
a
Doutorado em Universidade de Stanford
Suspenso por um ano por seu envolvimento com o Chaparral Stanford
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
2 / 11
5. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bradley Efron
Nasceu em 24 de maio de 1938
Participou do California Institute of Technology, graduando-se em
Matem´tica em 1960
a
Doutorado em Universidade de Stanford
Suspenso por um ano por seu envolvimento com o Chaparral Stanford
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
2 / 11
6. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bootstrap
M´todo gen´rico para estimar variabilidade em estat´
e
e
ıstica
Originalmente proposto por Efron em (1979)
Publicado no Annals of Statistics
“A d´cada do Bootstrap”
e
Dependˆncia do uso de computadores
e
Populariza¸˜o com os progressos da inform´tica nas ultimas d´cadas
ca
a
´
e
do s´culo XX
e
[3]
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
3 / 11
7. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bootstrap
M´todo gen´rico para estimar variabilidade em estat´
e
e
ıstica
Originalmente proposto por Efron em (1979)
Publicado no Annals of Statistics
“A d´cada do Bootstrap”
e
Dependˆncia do uso de computadores
e
Populariza¸˜o com os progressos da inform´tica nas ultimas d´cadas
ca
a
´
e
do s´culo XX
e
[3]
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
3 / 11
8. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bootstrap
M´todo gen´rico para estimar variabilidade em estat´
e
e
ıstica
Originalmente proposto por Efron em (1979)
Publicado no Annals of Statistics
“A d´cada do Bootstrap”
e
Dependˆncia do uso de computadores
e
Populariza¸˜o com os progressos da inform´tica nas ultimas d´cadas
ca
a
´
e
do s´culo XX
e
[3]
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
3 / 11
9. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bootstrap
M´todo gen´rico para estimar variabilidade em estat´
e
e
ıstica
Originalmente proposto por Efron em (1979)
Publicado no Annals of Statistics
“A d´cada do Bootstrap”
e
Dependˆncia do uso de computadores
e
Populariza¸˜o com os progressos da inform´tica nas ultimas d´cadas
ca
a
´
e
do s´culo XX
e
[3]
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
3 / 11
10. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bootstrap
M´todo gen´rico para estimar variabilidade em estat´
e
e
ıstica
Originalmente proposto por Efron em (1979)
Publicado no Annals of Statistics
“A d´cada do Bootstrap”
e
Dependˆncia do uso de computadores
e
Populariza¸˜o com os progressos da inform´tica nas ultimas d´cadas
ca
a
´
e
do s´culo XX
e
[3]
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
3 / 11
11. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bootstrap
M´todo gen´rico para estimar variabilidade em estat´
e
e
ıstica
Originalmente proposto por Efron em (1979)
Publicado no Annals of Statistics
“A d´cada do Bootstrap”
e
Dependˆncia do uso de computadores
e
Populariza¸˜o com os progressos da inform´tica nas ultimas d´cadas
ca
a
´
e
do s´culo XX
e
[3]
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
3 / 11
12. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bootstrap
Algumas utiliza¸˜es:
co
Estimar o vi´s e a variˆncia de estimadores ou testes de hip´teses
e
a
o
calibrados
Baseia-se na constru¸˜o de distribui¸˜es por reamostragem, com
ca
co
reposi¸˜o da amostra original
ca
Tem por base que o pesquisador pode tratar sua amostra como se
fosse a popula¸˜o que deu origem aos dados
ca
Possibilita estimar caracter´
ısticas da popula¸˜o como m´dia,
ca
e
variˆncia, percentis, etc.
a
[4]
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
4 / 11
13. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bootstrap
Algumas utiliza¸˜es:
co
Estimar o vi´s e a variˆncia de estimadores ou testes de hip´teses
e
a
o
calibrados
Baseia-se na constru¸˜o de distribui¸˜es por reamostragem, com
ca
co
reposi¸˜o da amostra original
ca
Tem por base que o pesquisador pode tratar sua amostra como se
fosse a popula¸˜o que deu origem aos dados
ca
Possibilita estimar caracter´
ısticas da popula¸˜o como m´dia,
ca
e
variˆncia, percentis, etc.
a
[4]
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
4 / 11
14. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bootstrap
Algumas utiliza¸˜es:
co
Estimar o vi´s e a variˆncia de estimadores ou testes de hip´teses
e
a
o
calibrados
Baseia-se na constru¸˜o de distribui¸˜es por reamostragem, com
ca
co
reposi¸˜o da amostra original
ca
Tem por base que o pesquisador pode tratar sua amostra como se
fosse a popula¸˜o que deu origem aos dados
ca
Possibilita estimar caracter´
ısticas da popula¸˜o como m´dia,
ca
e
variˆncia, percentis, etc.
a
[4]
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
4 / 11
15. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bootstrap
Algumas utiliza¸˜es:
co
Estimar o vi´s e a variˆncia de estimadores ou testes de hip´teses
e
a
o
calibrados
Baseia-se na constru¸˜o de distribui¸˜es por reamostragem, com
ca
co
reposi¸˜o da amostra original
ca
Tem por base que o pesquisador pode tratar sua amostra como se
fosse a popula¸˜o que deu origem aos dados
ca
Possibilita estimar caracter´
ısticas da popula¸˜o como m´dia,
ca
e
variˆncia, percentis, etc.
a
[4]
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
4 / 11
16. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bootstrap
Algumas utiliza¸˜es:
co
Estimar o vi´s e a variˆncia de estimadores ou testes de hip´teses
e
a
o
calibrados
Baseia-se na constru¸˜o de distribui¸˜es por reamostragem, com
ca
co
reposi¸˜o da amostra original
ca
Tem por base que o pesquisador pode tratar sua amostra como se
fosse a popula¸˜o que deu origem aos dados
ca
Possibilita estimar caracter´
ısticas da popula¸˜o como m´dia,
ca
e
variˆncia, percentis, etc.
a
[4]
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
4 / 11
17. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Bootstrap
M´todo n˜o-param´trico:
e
a
e
Cada amostra de tamanho n ´ obtida amostrando, com reposi¸˜o, os
e
ca
dados originais, onde a estima¸˜o dos parˆmetros ´ realizada para cada
ca
a
e
amostra, sendo este processo repetido B vezes
Na simula¸˜o param´trica:
ca
e
Os dados s˜o gerados da distribui¸˜o de probabilidade dos dados
a
ca
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
5 / 11
18. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Estimadores utilizados
Reduzindo o vi´s de trˆs estimadores:
e
e
1
2
3
M´todo por analogia θ1 , baseado no primeiro momento amostral
e
M´todo por analogia θ2 , baseado no segundo momento amostral
e
Estimador de M´xima Verossimilhan¸a θmv
a
c
θ1 =
Pn
2
i=1 x
n
q P i
n
3
θ2 = n i=1 xi2
θmv = max(x1 , x2 , ..., xn )
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
6 / 11
19. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Estimadores utilizados
Reduzindo o vi´s de trˆs estimadores:
e
e
1
2
3
M´todo por analogia θ1 , baseado no primeiro momento amostral
e
M´todo por analogia θ2 , baseado no segundo momento amostral
e
Estimador de M´xima Verossimilhan¸a θmv
a
c
θ1 =
Pn
2
i=1 x
n
q P i
n
3
θ2 = n i=1 xi2
θmv = max(x1 , x2 , ..., xn )
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
6 / 11
20. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Estimadores utilizados
Reduzindo o vi´s de trˆs estimadores:
e
e
1
2
3
M´todo por analogia θ1 , baseado no primeiro momento amostral
e
M´todo por analogia θ2 , baseado no segundo momento amostral
e
Estimador de M´xima Verossimilhan¸a θmv
a
c
θ1 =
Pn
2
i=1 x
n
q P i
n
3
θ2 = n i=1 xi2
θmv = max(x1 , x2 , ..., xn )
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
6 / 11
21. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Estimadores utilizados
Reduzindo o vi´s de trˆs estimadores:
e
e
1
2
3
M´todo por analogia θ1 , baseado no primeiro momento amostral
e
M´todo por analogia θ2 , baseado no segundo momento amostral
e
Estimador de M´xima Verossimilhan¸a θmv
a
c
θ1 =
Pn
2
i=1 x
n
q P i
n
3
θ2 = n i=1 xi2
θmv = max(x1 , x2 , ..., xn )
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
6 / 11
22. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Redu¸˜o do custo computacional
ca
Substituindo o comando for pela fun¸˜o lapply
ca
b o o t s t r a p < f u n c t i o n (X , B , f u n c ) {
−
t < f u n c (X)
−
t b s < 2∗ t − mean ( u n l i s t ( l a p p l y ( 1 : B , f u n c t i o n ( i ) i< f u n c ( s a m p l e (X , r e p l a c e=TRUE)
−
−
))))
r e t u r n ( t bs )
}
montecarlo < f u n c t i o n ( n ){
−
e1 < e2 < emv < e1B < e2B < emvB < v e c t o r ( mode=” n u m e r i c ” , l e n g t h =1e2 )
−
−
−
−
−
−
l a p p l y ( 1 : 1 e2 , f u n c t i o n ( r ) { X < u n i f ( 1 0 )
−r
e1 [ r ] < − U t 1 (X)
<
e2 [ r ] < − U t 2 (X)
<
emv [ r ] < − U tmv (X)
<
e1B [ r ] < − b o o t s t r a p (X , n , U t 1 )
<
e2B [ r ] < − b o o t s t r a p (X , n , U t 2 )
<
emvB [ r ] < − b o o t s t r a p (X , n , U tmv )
<
})
}
[2]
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
7 / 11
23. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Estimador: θ1 , N ∈ [3,1000] com intercala¸˜es de 5 , B = 200
co
Estimador: θ1 , B ∈ [3,1000] com intercala¸˜es de 5 , N = 10
co
[1]
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
8 / 11
24. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Estimador: θ2 , N ∈ [3,1000] com intercala¸˜es de 5 , B = 200
co
Estimador: θ2 , B ∈ [3,1000] com intercala¸˜es de 5 , N = 10
co
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
9 / 11
25. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Estimador: θmv , N ∈ [3,1000] com intercala¸˜es de 5 , B = 200
co
Estimador: θmv , B ∈ [3,1000] com intercala¸˜es de 5 , N = 10
co
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
10 / 11
26. Bradley Efron
Hist´ria do Bootstrap
o
Implementa¸˜o da T´cnica
ca
e
Gr´ficos
a
Referˆncias
e
The lapply function.
Package ‘lattice’.
Paulo Henrique Ferreira da Silva and Francisco Louzada Neto.
Medidas do valor preditivo de modelos de classifica¸˜o aplicados a
ca
dados de cr´dito.
e
Edson Zangiacomi Martinez and Francisco Louzada-Neto.
Estima¸˜o intervalar via bootstrap.
ca
BRAZILIAN JOURNAL OF MATHEMATICS AND STATISTICS,
19:217–251, 2001.
Ana, Helynne e Michel (UFAL)
Bootstrap
Estat´
ıstica Computacional
11 / 11
27. File: /media/SAMSUNG/10-CoursesAndD…011]/00.bootstrap.evaluation.r
#-----------------------------------------------------------------------------# About : Exemplo de comparação entre algoritmos quadráticos e loglineares
# Author : Michel A. dos Santos, Maria Helynne e Ana Carla
# Date
: 30/05/2011 - Maio - 2011
#-----------------------------------------------------------------------------#-----------------------------------------------------------------------------# Carregamento das bibliotecas necessárias para processamento do script
#-----------------------------------------------------------------------------# Definindo o nome das bibliotecas que devem ser carregadas
pkg = c('lattice')
# Carregando bibliotecas
print('Carregando bibliotecas necessárias para execução do script...')
for (idx_pkg in 1:length(pkg))
{
myimg.msgerr <- paste('A seguinte biblioteca não pôde ser carregada: ', pkg[idx_pkg])
if (!require(pkg[idx_pkg], character.only = TRUE)) stop(myimg.msgerr)
}
#-----------------------------------------------------------------------------# Configurações iniciais do script e inicialização de variáveis:
#-----------------------------------------------------------------------------#-----------------------------------------------------------------------------# Variável de configuração que verifica se os gráficos devem ser salvos
#-----------------------------------------------------------------------------my.save.result <- TRUE
#-----------------------------------------------------------------------------# Variável de configuração que verifica se o dataframe deve ser salvo
#-----------------------------------------------------------------------------my.data.frame.save.result <- TRUE
#-----------------------------------------------------------------------------# Variável de configuração que verifica se os resultados devem ser vistos
# através de uma grade.
#-----------------------------------------------------------------------------my.view.grid.results <- FALSE
#-----------------------------------------------------------------------------# Variáveis de controle do problema (variáveis globais)
#------------------------------------------------------------------------------
Page 1 of 10
28. File: /media/SAMSUNG/10-CoursesAndD…011]/00.bootstrap.evaluation.r
valor1
valor2
valormv
<- 0
<- 0
<- 0
# Método por analogia | Primeiro momento amostral
# Método por analogia | Segundo momento amostral
# Máxima verossimilhança
#-----------------------------------------------------------------------------# Definição das funções e estruturas implementadas para o problema.
#-----------------------------------------------------------------------------# Estimador - Teta 1 - Primeiro momento amostral
MyU_T1 <- function(X) { return ( 2*mean(X) ) }
# Estimador - Teta 2 - Segundo momento amostral
MyU_T2 <- function(X) { return (sqrt(3*mean(X^2))) }
# Estimador - Máxima Verossimilhança
MyU_TMV <- function(X) { return ( max(X) ) }
# Definição da função que calcula o erro quadrático médio (MSE)
MyMeanSquaredError <- function(X) { return( (mean(X)-1)^2 + var(X) ) }
# Bootstrap sem o uso de looping de maneira explícita
NotExplicitlyIterativeBootstrap <- function(X, B, func)
{
t <- func(X)
t_bs <- 2*t - mean(unlist(lapply(1:B, function(i) i<- func(sample(X,replace=TRUE)))))
return (t_bs)
}
# Montecarlo sem o uso explicito de looping
NotExplicitlyIterativeMontecarlo <- function(number.of.observations = 10,
number.of.bootstrap.iterations = 200,
length.of.my.vector = 100)
{
n
<- number.of.observations
# Número de observações em runif
MyNobi <- number.of.bootstrap.iterations # Número de iterações no bootstrap
MyLen <- length.of.my.vector
# Tamanho do vetor de estimadores
# Criando vetores numéricos
e1 <- e2 <- emv <- e1B <- e2B <- emvB <- vector(mode="numeric",length=MyLen)
lapply(1:MyLen, function(r){ X <-runif(n)
e1[r]
<<- MyU_T1(X)
Page 2 of 10
29. File: /media/SAMSUNG/10-CoursesAndD…011]/00.bootstrap.evaluation.r
e2[r]
emv[r]
e1B[r]
e2B[r]
emvB[r]
})
<<<<<<<<<<-
MyU_T2(X)
MyU_TMV(X)
NotExplicitlyIterativeBootstrap(X, MyNobi, MyU_T1)
NotExplicitlyIterativeBootstrap(X, MyNobi, MyU_T2)
NotExplicitlyIterativeBootstrap(X, MyNobi, MyU_TMV)
valor1 <<- ( 1 - (MyMeanSquaredError(e1B) / MyMeanSquaredError(e1)) )*100
valor2 <<- ( 1 - (MyMeanSquaredError(e2B) / MyMeanSquaredError(e2)) )*100
valormv <<- ( 1 - (MyMeanSquaredError(emvB) / MyMeanSquaredError(emv)))*100
}
# Bootstrap com uso de looping de maneira explícita
ExplicitlyIterativeBootstrap <- function(X, B, func)
{
t <- func(X)
vecB <- vector(mode="numeric",length=B)
for (b in 1:B) vecB[b] <- func(sample(X,replace=TRUE))
t_bs <- 2*t - mean(vecB)
return (t_bs)
}
# Montecarlo com uso explicito de looping
ExplicitlyIterativeMontecarlo <- function(number.of.observations = 10,
number.of.bootstrap.iterations = 200,
length.of.my.vector = 100)
{
n
<- number.of.observations
# Número de observações em runif
MyNobi <- number.of.bootstrap.iterations # Número de iterações no bootstrap
MyLen <- length.of.my.vector
# Tamanho do vetor de estimadores
e1 <- e2 <- emv <- e1B <- e2B <- emvB <- vector(mode="numeric",length=MyLen)
for (r in 1:MyLen)
{
X <- runif(n)
e1[r]
<- MyU_T1(X)
e2[r]
<- MyU_T2(X)
emv[r] <- MyU_TMV(X)
Page 3 of 10
30. File: /media/SAMSUNG/10-CoursesAndD…011]/00.bootstrap.evaluation.r
Page 4 of 10
e1B[r] <- ExplicitlyIterativeBootstrap(X, MyNobi, MyU_T1)
e2B[r] <- ExplicitlyIterativeBootstrap(X, MyNobi, MyU_T2)
emvB[r] <- ExplicitlyIterativeBootstrap(X, MyNobi, MyU_TMV)
}
MyMeanSquaredError(e1)
MyMeanSquaredError(e2)
MyMeanSquaredError(emv)
MyMeanSquaredError(e1B)
MyMeanSquaredError(e2B)
MyMeanSquaredError(emvB)
}
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# MAIN - Começo da execução do código.
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Capturando o tempo de inicio da atividade.
MyStartTime = Sys.time()
# Executando método montecarlo para um determinado número N
print("Executando Montecarlo explicitamente iterativo...")
my.number.of.observations
<- 100
my.number.of.bootstrap.iterations <- 200
my.length.of.my.vector
<- 100
ExplicitlyIterativeMontecarlo(my.number.of.observations, my.number.of.bootstrap.iterations, my.length.of.my.vector)
# Capturando o tempo de término das atividade.
MyEndTime = Sys.time()
# Visualizando o tempo para processamento do método
MyMatrixTime <- matrix(c("MyStartTime",MyStartTime, "MyEndTime", MyEndTime, "Total Time:", MyEndTime - MyStartTime),
ncol=2, byrow=TRUE)
print(MyMatrixTime)
if (my.view.grid.results) View( MyMatrixTime, title="Processing Time for Explicit Iterative Montecarlo" )
# Capturando o tempo de inicio da atividade.
MyStartTime = Sys.time()
# Executando método montecarlo para um determinado número N
print("Executando Montecarlo não explicitamente iterativo...")
31. File: /media/SAMSUNG/10-CoursesAndD…011]/00.bootstrap.evaluation.r
Page 5 of 10
my.number.of.observations
<- 100
my.number.of.bootstrap.iterations <- 200
my.length.of.my.vector
<- 100
NotExplicitlyIterativeMontecarlo(my.number.of.observations, my.number.of.bootstrap.iterations, my.length.of.my.vecto
r)
# Capturando o tempo de término das atividade.
MyEndTime = Sys.time()
# Visualizando o tempo para processamento do método
MyMatrixTime <- matrix(c("MyStartTime",MyStartTime, "MyEndTime", MyEndTime, "Total Time:", MyEndTime - MyStartTime),
ncol=2, byrow=TRUE)
print(MyMatrixTime)
if (my.view.grid.results) View( MyMatrixTime, title="Processing Time for Not Explicit Iterative Montecarlo" )
#-----------------------------------------------------------------------------# Produção de amostras obtidas através do método bootstrap. A partir daqui
# iremos armazenar o data.frame referente as amostras obtidas através do método
# bootstrap e os gráficos gerados a partir do montante de dados final.
#-----------------------------------------------------------------------------# Estipulando vetor de comparações utilizado no bootstrap
my.start.of.sequence <- 3
# Valor inicial do número de iterações
my.end.of.sequence
<- 100
# Parâmetro final de iterações B do bootstrap
my.jump.of.sequence <- 5
# Valor do salto dado dentro da seqüência
MyB = c(seq(my.start.of.sequence, my.end.of.sequence, my.jump.of.sequence))
# Exibindo informações relativas ao parâmetro B
print("")
print("Exibindo informações relativas ao parâmetro B")
print(paste("Início do intervalo de avaliação:", my.start.of.sequence))
print(paste("Fim do intervalo de avaliação:", my.end.of.sequence))
print(paste("Incremento do intervalo de avaliação:", my.jump.of.sequence))
print("")
# Exeutando o método montecarlo pela primeira vez
print("Obtendo os B valores necessários para efetivação do método...")
print(paste("Avaliação com B igual a:", my.start.of.sequence))
NotExplicitlyIterativeMontecarlo(my.number.of.observations, my.start.of.sequence, my.length.of.my.vector)
# Amostras para os dados processados transformadas em vetores
pE1 = c(valor1)
32. File: /media/SAMSUNG/10-CoursesAndD…011]/00.bootstrap.evaluation.r
Page 6 of 10
pE2 = c(valor2)
pE3 = c(valormv)
# Executando Montecarlo tomando por base os valores de uma sequência.
for (i in seq(my.start.of.sequence + my.jump.of.sequence, my.end.of.sequence, my.jump.of.sequence))
{
print(paste("Avaliação com B igual a:", i))
NotExplicitlyIterativeMontecarlo(my.number.of.observations, i, my.length.of.my.vector)
pE1 = c(pE1, valor1)
pE2 = c(pE2, valor2)
pE3 = c(pE3, valormv)
}
# Criando um dataframe com os dados adquiridos
my.data.frame <- data.frame(MyB, pE1, pE2, pE3)
# Exibindo valores do dataframe
print(my.data.frame)
if (my.view.grid.results) View(my.data.frame, title="Valores Adquiridos - Usando Montecarlo")
#-----------------------------------------------------------------------------# Inicio da plotagem
#-----------------------------------------------------------------------------#-----------------------------------------------------------------------------# Iniciando dispositivo de saída caso os resultados devam ser salvos em disco
#-----------------------------------------------------------------------------if (my.save.result)
{
save.name <- paste('saved.result.01[',my.end.of.sequence,'].pdf', sep='')
pdf(file = save.name, onefile = TRUE)
}
# PLOT CONFIG
my.col
<- 'black'
my.type
<- c("p","r")
my.pch
<- 20
my.scales <- list(x = list( relation = "free", limits = c(1, my.end.of.sequence*1.5)), y = list( relation = "free",
limits = c(-50, 50)))
my.xlab
<- "B"
my.ylab
<- expression(paste('Estimativa bootstrap do erro quadrático médio para o estimador ', theta[1]))
33. File: /media/SAMSUNG/10-CoursesAndD…011]/00.bootstrap.evaluation.r
Page 7 of 10
# PLOT
myplot01 <- xyplot(pE1~MyB, col = my.col, type = my.type, data = my.data.frame,
scales = my.scales, xlab = my.xlab, ylab = my.ylab, pch=my.pch)
if (!my.save.result) x11()
print(myplot01)
#-----------------------------------------------------------------------------# Encerrando dispositivo de saída caso os resultados devam ser salvos em disco
#-----------------------------------------------------------------------------if (my.save.result) { dev.off() }
#-----------------------------------------------------------------------------# Iniciando dispositivo de saída caso os resultados devam ser salvos em disco
#-----------------------------------------------------------------------------if (my.save.result)
{
save.name <- paste('saved.result.02[',my.end.of.sequence,'].pdf', sep='')
pdf(file = save.name, onefile = TRUE)
}
# PLOT CONFIG
my.col
<- 'red'
my.type
<- c("p","r")
my.pch
<- 20
my.scales <- list(x = list( relation = "free", limits = c(1, my.end.of.sequence*1.5)), y = list( relation = "free",
limits = c(-50, 50)))
my.xlab
<- "B"
my.ylab
<- expression(paste('Estimativa bootstrap do erro quadrático médio para o estimador ', theta[2]))
# PLOT
myplot02 <- xyplot(pE2~MyB, col = my.col, type = my.type, data = my.data.frame,
scales = my.scales, xlab = my.xlab, ylab = my.ylab, pch=my.pch)
if (!my.save.result) x11()
print(myplot02)
#-----------------------------------------------------------------------------# Encerrando dispositivo de saída caso os resultados devam ser salvos em disco
#-----------------------------------------------------------------------------if (my.save.result) { dev.off() }
34. File: /media/SAMSUNG/10-CoursesAndD…011]/00.bootstrap.evaluation.r
Page 8 of 10
#-----------------------------------------------------------------------------# Iniciando dispositivo de saída caso os resultados devam ser salvos em disco
#-----------------------------------------------------------------------------if (my.save.result)
{
save.name <- paste('saved.result.03[',my.end.of.sequence,'].pdf', sep='')
pdf(file = save.name, onefile = TRUE)
}
# PLOT CONFIG
my.col
<- 'green'
my.type
<- c("p","r")
my.pch
<- 20
my.scales <- list(x = list( relation = "free", limits = c(1, my.end.of.sequence*1.5)), y = list( relation = "free",
limits = c(-50, 50)))
my.xlab
<- "B"
my.ylab
<- expression(paste('Estimativa bootstrap do erro quadrático médio para o estimador ', theta[mv]))
# PLOT
myplot03 <- xyplot(pE3~MyB, col = my.col, type = my.type, data = my.data.frame,
scales = my.scales, xlab = my.xlab, ylab = my.ylab, pch=my.pch)
if (!my.save.result) x11()
print(myplot03)
#-----------------------------------------------------------------------------# Encerrando dispositivo de saída caso os resultados devam ser salvos em disco
#-----------------------------------------------------------------------------if (my.save.result) { dev.off() }
#-----------------------------------------------------------------------------# Abrindo uma nova janela no X para que não ocorra sobreposição das demais
#-----------------------------------------------------------------------------if (!my.save.result) x11(title="Confrontando as Estimativas Obtidas")
#-----------------------------------------------------------------------------# Iniciando dispositivo de saída caso os resultados devam ser salvos em disco
#-----------------------------------------------------------------------------if (my.save.result)
{
save.name <- paste('saved.result.04[',my.end.of.sequence,'].pdf', sep='')
pdf(file = save.name, onefile = TRUE)
35. File: /media/SAMSUNG/10-CoursesAndD…011]/00.bootstrap.evaluation.r
Page 9 of 10
}
# PLOT CONFIG
my.col
<- 'black'
my.ylab
<- expression(paste('Estimativa para ', theta[1]))
# PLOT
myplot01 <- xyplot(pE1~MyB, col = my.col, type = my.type, data = my.data.frame,
scales = my.scales, xlab = my.xlab, ylab = my.ylab, pch=my.pch)
# PLOT CONFIG
my.col
<- 'red'
my.ylab
<- expression(paste('Estimativa para ', theta[2]))
# PLOT
myplot02 <- xyplot(pE2~MyB, col = my.col, type = my.type, data = my.data.frame,
scales = my.scales, xlab = my.xlab, ylab = my.ylab, pch=my.pch)
# PLOT CONFIG
my.col
<- 'green'
my.ylab
<- expression(paste('Estimativa para ', theta[mv]))
# PLOT
myplot03 <- xyplot(pE3~MyB, col = my.col, type = my.type, data = my.data.frame,
scales = my.scales, xlab = my.xlab, ylab = my.ylab, pch=my.pch)
#PLOT
print(myplot01, position=c(0.1,0.1,1,1),split=c(1,1,2,2),more=T)
print(myplot02, position=c(0.1,0.1,1,1),split=c(1,2,2,2),more=T)
print(myplot03, position=c(0.1,0.1,1,1),split=c(2,1,2,2),more=F)
#-----------------------------------------------------------------------------# Encerrando dispositivo de saída caso os resultados devam ser salvos em disco
#-----------------------------------------------------------------------------if (my.save.result) { dev.off() }
#-----------------------------------------------------------------------------# Escrevendo os dados obtidos em disco
#-----------------------------------------------------------------------------if (my.data.frame.save.result)
{
my.file.name <- paste('Dados.Gerados.Em.',format(Sys.time(), "[Data.%F][Hora.%H.%M.%S]."),'[B.',my.start.of.sequen
ce,'.',my.end.of.sequence,'.',my.jump.of.sequence,']','.txt', sep='')
write.table(my.data.frame, file=my.file.name)