Detectarea convergenței
Bravo pentru că ai iterat cu succes peste variabile în exercițiul anterior! Dar câte iterații sunt necesare? Când valorile imputate nu se mai schimbă odată cu noua iterație, ne putem opri.
Acum vei extinde codul pentru a calcula diferențele dintre variabilele imputate în iterații consecutive. Pentru aceasta, vei folosi funcția Mean Absolute Percentage Change, definită astfel:
mapc <- function(a, b) {
mean(abs(b - a) / a, na.rm = TRUE)
}
mapc() returnează un singur număr care îți arată cât de mult diferă b față de a. O vei folosi pentru a verifica cât de mult se schimbă variabilele imputate de la o iterație la alta. Pe baza acestui lucru, vei decide câte iterații sunt necesare!
Măștile booleene missing_air_temp și missing_humidity sunt disponibile, la fel și setul de date tao_imp inițializat prin hotdeck.
Acest exercițiu face parte din cursul
Gestionarea datelor lipsă prin imputare în R
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)
}