[R-br] Imputação de dados com processamento paralelo

Daniel Marcelino dmsilva.br em gmail.com
Sábado Outubro 10 15:59:31 BRT 2015


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 <vinynegrelli em gmail.com>:
> 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
> R-br em 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.
>
>
> --
> 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
> R-br em 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.


Mais detalhes sobre a lista de discussão R-br