Imputação múltipla por equações encadeadas

Tratamento de Dados Ausentes com Imputações em R

Michal Oleszak

Machine Learning Engineer

O algoritmo MICE

Um gráfico descrevendo quatro etapas do algoritmo MICE. Do nó "incomplete data", três setas apontam para três nós "imputed data", com a função "mice()" rotulando as setas. Cada um desses nós se conecta a um nó "analysis results" com uma seta rotulada "with()". Todos se conectam ao nó final "pooled results" com uma seta "pooled()".

1 van Buuren, S., & Groothuis-Oudshoorn, C. G. M. (2011). mice: Multivariate Imputation by Chained Equations in R. Journal of statistical software, 45(3).
Tratamento de Dados Ausentes com Imputações em R

MICE: prós e contras

Prós:

  • Requer menos réplicas que o bootstrap.
  • Funciona para dados MAR e MCAR.
  • Permite análise de sensibilidade para dados MNAR.

Contras:

  • Funciona apenas com métodos de imputação selecionados.
  • Exige mais ajuste (seleção de modelo, escolha de preditores).
Tratamento de Dados Ausentes com Imputações em R

O fluxo do mice: mice - with - pool

Imputar nhanes 20 vezes:

library(mice)
nhanes_multiimp <- mice(nhanes, m = 20)

Ajustar uma regressão linear em cada conjunto imputado:

lm_multiimp <- with(nhanes_multiimp, lm(Weight ~ Height + TotChol + PhysActive))

Combinar os resultados da regressão:

lm_pooled <- pool(lm_multiimp)
Tratamento de Dados Ausentes com Imputações em R

Analisando os resultados combinados

summary(lm_pooled, conf.int = TRUE, conf.level = 0.95)
            estimate std.error statistic      df p.value    2.5 %   97.5 %
(Intercept) -122.964    10.933   -11.247 735.389   0.000 -144.428 -101.500
Height         1.086     0.060    18.158 796.106   0.000    0.968    1.203
TotChol        2.653     0.884     3.003 305.460   0.003    0.915    4.392
PhysActive    -1.746     1.422    -1.228 733.957   0.220   -4.536    1.045
Tratamento de Dados Ausentes com Imputações em R

MICE: métodos disponíveis

Uma tabela do artigo de van Buuren et al. mostrando modelos de imputação disponíveis no MICE. Cada modelo é descrito pelo nome, palavra‑chave, tipo de variável para o qual pode ser usado e se é a opção padrão.

1 van Buuren, S., & Groothuis-Oudshoorn, C. G. M. (2011). mice: Multivariate Imputation by Chained Equations in R. Journal of statistical software, 45(3).
Tratamento de Dados Ausentes com Imputações em R

Escolhendo métodos por tipo de variável

mice() recebe o argumento defaultMethod: um vetor com 4 strings, definindo métodos para:

  1. Variáveis contínuas
  2. Variáveis binárias
  3. Variáveis categóricas (fatores não ordenados)
  4. Variáveis fator (fatores ordenados)
nhanes_multiimp <- mice(nhanes, m = 20, 
                        defaultMethod = c("pmm", "logreg", "polyreg", "polr"))
Tratamento de Dados Ausentes com Imputações em R

Matriz de preditores

A predictorMatrix define quais variáveis são usadas para imputar outras variáveis.

nhanes_multiimp <- mice(nhanes, m = 20)
nhanes_multiimp$predictorMatrix
           Age Gender Weight Height Diabetes TotChol Pulse PhysActive
Age          0      1      1      1        1       1     1          1
Gender       1      0      1      1        1       1     1          1
Weight       1      1      0      1        1       1     1          1
Height       1      1      1      0        1       1     1          1
Diabetes     1      1      1      1        0       1     1          1
TotChol      1      1      1      1        1       0     1          1
Pulse        1      1      1      1        1       1     0          1
PhysActive   1      1      1      1        1       1     1          0
Tratamento de Dados Ausentes com Imputações em R

Escolhendo preditores para cada variável

  • Idealmente, deve-se fazer uma seleção de modelo adequada.
  • Alternativa rápida: usar variáveis correlacionadas com o alvo.
pred_mat <- quickpred(nhanes, mincor = 0.25)
nhanes_multiimp <- mice(nhanes, m = 20, predictorMatrix = pred_mat)
print(pred_mat)
           Age Gender Weight Height Diabetes TotChol Pulse PhysActive
Age          0      0      0      0        0       0     0          0
Gender       0      0      0      0        0       0     0          0
Weight       1      1      0      0        0       0     1          0
...
Tratamento de Dados Ausentes com Imputações em R

Vamos praticar imputação com MICE!

Tratamento de Dados Ausentes com Imputações em R

Preparing Video For Download...