Inizializzare i valori mancanti e iterare sulle variabili
Come hai appena visto, eseguire impute_lm() potrebbe non riempire tutti i valori mancanti. Per assicurarti di imputarli tutti, dovresti inizializzare i valori mancanti con un metodo semplice, come l'hot-deck imputation che hai visto nel capitolo precedente, che propaga in avanti l'ultimo valore osservato.
Inoltre, una singola imputazione di solito non è sufficiente. Si basa sui valori inizializzati in modo basilare e può essere distorta. Un approccio corretto è iterare sulle variabili, imputandole una per volta nelle posizioni in cui erano originariamente mancanti.
In questo esercizio, inizializzerai prima i valori mancanti con l'hot-deck imputation e poi eseguirai cinque iterazioni su air_temp e humidity dei dati tao per imputarli con una regressione lineare. Mettiamoci al lavoro!
Questo esercizio fa parte del corso
Gestione dei dati mancanti con imputazioni in R
Istruzioni dell'esercizio
- Inizializza i valori mancanti con l'imputazione
hotdeck(). - Crea una maschera booleana per i punti in cui
humidityera originariamente mancante e assegnala amissing_humidity. - All'interno del ciclo for, imposta
humidityintao_impaNAnei punti in cui era originariamente mancante usando la maschera booleana che hai creato. - All'interno del ciclo for, imputa
humidityintao_impcon una regressione lineare, usandoyear,latitude,sea_surface_tempeair_tempcome predittori e riassegna il risultato atao_imp.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Initialize missing values with hot-deck
tao_imp <- ___(tao)
# Create boolean masks for where air_temp and humidity are missing
missing_air_temp <- tao_imp$air_temp_imp
missing_humidity <- ___
for (i in 1:5) {
# Set air_temp to NA in places where it was originally missing and re-impute it
tao_imp$air_temp[missing_air_temp] <- NA
tao_imp <- impute_lm(tao_imp, air_temp ~ year + latitude + sea_surface_temp + humidity)
# Set humidity to NA in places where it was originally missing and re-impute it
tao_imp$humidity[___] <- ___
tao_imp <- ___(___, ___ ~ year + latitude + sea_surface_temp + ___)
}