<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body 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 class="moz-cite-prefix">On 10/16/2015 04:06 PM, Pedro Emmanuel
Alvarenga Americano do Brasil wrote:<br>
</div>
<blockquote
cite="mid:CAFfGvy+HWe_5kkS32d=JkWDnWeADh8qMP-f55DQ3448OS1txeg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_default" style="font-family:'courier
new',monospace;color:rgb(0,0,102)">Ei vinicius,</div>
<div class="gmail_default" style="font-family:'courier
new',monospace;color:rgb(0,0,102)"><br>
</div>
<div class="gmail_default" style="font-family:'courier
new',monospace;color:rgb(0,0,102)">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" style="font-family:'courier
new',monospace;color:rgb(0,0,102)"><br>
</div>
<div class="gmail_default" style="">
<div class="gmail_default"
style="color:rgb(0,0,102);font-family:'courier
new',monospace">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"
style="color:rgb(0,0,102);font-family:'courier
new',monospace">data2$BMI[sample(1:5000,2000)] <- NA</div>
<div class="gmail_default"
style="color:rgb(0,0,102);font-family:'courier
new',monospace"><br>
</div>
<div class="gmail_default"
style="color:rgb(0,0,102);font-family:'courier
new',monospace">#### sem montar o cluster para computação
paralelo</div>
<div class="gmail_default" style="">
<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 style="color:rgb(0,0,102);font-family:'courier
new',monospace"><br>
</div>
</div>
<div class="gmail_default"
style="color:rgb(0,0,102);font-family:'courier
new',monospace">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" style="font-family:'courier
new',monospace;color:rgb(0,0,102)"><br>
</div>
<div class="gmail_default" style="font-family:'courier
new',monospace;color:rgb(0,0,102)"># para criar um dado
completo. </div>
<div class="gmail_default" style=""><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" style=""><font face="courier new,
monospace" color="#000066">data[names(imputed.data)] <- </font><span
style="color:rgb(0,0,102);font-family:'courier
new',monospace">imputed.data</span><br>
</div>
<div class="gmail_default" style="font-family:'courier
new',monospace;color:rgb(0,0,102)"><br>
</div>
<div class="gmail_default" style="font-family:'courier
new',monospace;color:rgb(0,0,102)">Se voce puder me dar uma
mão ... agradeceria muito.</div>
<div class="gmail_default" style="font-family:'courier
new',monospace;color:rgb(0,0,102)"><br>
</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div class="gmail_signature">
<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 moz-do-not-send="true"
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 class="h5"><br>
2015-10-10 12:28 GMT-03:00 Vinícius Lionel Mateus <<a
moz-do-not-send="true"
href="mailto:vinynegrelli@gmail.com"><a class="moz-txt-link-abbreviated" href="mailto:vinynegrelli@gmail.com">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 moz-do-not-send="true"
href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
> <a moz-do-not-send="true"
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 moz-do-not-send="true"
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
moz-do-not-send="true"
href="http://lattes.cnpq.br/6501001637020665"
rel="noreferrer" target="_blank"><a class="moz-txt-link-freetext" href="http://lattes.cnpq.br/6501001637020665">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 moz-do-not-send="true"
href="tel:%28%2B45%29%2026%2028%2028%2051"
value="+4526282851">(+45) 26 28 28 51</a><br>
> <a moz-do-not-send="true"
href="tel:%28%2B55%29%20%2821%29%203527-1327"
value="+552135271327">(+55) (21) 3527-1327</a><br>
> <a moz-do-not-send="true"
href="tel:%28%2B55%29%20%2821%29%20993%20-%20588%20-%20051"
value="+5521993588051">(+55) (21) 993 - 588 - 051</a><br>
> Skype: vinicius.lionel<br>
> <a moz-do-not-send="true"
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 moz-do-not-send="true"
href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
> <a moz-do-not-send="true"
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 moz-do-not-send="true"
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 class="">_______________________________________________<br>
R-br mailing list<br>
<a moz-do-not-send="true"
href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a moz-do-not-send="true"
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 moz-do-not-send="true"
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 class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
R-br mailing list
<a class="moz-txt-link-abbreviated" href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a>
<a class="moz-txt-link-freetext" href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a>
Leia o guia de postagem (<a class="moz-txt-link-freetext" href="http://www.leg.ufpr.br/r-br-guia">http://www.leg.ufpr.br/r-br-guia</a>) e forne�a c�digo m�nimo reproduz�vel.</pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Best regards,
Vinícius Lionel Mateus, MSc (<a class="moz-txt-link-freetext" href="http://lattes.cnpq.br/6501001637020665">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: (+45) 26 28 28 51
(+55) (21) 3527-1327
(+55) (21) 993 - 588 - 051
Skype: vinicius.lionel
<a class="moz-txt-link-freetext" href="http://www.qui.puc-rio.br/index.html">http://www.qui.puc-rio.br/index.html</a></pre>
</body>
</html>