<p dir="ltr">A força por aqui, sempre encontra o seu camimho.</p>
<p dir="ltr">Que a firça esteja sempre contigo tambem.</p>
<p dir="ltr">Pedro Brasil <br>
via Android (:)=</p>
<div class="gmail_quote">Em 20/10/2015 18:38, "Vinícius Lionel Mateus" <<a href="mailto:vinynegrelli@gmail.com">vinynegrelli@gmail.com</a>> escreveu:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
Hey Pedro,<br>
<br>
Infelizmente, não tenho expertise para a tarefa que você desempenha.<br>
O meu conhecimento sobre imputação (por enquanto) é mais aplicado à
<i>envirometria/quimiometria</i>.<br>
<br>
"Que a força esteja com você!"<br>
<br>
Abs,<br>
Vinícius<br>
<br>
<div>On 10/16/2015 04:06 PM, Pedro Emmanuel
Alvarenga Americano do Brasil wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_default">Ei vinicius,</div>
<div class="gmail_default"><br>
</div>
<div class="gmail_default">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. </div>
<div class="gmail_default"><br>
</div>
<div class="gmail_default">
<div class="gmail_default">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))</div>
<div class="gmail_default">data2$BMI[sample(1:5000,2000)] <- NA</div>
<div class="gmail_default"><br>
</div>
<div class="gmail_default">#### sem montar o cluster para computação
paralelo</div>
<div class="gmail_default">
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">library(rms)</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">Sys.time()</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">ini <- Sys.time()</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">mit2 <- aregImpute(~ los +
I(desfecho.los) + I(Age50) + Gender + I(BMI45),
n.impute=5, data=data,tlinear=F)</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">Sys.time() - ini</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">Sys.time()</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066"><br>
</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066"># Com o cluster para
computação em paralelo</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">
<div class="gmail_default">library(mice)</div>
<div class="gmail_default">library(rms)</div>
<div class="gmail_default">library(foreach)</div>
<div class="gmail_default">library(doParallel)</div>
<div class="gmail_default">
<div class="gmail_default">nCores <- detectCores()
-1</div>
<div class="gmail_default">cl <-
makeCluster(nCores)</div>
<div class="gmail_default">clusterSetRNGStream(cl, 51)</div>
<div class="gmail_default">registerDoParallel(cl)</div>
<div><br>
</div>
</div>
</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">Sys.time()</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">ini <- Sys.time()</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">mit3 <-</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066"> foreach(no = 1:nCores,</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066"> # .combine = ibind,</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066"> # .export =
"mammalsleep",</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066"> .packages = "rms")
%dopar%</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066"> {</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066"> aregImpute(~ los
+ I(desfecho.los) + I(Age50) + Gender + I(BMI45),
n.impute=5, data=data,tlinear=F)</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066"> }</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">Sys.time() - ini</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">Sys.time()</font></div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">stopCluster(cl)</font></div>
<div><br>
</div>
</div>
<div class="gmail_default">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. </div>
</div>
<div class="gmail_default"><br>
</div>
<div class="gmail_default"># para criar um dado
completo. </div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">imputed.data
<-impute.transcan(mit2, imputation=1, data=data,
list.out=TRUE, pr=FALSE, check=FALSE)</font><br>
</div>
<div class="gmail_default"><font face="courier new,
monospace" color="#000066">data[names(imputed.data)] <- </font><span>imputed.data</span><br>
</div>
<div class="gmail_default"><br>
</div>
<div class="gmail_default">Se voce puder me dar uma
mão ... agradeceria muito.</div>
<div class="gmail_default"><br>
</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr"><font style="background-color:rgb(255,255,255)" face="'courier new', monospace" color="#000066">Pedro
Brasil</font></div>
</div>
</div>
</div>
</div>
</div>
<br>
<div class="gmail_quote">Em 10 de outubro de 2015 15:58, Daniel
Marcelino <span dir="ltr"><<a href="mailto:dmarcelino@live.com" target="_blank">dmarcelino@live.com</a>></span>
escreveu:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Se o que
você entende por imputação em paralelo for simplesmente<br>
executar alguma função de imputação do tipo MI, MICE , MAR ,
MCAR<br>
AMELIA etc em paralelo. Ou seja, repartir o tarefa entre as
CPUs, eu<br>
acredito que bastaria você passar a função dentro de um
foreach ou<br>
parLapply. Por exemplo, usando a base `mammalsleep` do
pacote mice<br>
para gerar 10 tabelas:<br>
<br>
<br>
nCores <- detectCores() -1<br>
library(foreach)<br>
library(doParallel)<br>
cl <- makeCluster(nCores)<br>
clusterSetRNGStream(cl, 51)<br>
registerDoParallel(cl)<br>
<br>
library(mice)<br>
<br>
imp_mice <-<br>
foreach(no = 1:nCores,<br>
.combine = ibind,<br>
.export = "mammalsleep",<br>
.packages = "mice") %dopar%<br>
{<br>
mice(mammalsleep, m = 10, printFlag = FALSE)<br>
}<br>
stopCluster(cl)<br>
<br>
# veja os dados completos:<br>
complete(imp_mice)<br>
<br>
Você vair querer explorar também o que está armazenado no
objeto : imp_mice<br>
Como:<br>
imp_mice$method<br>
imp_mice$data<br>
imp_mice$m etc.<br>
<br>
D<br>
<div>
<div><br>
2015-10-10 12:28 GMT-03:00 Vinícius Lionel Mateus <<a href="mailto:vinynegrelli@gmail.com" target="_blank"><a href="mailto:vinynegrelli@gmail.com" target="_blank">vinynegrelli@gmail.com</a></a>>:<br>
> Olá Pedro,<br>
><br>
> Ainda não precisei trabalhar com computação em
paralelo, mas o tema<br>
> imputação de dados é de grande interesse para mim.<br>
> Ao ver seu email, me lembrei de um pacote recém
desenvolvido, que trabalha<br>
> com séries temporais.<br>
> Se for seu caso, google " Imputation of missing
data in time series for air<br>
> pollutants".<br>
><br>
> O que você almeja com a imputação de dados?<br>
> Substituir dados abaixo de um threshold (e.g., LOD,
LOQ)?<br>
> Séries temporais?<br>
><br>
> Imputação de dados é um tema bastante extenso.<br>
> Acho que serie interessante você fornecer mais
dicas, a fim de que outros<br>
> colegas possam colaborar.<br>
> (Eu vou ficar na torcida, e acompanhando o seu post
;-) )<br>
><br>
> Abs,<br>
> Vinícius<br>
><br>
> On 10/09/2015 02:32 PM, Pedro Emmanuel Alvarenga
Americano do Brasil wrote:<br>
><br>
> Amigos de R,<br>
><br>
> Eu estou trabalhando com um banco de dados que
possui mais de 220000 linhas.<br>
> Eu cheguei numa parte do plano de análise em que
imputação multipla será<br>
> conduzida.<br>
><br>
> Eu já usei a função Hmisc::aregIMpute e mice::mice
que considero muito boas.<br>
> O problema é que com essa quantidade de dados pra
descobrir que deu um erro<br>
> eu levo de 2h a 8h esperando. Então eu fiz um
estrategia de testar em bancos<br>
> menores subsets do principal.<br>
><br>
> Eu procurei por ai e há outros pacotes que fazem
imputação mas não consegui<br>
> encontrar qualquer um que possa fazer imputação com
computação em paralelo.<br>
><br>
> Alguem saberia indicar uma função que faça
imputação multipla com computação<br>
> em paralelo?<br>
><br>
> Alguem ja tentou criar um algoritmo de computação
em paralelo para fazer<br>
> imputação multipla com Hmisc::aregImput?<br>
><br>
> Abraço a todos,<br>
><br>
> Pedro Brasil<br>
><br>
><br>
> _______________________________________________<br>
> R-br mailing list<br>
> <a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>)
e forne�a c�digo<br>
> m�nimo reproduz�vel.<br>
><br>
><br>
> --<br>
> Best regards,<br>
><br>
> Vinícius Lionel Mateus, MSc (<a href="http://lattes.cnpq.br/6501001637020665" rel="noreferrer" target="_blank"><a href="http://lattes.cnpq.br/6501001637020665" target="_blank">http://lattes.cnpq.br/6501001637020665</a></a>)<br>
> Chemistry PhD Student<br>
> Atmospheric Chemistry Laboratory - Dep. Chemistry<br>
> PUC-Rio - Pontifical Catholic University of Rio de
Janeiro<br>
> Marquês de São Vicente, 225, Gávea - Rio de
Janeiro, RJ - Brazil CEP:<br>
> 22451-900<br>
> Phone: <a href="tel:%28%2B45%29%2026%2028%2028%2051" value="+4526282851" target="_blank">(+45) 26 28 28 51</a><br>
> <a href="tel:%28%2B55%29%20%2821%29%203527-1327" value="+552135271327" target="_blank">(+55) (21) 3527-1327</a><br>
> <a href="tel:%28%2B55%29%20%2821%29%20993%20-%20588%20-%20051" value="+5521993588051" target="_blank">(+55) (21) 993 - 588 - 051</a><br>
> Skype: vinicius.lionel<br>
> <a href="http://www.qui.puc-rio.br/index.html" rel="noreferrer" target="_blank">http://www.qui.puc-rio.br/index.html</a><br>
><br>
><br>
> _______________________________________________<br>
> R-br mailing list<br>
> <a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
</div>
</div>
> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e
forneça código<br>
> mínimo reproduzível.<br>
<span>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
</span>Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e
fornea cdigo mnimo reproduzvel.</blockquote>
</div>
<br>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
R-br mailing list
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forne�a c�digo m�nimo reproduz�vel.</pre>
</blockquote>
<br>
<pre cols="72">--
Best regards,
Vinícius Lionel Mateus, MSc (<a href="http://lattes.cnpq.br/6501001637020665" target="_blank">http://lattes.cnpq.br/6501001637020665</a>)
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: <a href="tel:%28%2B45%29%2026%2028%2028%2051" value="+4526282851" target="_blank">(+45) 26 28 28 51</a>
<a href="tel:%28%2B55%29%20%2821%29%203527-1327" value="+552135271327" target="_blank">(+55) (21) 3527-1327</a>
(+55) (21) 993 - 588 - 051
Skype: vinicius.lionel
<a href="http://www.qui.puc-rio.br/index.html" target="_blank">http://www.qui.puc-rio.br/index.html</a></pre>
</div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div>