
25 Ago
2011
25 Ago
'11
04:10
Benilton, Segui suas dicas e o programa rodou bem, mas quando aumento o número máximo de filhos "f" ou o número de gerações "n" e programa não roda, veja: > library(doMC) > registerDoMC() > programa2 <- function(f,n,m) { + ## f: número máximo de filhos + ## n: número de gerações + ## m: número de iterações + S <- foreach(p=seq(0,1,by=0.01), .combine=rbind) %dopar% { + pp <- 0 + for (g in 1:m) { + y <- 1 + for (k in 1:n) y <- rbinom(1, y*f, p) + if (y > 0) pp <- pp + 1 + } + c(p, pp/m) + } + return(S) + } > system.time(prog2 <- programa2(3,100,1000)) Erro em { : task 48 failed - "valor ausente onde TRUE/FALSE necessário" Além disso: Houve 50 ou mais avisos (use warnings() para ver os primeiros 50) Timing stopped at: 61.27 0.03 61.58 > warnings() Mensagens de aviso: 1: In rbinom(1, y * f, p) : NAs produzidos 2: In rbinom(1, y * f, p) : NAs produzidos 3: In rbinom(1, y * f, p) : NAs produzidos 4: In rbinom(1, y * f, p) : NAs produzidos Em Qui, 2011-08-18 às 17:45 -0300, Leonard Assis escreveu: > Entendi sua explanação. heehhe > > olhei o código bem por alto depois do almoço num tempó livre, única > coisa "estranha" que notei foi esse loop que pra mim estava sem muito > sentido. > > Mas muito dessa minha opinião vai do fato de não conhecer ao fundo o > problema, pois para mim, ele estaria interessado em cada uma das > iterações (eu, quando faço simulações, procuro guardar cada uma delas, > nem que seja pra brincar de bootstrap depois, hehehe) > > Quanto à copa américa, estava meio na cara que daria Uruguai, é o time > com mais conjunto, Argentina e Brasil estavam em início de trabalho. > No betclick eu apostei no uruguai e salvei algum, ehhehe > > lmassis <at> yahoo <dot> com <dot> br > assis.leonard <at> gmail <dot> com > > > > 2011/8/18 Benilton Carvalho <beniltoncarvalho@gmail.com> > Leonard, > > para cada 'g', ele determina uma realizacao (aleatoria) de Y_n > condicionado em Y_{n-1}. Se essa realizacao por nao-nula, ele > incrementa 'pp'. Como a chance de Y_m ser zero e' bem pequena, > ele > repete o laco 'm' vezes, contando quantas vezes (em 'm') ele > observa > Y_n > 0... > > Estou bem certo de que o codigo esta' correto... mas eu tambem > estava > certo que o Brasil ganharia a Copa America... > > b > > 2011/8/18 Leonard Assis <assis.leonard@gmail.com>: > > > Benilton, eu nem cheguei a rodar, analisei o que ele faz > mesmo. > > > > Tem que resolver esse problema daquele loop que só faz > perder tempo senão o > > próprio estudo de simulação dele está inválido. > > lmassis <at> yahoo <dot> com <dot> br > > assis.leonard <at> gmail <dot> com > > > > > > 2011/8/18 Benilton Carvalho <beniltoncarvalho@gmail.com> > >> > >> Tiago, > >> > >> esse e' um problema legal... se vc derivar as distribuicoes > a mao, > >> certamente vc consegue ganhos bem maiores... > >> > >> FYI: usando propriedades de estatistica, vc chega na > mudanca que eu > >> fiz na geracao das suas variaveis aleatorias. > >> > >> Adicionalmente, eu nao tive paciencia de esperar o seu > codigo original > >> acabar de rodar... eu o cancelei depois de um pouco mais de > 1h10m. > >> > >> Abaixo uma sugestao para voce: > >> > >> > >> library(foreach) > >> library(doMC) > >> registerDoMC() > >> programa2 <- function(f,n,m) { > >> ## f: número máximo de filhos > >> ## n: número de gerações > >> ## m: número de iterações > >> S <- foreach(p=seq(0,1,by=0.01), .combine=rbind) %dopar% > { > >> pp <- 0 > >> for (g in 1:m) { > >> y <- 1 > >> for (k in 1:n) > >> y <- rbinom(1, y*f, p) > >> if (y > 0) pp <- pp + 1 > >> } > >> c(p, pp/m) > >> } > >> return(S) > >> } > >> system.time(prog2 <- programa2(2,200,1000)) > >> plot(prog2, xlab = "p", ylab = "Probabilidade de > Percolação") > >> > >> para matar sua curiosidade, no meu computador, eu obtive: > >> > >> > system.time(prog2 <- programa2(2,200,1000)) > >> user system elapsed > >> 257.072 2.562 20.835 > >> _______________________________________________ > >> 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. > > > > > > _______________________________________________ > > 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. > > > > > > > -- > Successful people ask better questions, and as a result, they > get > better answers. (Tony Robbins) > > _______________________________________________ > 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. > > > _______________________________________________ > 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.