A força por aqui, sempre encontra o seu camimho. Que a firça esteja sempre contigo tambem.
Pedro Brasil via Android (:)= Em 20/10/2015 18:38, "Vinícius Lionel Mateus" <[email protected]> escreveu: > Hey Pedro, > > Infelizmente, não tenho expertise para a tarefa que você desempenha. > O meu conhecimento sobre imputação (por enquanto) é mais aplicado à > *envirometria/quimiometria*. > > "Que a força esteja com você!" > > Abs, > Vinícius > > On 10/16/2015 04:06 PM, Pedro Emmanuel Alvarenga Americano do Brasil wrote: > > Ei vinicius, > > Na verdade eu queria mesmo era utilizar a função aregImpute porque estou > acostumado com ela e ela tem algumas opçoes que o mice não tem. Eu simulei > uns dados e tentei rodar alguns exemplos mas ainda não saiu do geito que eu > queria. > > data <- data.frame(los = sample(seq(0,45,0.001),5000,T),desfecho.los = > sample(c(0,1),5000,T),sex = sample(c("M","F"),5000,T),BMI= > sample(seq(16,45,0.1),5000,T)) > data2$BMI[sample(1:5000,2000)] <- NA > > #### sem montar o cluster para computação paralelo > library(rms) > Sys.time() > ini <- Sys.time() > mit2 <- aregImpute(~ los + I(desfecho.los) + I(Age50) + Gender + I(BMI45), > n.impute=5, data=data,tlinear=F) > Sys.time() - ini > Sys.time() > > # Com o cluster para computação em paralelo > library(mice) > library(rms) > library(foreach) > library(doParallel) > nCores <- detectCores() -1 > cl <- makeCluster(nCores) > clusterSetRNGStream(cl, 51) > registerDoParallel(cl) > > Sys.time() > ini <- Sys.time() > mit3 <- > foreach(no = 1:nCores, > # .combine = ibind, > # .export = "mammalsleep", > .packages = "rms") %dopar% > { > aregImpute(~ los + I(desfecho.los) + I(Age50) + Gender + > I(BMI45), n.impute=5, data=data,tlinear=F) > } > Sys.time() - ini > Sys.time() > stopCluster(cl) > > Nos dois exemplos acima a computação no meu dado original demorou cerca de > 13 min. Repare que para criar o objeto mit3 eu exclui os argumentos > .combine e .export. Pra falar a verdade eu não consegui entender a partir > da documentação pra que serve esse argumento .export. O mit3 saiu como uma > lista de tres objetos e cada um desses como cinco imputações. Então entendi > eu levei o mesmo tempo pra fazer 3x mais imputações (3 é o numero de cores > que usei). Mas eu gostaria mesmo que a saida fosse uma lista com um unico > objeto com 5 imputações. Então entendi que a função ibind deveria fazer > exatamente isso. Eu tentei usar a função ibind do pacote mice mas retorna > um erro, provavelmente porque essa função só funciona para objetos de > classe mids ou mice. Então acho que agora a questão seria como combinar as > saidas das computações dos diferentes cores. Eu não sei se tem jeito porque > a documentação original do Hmisc::aregImpute não comenta nada a respeito de > computação em paralelo ou de juntar objetos da mesma função. > > # para criar um dado completo. > imputed.data <-impute.transcan(mit2, imputation=1, data=data, > list.out=TRUE, pr=FALSE, check=FALSE) > data[names(imputed.data)] <- imputed.data > > Se voce puder me dar uma mão ... agradeceria muito. > > > Pedro Brasil > > Em 10 de outubro de 2015 15:58, Daniel Marcelino <[email protected]> > escreveu: > >> Se o que você entende por imputação em paralelo for simplesmente >> executar alguma função de imputação do tipo MI, MICE , MAR , MCAR >> AMELIA etc em paralelo. Ou seja, repartir o tarefa entre as CPUs, eu >> acredito que bastaria você passar a função dentro de um foreach ou >> parLapply. Por exemplo, usando a base `mammalsleep` do pacote mice >> para gerar 10 tabelas: >> >> >> nCores <- detectCores() -1 >> library(foreach) >> library(doParallel) >> cl <- makeCluster(nCores) >> clusterSetRNGStream(cl, 51) >> registerDoParallel(cl) >> >> library(mice) >> >> imp_mice <- >> foreach(no = 1:nCores, >> .combine = ibind, >> .export = "mammalsleep", >> .packages = "mice") %dopar% >> { >> mice(mammalsleep, m = 10, printFlag = FALSE) >> } >> stopCluster(cl) >> >> # veja os dados completos: >> complete(imp_mice) >> >> Você vair querer explorar também o que está armazenado no objeto : >> imp_mice >> Como: >> imp_mice$method >> imp_mice$data >> imp_mice$m etc. >> >> D >> >> 2015-10-10 12:28 GMT-03:00 Vinícius Lionel Mateus <[email protected] >> >: >> > Olá Pedro, >> > >> > Ainda não precisei trabalhar com computação em paralelo, mas o tema >> > imputação de dados é de grande interesse para mim. >> > Ao ver seu email, me lembrei de um pacote recém desenvolvido, que >> trabalha >> > com séries temporais. >> > Se for seu caso, google " Imputation of missing data in time series for >> air >> > pollutants". >> > >> > O que você almeja com a imputação de dados? >> > Substituir dados abaixo de um threshold (e.g., LOD, LOQ)? >> > Séries temporais? >> > >> > Imputação de dados é um tema bastante extenso. >> > Acho que serie interessante você fornecer mais dicas, a fim de que >> outros >> > colegas possam colaborar. >> > (Eu vou ficar na torcida, e acompanhando o seu post ;-) ) >> > >> > Abs, >> > Vinícius >> > >> > On 10/09/2015 02:32 PM, Pedro Emmanuel Alvarenga Americano do Brasil >> wrote: >> > >> > Amigos de R, >> > >> > Eu estou trabalhando com um banco de dados que possui mais de 220000 >> linhas. >> > Eu cheguei numa parte do plano de análise em que imputação multipla será >> > conduzida. >> > >> > Eu já usei a função Hmisc::aregIMpute e mice::mice que considero muito >> boas. >> > O problema é que com essa quantidade de dados pra descobrir que deu um >> erro >> > eu levo de 2h a 8h esperando. Então eu fiz um estrategia de testar em >> bancos >> > menores subsets do principal. >> > >> > Eu procurei por ai e há outros pacotes que fazem imputação mas não >> consegui >> > encontrar qualquer um que possa fazer imputação com computação em >> paralelo. >> > >> > Alguem saberia indicar uma função que faça imputação multipla com >> computação >> > em paralelo? >> > >> > Alguem ja tentou criar um algoritmo de computação em paralelo para fazer >> > imputação multipla com Hmisc::aregImput? >> > >> > Abraço a todos, >> > >> > Pedro Brasil >> > >> > >> > _______________________________________________ >> > R-br mailing list >> > [email protected] >> > 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. >> > >> > >> > -- >> > Best regards, >> > >> > Vinícius Lionel Mateus, MSc (http://lattes.cnpq.br/6501001637020665) >> > Chemistry PhD Student >> > Atmospheric Chemistry Laboratory - Dep. Chemistry >> > PUC-Rio - Pontifical Catholic University of Rio de Janeiro >> > Marquês de São Vicente, 225, Gávea - Rio de Janeiro, RJ - Brazil CEP: >> > 22451-900 >> > Phone: (+45) 26 28 28 51 >> > (+55) (21) 3527-1327 >> > (+55) (21) 993 - 588 - 051 >> > Skype: vinicius.lionel >> > http://www.qui.puc-rio.br/index.html >> > >> > >> > _______________________________________________ >> > R-br mailing list >> > [email protected] >> > 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 >> [email protected] >> 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 fornea >> cdigo mnimo reproduzvel. > > > > > _______________________________________________ > R-br mailing > [email protected]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. > > > -- > Best regards, > > Vinícius Lionel Mateus, MSc (http://lattes.cnpq.br/6501001637020665) > Chemistry PhD Student > Atmospheric Chemistry Laboratory - Dep. Chemistry > PUC-Rio - Pontifical Catholic University of Rio de Janeiro > Marquês de São Vicente, 225, Gávea - Rio de Janeiro, RJ - Brazil CEP: > 22451-900 > Phone: (+45) 26 28 28 51 > (+55) (21) 3527-1327 > (+55) (21) 993 - 588 - 051 > Skype: vinicius.lionelhttp://www.qui.puc-rio.br/index.html > > > _______________________________________________ > R-br mailing list > [email protected] > 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 [email protected] 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.
