Wielokrotna imputacja przez równania łańcuchowe

Obsługa brakujących danych z imputacją w R

Michal Oleszak

Machine Learning Engineer

Algorytm MICE

Diagram przedstawiający cztery etapy algorytmu MICE. Z węzła „niekompletne dane" wychodzą trzy strzałki do węzłów „dane imputowane", opisane funkcją `mice()`. Każdy z nich łączy się z węzłem „wyniki analizy" strzałką opisaną funkcją `with()`. Wszystkie te węzły łączą się z końcowym węzłem „połączone wyniki" strzałką opisaną funkcją `pool()`.

1 van Buuren, S., & Groothuis-Oudshoorn, C. G. M. (2011). mice: Multivariate Imputation by Chained Equations in R. Journal of statistical software, 45(3).
Obsługa brakujących danych z imputacją w R

MICE: zalety i wady

Zalety:

  • Wymaga mniej replikacji niż bootstrap.
  • Działa dla danych MAR i MCAR.
  • Umożliwia analizę wrażliwości dla danych MNAR.

Wady:

  • Działa tylko z wybranymi metodami imputacji.
  • Wymaga większego nakładu dostrajania (selekcja modeli, wybór predyktorów).
Obsługa brakujących danych z imputacją w R

Przepływ mice: mice – with – pool

Imputacja nhanes 20 razy:

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

Dopasowanie modelu regresji liniowej do każdego imputowanego zbioru:

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

Łączenie wyników regresji:

lm_pooled <- pool(lm_multiimp)
Obsługa brakujących danych z imputacją w R

Analiza połączonych wyników

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
Obsługa brakujących danych z imputacją w R

MICE: dostępne metody

Tabela z artykułu van Buurena i in. przedstawiająca modele imputacji dostępne w MICE. Każdy model opisany jest nazwą, słowem kluczowym, typem zmiennej oraz informacją, czy jest opcją domyślną.

1 van Buuren, S., & Groothuis-Oudshoorn, C. G. M. (2011). mice: Multivariate Imputation by Chained Equations in R. Journal of statistical software, 45(3).
Obsługa brakujących danych z imputacją w R

Wybór metod według typu zmiennej

mice() przyjmuje argument defaultMethod: wektor 4 ciągów znaków określających metody dla:

  1. Zmiennych ciągłych
  2. Zmiennych binarnych
  3. Zmiennych kategorycznych (czynniki nieuporządkowane)
  4. Zmiennych czynnikowych (czynniki uporządkowane)
nhanes_multiimp <- mice(nhanes, m = 20, 
                        defaultMethod = c("pmm", "logreg", "polyreg", "polr"))
Obsługa brakujących danych z imputacją w R

Macierz predyktorów

predictorMatrix określa, które zmienne są używane do imputacji innych zmiennych.

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
Obsługa brakujących danych z imputacją w R

Wybór predyktorów dla każdej zmiennej

  • Idealnie należy przeprowadzić właściwą selekcję modeli.
  • Szybka alternatywa: użyć zmiennych skorelowanych z celem.
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
...
Obsługa brakujących danych z imputacją w R

Czas na ćwiczenia z imputacją MICE!

Obsługa brakujących danych z imputacją w R

Preparing Video For Download...