Re: [R-br] Algoritmo do boot.ci do livro do Davison, A.C. and Hinkley, D.V. (1997)!

Verdade!! Valeu. Agora uma coisa que estou quebrando a cabeça é a seguinte. Porque que o boot gerado pela função boot está extremamente diferente do boot gerado na 'unha'?. Vejamos um CMR. x <- c(0.75,2.55,1.40,0.80,2.60) y <- c(0.8249,0.797,0.7762,0.7797,0.7483) da <- data.frame(x,y) corr(da) mean(boot(da,corr,10000)$t) #Esta função eu fiz para evitar NAs, já que algumas amostragens são todas iguais, gerando um desvio padrão zero. sa <- function(x){ y <- sample(x,replace=T) if(y[1:1] == y[2:2] && y[1:1] == y[3:3] && y[1:1] == y[4:4] && y[1:1] == y[5:5]){ z <- sample(x,replace=T)}else{ y} } boot_da <- numeric(10000) n <- 10000) for(i in 1:n){ boot_da[[i]] <- corr(matrix(c(sa(da[,1]),sa(da[,2])),ncol=2)) } boot_da mean(boot_da) Se alguém puder ajudar de novo, agradeço. Abraços! Allaman (S,f,P) M.Sc Ivan Bezerra Allaman Zootecnista Doutorando em Produção Animal/Aquicultura - UFLA email e msn - ivanalaman@yahoo.com.br Tel: (35)3826-6608/9900-2924

A função 'corr' é específica para ser utilizada dentro da função 'boot', então no seu programa troque o boot::corr pelo stats::cor. Uma outra coisa, dentro do loop vc roda a função 'sa' separadamente para as colunas e isso é um problema, pois vc quebra qualquer estrutura de relação entre as variáveis. Em vez disso, modifique a função 'sa' para reamostrar as linhas do seu data frame e coloque 'da' como o input da função no loop. Att.,Rubem --- Em qui, 14/7/11, Ivan Bezerra Allaman <ivanalaman@yahoo.com.br> escreveu: De: Ivan Bezerra Allaman <ivanalaman@yahoo.com.br> Assunto: Re: [R-br] Algoritmo do boot.ci do livro do Davison, A.C. and Hinkley, D.V. (1997)! Para: "R Brasil" <r-br@listas.c3sl.ufpr.br> Data: Quinta-feira, 14 de Julho de 2011, 14:44 Verdade!! Valeu. Agora uma coisa que estou quebrando a cabeça é a seguinte. Porque que o boot gerado pela função boot está extremamente diferente do boot gerado na 'unha'?. Vejamos um CMR. x <- c(0.75,2.55,1.40,0.80,2.60)y <- c(0.8249,0.797,0.7762,0.7797,0.7483) da <- data.frame(x,y)corr(da) mean(boot(da,corr,10000)$t) #Esta função eu fiz para evitar NAs, já que algumas amostragens são todas iguais, gerando um desvio padrão zero.sa <- function(x){ y <- sample(x,replace=T) if(y[1:1] == y[2:2] && y[1:1] == y[3:3] && y[1:1] == y[4:4] && y[1:1] == y[5:5]){ z <- sample(x,replace=T)}else{ y}} boot_da <- numeric(10000)n <- 10000)for(i in 1:n){ boot_da[[i]] <- corr(matrix(c(sa(da[,1]),sa(da[,2])),ncol=2)) } boot_da mean(boot_da) Se alguém puder ajudar de novo, agradeço. Abraços! Allaman(S,f,P) M.Sc Ivan Bezerra Allaman Zootecnista Doutorando em Produção Animal/Aquicultura - UFLA email e msn - ivanalaman@yahoo.com.br Tel: (35)3826-6608/9900-2924 -----Anexo incorporado----- _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
participantes (2)
-
Ivan Bezerra Allaman
-
Rubem Kaipper Ceratti