Imputazione con media

Gestione dei dati mancanti con imputazioni in R

Michal Oleszak

Machine Learning Engineer

Vocabolario: imputazione

Imputation = stimare in modo ragionato i valori mancanti

  • Imputazione basata su donatore: si usano altre osservazioni complete per riempire i mancanti.
  • Imputazione basata su modello: si prevedono i mancanti con un modello statistico o ML.

In questo capitolo vediamo metodi basati su donatore:

  • Imputazione con media
  • Hot-deck
  • kNN
Gestione dei dati mancanti con imputazioni in R

Imputazione con media

Una tabella con due colonne: una con dati grezzi, con un valore mancante, e un’altra con dati imputati, uguale alla prima ma con il valore mancante sostituito dalla media.

L’imputazione con media funziona bene per serie temporali che oscillano casualmente attorno a una media di lungo periodo.

Per dati trasversali è spesso una scelta pessima:

  • Distrugge le relazioni tra variabili.
  • I valori imputati non hanno varianza.
Gestione dei dati mancanti con imputazioni in R

Imputazione con media: pratica

Obiettivo: imputare con la media Height e Weight nei dati NHANES.

  • Crea indicatori binari che segnalino se il valore era mancante.
nhanes <- nhanes %>% 
  mutate(Height_imp = ifelse(is.na(Height), TRUE, FALSE)) %>% 
  mutate(Weight_imp = ifelse(is.na(Weight), TRUE, FALSE))
  • Sostituisci i mancanti in Height e Weight con le rispettive medie.
nhanes_imp <- nhanes %>% 
  mutate(Height = ifelse(is.na(Height), mean(Height, na.rm = TRUE), Height)) %>% 
  mutate(Weight = ifelse(is.na(Weight), mean(Weight, na.rm = TRUE), Weight))
Gestione dei dati mancanti con imputazioni in R

Dati NHANES imputati con media

nhanes_imp %>%
    select(Weight, Height, Height_imp, Weight_imp) %>%
    head()
     Weight   Height Height_imp Weight_imp
1  73.20000 166.2499       TRUE      FALSE
2  72.30000 166.2499       TRUE      FALSE
3  57.70000 158.9000      FALSE      FALSE
4  88.90000 183.3000      FALSE      FALSE
5  45.10000 157.6000      FALSE      FALSE
6  66.77065 158.4000      FALSE       TRUE
Gestione dei dati mancanti con imputazioni in R

Valutare la qualità: margin plot

nhanes_imp %>% select(Weight, Height, Height_imp, Weight_imp) %>% marginplot(delimiter="imp")

Un margin plot, ovvero uno scatter plot di "Height" vs "Weight", in cui i valori imputati in una delle due variabili sono evidenziati con un colore diverso.

Gestione dei dati mancanti con imputazioni in R

Problemi con l’imputazione con media

Distrugge le relazioni tra variabili:

  • Dopo aver imputato Height e Weight con la media, la loro correlazione positiva si indebolisce.
  • I modelli che predicono una variabile dall’altra verranno ingannati dai valori imputati anomali e daranno risultati distorti.

Nessuna variabilità nei dati imputati:

  • Con meno varianza, tutti gli errori standard sono sottostimati. Questo impedisce test d’ipotesi affidabili e il calcolo di intervalli di confidenza.
Gestione dei dati mancanti con imputazioni in R

Imputazione con mediana e moda

  • Invece della media, si può imputare con mediana o moda.
  • La mediana è migliore in presenza di outlier.
  • Per variabili categoriche non possiamo calcolare media o mediana, quindi usiamo la moda.
  • Mediana e moda hanno gli stessi limiti della media.

Un margin plot, ovvero uno scatter plot di "Height" vs "Weight", in cui i valori imputati in una delle due variabili sono evidenziati con un colore diverso.

Gestione dei dati mancanti con imputazioni in R

Passiamo alla pratica !

Gestione dei dati mancanti con imputazioni in R

Preparing Video For Download...