Minha pergunta, em resumo: existem métodos para melhorar o tempo de execução do R MICE (imputação de dados)?
Estou trabalhando com um conjunto de dados (30 variáveis, 1,3 milhão de linhas) que contém (aleatoriamente) dados ausentes. Cerca de 8% das observações em cerca de 15 em 30 variáveis contêm NAs. Para imputar os dados ausentes, estou executando a função MICE, parte do pacote MICE .
Eu experimento um tempo de execução bastante lento, mesmo em um subconjunto (100.000 linhas), com o método = "fastpmm" em = 1 e é executado por cerca de 15 minutos.
Existe uma maneira de melhorar o tempo de execução sem perder muito desempenho? (mice.impute.mean é bastante rápido, mas vem com perda importante de informações!).
Código reproduzível:
library(mice)
df <- data.frame(replicate(30,sample(c(NA,1:10),1000000,rep=TRUE)))
df <- data.frame(scale(df))
output <- mice(df, m=1, method = "fastpmm")
r
multiple-imputation
mice
Dendrobates
fonte
fonte
Respostas:
Você pode usar
quickpred()
domice
pacote usando o qual você pode limitar os preditores, especificando o mincor (correlação mínima) e minpuc (proporção de casos utilizáveis). Além disso, você pode usar os parâmetros de exclusão e inclusão para controlar os preditores.fonte
Criei um invólucro para a
mice
função que inclui um argumento extradroplist
, no qual você pode passar um vetor de caracteres de variáveis preditoras que não deseja que sejam usadas no lado direito das fórmulas de imputação. Isso foi por velocidade, pois descobri que variáveis fatoriais com muitos níveis desacelerariam consideravelmente a imputação . Eu não estava ciente daquickpred
função mencionada pelo @Aanish e talvez você pudesse usar os dois conceitos juntos.Abaixo está a função que aparece no meu pacote glmmplus . Se você achar útil, posso abrir uma solicitação de recebimento no
mice
pacote real .fonte