SlideShare uma empresa Scribd logo
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
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
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
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...")
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)
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]))
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() }
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)
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)
File: /media/SAMSUNG/10-CoursesAndD…011]/00.bootstrap.evaluation.r
}
#-----------------------------------------------------------------------------# Exibindo mensagem de finalização do script
#-----------------------------------------------------------------------------print('Fim do script ............ [OK]')

Page 10 of 10

Mais conteúdo relacionado

Semelhante a Bootstrap Evaluation in R - Source Code

14 algoritmos de classificacao de tabelas
14   algoritmos de classificacao de tabelas14   algoritmos de classificacao de tabelas
14 algoritmos de classificacao de tabelas
Ricardo Bolanho
 
Introdução à Linguagem de programação Python
Introdução à Linguagem de programação PythonIntrodução à Linguagem de programação Python
Introdução à Linguagem de programação Python
dmmartins
 

Semelhante a Bootstrap Evaluation in R - Source Code (20)

MRO predict
MRO predictMRO predict
MRO predict
 
14 algoritmos de classificacao de tabelas
14   algoritmos de classificacao de tabelas14   algoritmos de classificacao de tabelas
14 algoritmos de classificacao de tabelas
 
Uso de estatísticas pelo postgre sql
Uso de estatísticas pelo postgre sqlUso de estatísticas pelo postgre sql
Uso de estatísticas pelo postgre sql
 
MRO simula
MRO simulaMRO simula
MRO simula
 
Apostila rpira
Apostila rpiraApostila rpira
Apostila rpira
 
Notas de aula 1 cinematica mecanismos
Notas de aula 1 cinematica mecanismosNotas de aula 1 cinematica mecanismos
Notas de aula 1 cinematica mecanismos
 
Como medir a sua aplicação - Python Brasil 8
Como medir a sua aplicação - Python Brasil 8Como medir a sua aplicação - Python Brasil 8
Como medir a sua aplicação - Python Brasil 8
 
Pythonbrasil8
Pythonbrasil8Pythonbrasil8
Pythonbrasil8
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em Python
 
Introdução à Linguagem de programação Python
Introdução à Linguagem de programação PythonIntrodução à Linguagem de programação Python
Introdução à Linguagem de programação Python
 
Minicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDayMinicurso Básico de Python - PythonDay
Minicurso Básico de Python - PythonDay
 
Inteligencia artificial 10
Inteligencia artificial 10Inteligencia artificial 10
Inteligencia artificial 10
 
O que mudou no Ruby 1.9
O que mudou no Ruby 1.9O que mudou no Ruby 1.9
O que mudou no Ruby 1.9
 
Tutorial Octave Matlab
Tutorial Octave MatlabTutorial Octave Matlab
Tutorial Octave Matlab
 
Introdução ao Octave
Introdução ao OctaveIntrodução ao Octave
Introdução ao Octave
 
Curso matlab 6 especiais
Curso matlab 6 especiaisCurso matlab 6 especiais
Curso matlab 6 especiais
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Map, filter e reduce
Map, filter e reduceMap, filter e reduce
Map, filter e reduce
 

Mais de Michel Alves

Mais de Michel Alves (20)

Texture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseTexture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU Use
 
Intelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesIntelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color Palettes
 
A Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresA Framework for Harmonic Color Measures
A Framework for Harmonic Color Measures
 
Effectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesEffectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment Indexes
 
Introduction to Kernel Functions
Introduction to Kernel FunctionsIntroduction to Kernel Functions
Introduction to Kernel Functions
 
About Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceAbout Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV Space
 
Color Harmonization - Results
Color Harmonization - ResultsColor Harmonization - Results
Color Harmonization - Results
 
Wave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseWave Simulation Using Perlin Noise
Wave Simulation Using Perlin Noise
 
Similarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexSimilarity Maps Using SSIM Index
Similarity Maps Using SSIM Index
 
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationQualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and Reports
 
Month Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMonth Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJ
 
Color Palettes in R
Color Palettes in RColor Palettes in R
Color Palettes in R
 
Sigmoid Curve Erf
Sigmoid Curve ErfSigmoid Curve Erf
Sigmoid Curve Erf
 
Hue Wheel Prototype
Hue Wheel PrototypeHue Wheel Prototype
Hue Wheel Prototype
 
Cosine Curve
Cosine CurveCosine Curve
Cosine Curve
 
Triangle Mesh Plot
Triangle Mesh PlotTriangle Mesh Plot
Triangle Mesh Plot
 
Triangle Plot
Triangle PlotTriangle Plot
Triangle Plot
 
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesCapacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video Slides
 
Capacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogCapacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function Catalog
 

Último

GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfGRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
rarakey779
 
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdfmanual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
rarakey779
 

Último (20)

CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptxCIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
Junho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaJunho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na Igreja
 
Evangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfEvangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdf
 
Desastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessDesastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadess
 
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptxSlides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
 
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptxDIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
 
AULA Saúde e tradição-3º Bimestre tscqv.pptx
AULA Saúde e tradição-3º Bimestre tscqv.pptxAULA Saúde e tradição-3º Bimestre tscqv.pptx
AULA Saúde e tradição-3º Bimestre tscqv.pptx
 
curso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdfcurso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdf
 
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfGRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
 
Atividade português 7 ano página 38 a 40
Atividade português 7 ano página 38 a 40Atividade português 7 ano página 38 a 40
Atividade português 7 ano página 38 a 40
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anos
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
 
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdfmanual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
 
Memórias_póstumas_de_Brás_Cubas_ Machado_de_Assis
Memórias_póstumas_de_Brás_Cubas_ Machado_de_AssisMemórias_póstumas_de_Brás_Cubas_ Machado_de_Assis
Memórias_póstumas_de_Brás_Cubas_ Machado_de_Assis
 
Poema - Reciclar é preciso
Poema            -        Reciclar é precisoPoema            -        Reciclar é preciso
Poema - Reciclar é preciso
 
Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)
 
Exercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfExercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdf
 
Apresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoApresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimento
 

Bootstrap Evaluation in R - Source Code

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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...")
  • 5. 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)
  • 6. 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]))
  • 7. 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() }
  • 8. 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)
  • 9. 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)
  • 10. File: /media/SAMSUNG/10-CoursesAndD…011]/00.bootstrap.evaluation.r } #-----------------------------------------------------------------------------# Exibindo mensagem de finalização do script #-----------------------------------------------------------------------------print('Fim do script ............ [OK]') Page 10 of 10