Rilevare la convergenza
Ottimo lavoro nell'iterare sulle variabili nell'esercizio precedente! Ma quante iterazioni servono? Quando i valori imputati non cambiano con la nuova iterazione, possiamo fermarci.
Ora estenderai il tuo codice per calcolare le differenze tra le variabili imputate nelle iterazioni successive. Per farlo userai la funzione Mean Absolute Percentage Change, definita per te così:
mapc <- function(a, b) {
mean(abs(b - a) / a, na.rm = TRUE)
}
mapc() restituisce un unico numero che indica di quanto b differisce da a. Lo userai per verificare quanto cambiano le variabili imputate tra un'iterazione e l'altra. In base a questo, deciderai quante iterazioni sono necessarie!
Sono disponibili per te le maschere booleane missing_air_temp e missing_humidity, così come l'insieme di dati tao_imp inizializzato con hot deck.
Questo esercizio fa parte del corso
Gestione dei dati mancanti con imputazioni in R
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
diff_air_temp <- ___
diff_humidity <- ___
for (i in 1:5) {
# Assign the outcome of the previous iteration (or initialization) to prev_iter
prev_iter <- ___
# Impute air_temp and humidity at originally missing locations
tao_imp$air_temp[missing_air_temp] <- NA
tao_imp <- impute_lm(tao_imp, air_temp ~ year + latitude + sea_surface_temp + humidity)
tao_imp$humidity[missing_humidity] <- NA
tao_imp <- impute_lm(tao_imp, humidity ~ year + latitude + sea_surface_temp + air_temp)
}