
Boa Tarde pessoal ! Peguei do manual do Bioestat o exemplo da Regra de Bayes para fazer no R e consegui na mão grande, logo abaixo. Tentei então colocar em loop para expandir para além de 3 situações e aí deu erro no cálculo do denominador (o loop está no final). Como posso resolver ? Obrigado, Mauricio Cardeal UFBA # Regra de Bayes # Dados populacionais PB1 <- 0.15 # asma PB2 <- 0.01 # enfisema PB3 <- 0.009 # ca # Dados clínicos PAdadoB1 <- 0.26 # dispneia dado asma PAdadoB2 <- 0.75 # dispneia dado enfisema PAdadoB3 <- 0.43 # dispneia dado ca PB1dadoA <- (PAdadoB1 * PB1) / (PAdadoB1*PB1 + PAdadoB2*PB2 + PAdadoB3*PB3) PB2dadoA <- (PAdadoB2 * PB2) / (PAdadoB1*PB1 + PAdadoB2*PB2 + PAdadoB3*PB3) PB3dadoA <- (PAdadoB3 * PB3) / (PAdadoB1*PB1 + PAdadoB2*PB2 + PAdadoB3*PB3) rbind(Asma_dado_dispneia=PB1dadoA,Asma_dado_enfisema=PB2dadoA,Asma_dado_ca=PB3dadoA) [,1] Asma_dado_dispneia 0,774270 Asma_dado_enfisema 0,148898 Asma_dado_ca 0,076831 # LOOP PB <- c(0.15,0.01,0.009) PAdadoB <- c(0.26,0.75,0.43) dados <- data.frame(PB,PAdadoB) n = dim(dados)[1] dados$PBdadoA <- 0 dados$den <- 0 dados for(i in 1:n) { dados$num <- dados$PAdadoB[i] * dados$PB[i] for(j in 1:n) { dados$den <- dados$PAdadoB[j]*dados$PB[j] + dados$den } dados$PBdadoA <- dados$num[i] / dados$den[i] } dados PB PAdadoB PBdadoA den num 1 0,150 0,26 0,025610 0,15111 0,00387 2 0,010 0,75 0,025610 0,15111 0,00387 3 0,009 0,43 0,025610 0,15111 0,00387