<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>