Multipel imputering med kedjade ekvationer

Hantering av saknade värden med imputering i R

Michal Oleszak

Machine Learning Engineer

MICE-algoritmen

Ett diagram som beskriver MICE-algoritmens fyra steg. Från noden märkt "ofullständiga data" pekar tre pilar mot tre noder kallade "imputerade data", med funktionen "mice()" som etikett på pilarna. Var och en av dessa noder är kopplad till en nod för "analysresultat" med en pil märkt med funktionen "with()". Dessa noder är alla kopplade till en gemensam slutnod kallad "poolade resultat" med en pil märkt "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).
Hantering av saknade värden med imputering i R

MICE: för- och nackdelar

Fördelar:

  • Kräver färre replikeringar än bootstrap.
  • Fungerar för MAR- och MCAR-data.
  • Möjliggör känslighetsanalys för MNAR-data.

Nackdelar:

  • Fungerar bara med utvalda imputeringsmetoder.
  • Kräver mer finjustering (modellval, val av prediktorer).
Hantering av saknade värden med imputering i R

MICE-flödet: mice – with – pool

Imputera nhanes 20 gånger:

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

Anpassa en linjär regressionsmodell till varje imputerad datamängd:

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

Poola regressionsresultaten:

lm_pooled <- pool(lm_multiimp)
Hantering av saknade värden med imputering i R

Analysera poolade resultat

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
Hantering av saknade värden med imputering i R

MICE: tillgängliga metoder

En tabell från van Buuren m.fl. som visar tillgängliga imputeringsmodeller i MICE. Varje modell beskrivs med namn, nyckelord, vilken variabeltyp den kan användas för samt om den är standardalternativet.

1 van Buuren, S., & Groothuis-Oudshoorn, C. G. M. (2011). mice: Multivariate Imputation by Chained Equations in R. Journal of statistical software, 45(3).
Hantering av saknade värden med imputering i R

Välja metod per variabeltyp

mice() tar ett argument defaultMethod: en vektor med 4 strängar som anger metoder för:

  1. Kontinuerliga variabler
  2. Binära variabler
  3. Kategoriska variabler (oordnade faktorer)
  4. Faktorvariabler (ordnade faktorer)
nhanes_multiimp <- mice(nhanes, m = 20, 
                        defaultMethod = c("pmm", "logreg", "polyreg", "polr"))
Hantering av saknade värden med imputering i R

Prediktormatris

predictorMatrix styr vilka variabler som används för att imputera andra variabler.

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
Hantering av saknade värden med imputering i R

Välja prediktorer för varje variabel

  • Idealt bör ett ordentligt modellval genomföras.
  • Ett snabbare alternativ: använd variabler som korrelerar med målvariabeln.
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
...
Hantering av saknade värden med imputering i R

Nu kör vi en övning!

Hantering av saknade värden med imputering i R

Preparing Video For Download...