Détecter la convergence
Excellent travail d’itération sur les variables dans le dernier exercice ! Mais de combien d’itérations avez-vous besoin ? Lorsque les valeurs imputées ne changent plus avec une nouvelle itération, vous pouvez arrêter.
Vous allez maintenant étendre votre code pour calculer les écarts entre les variables imputées aux itérations successives. Pour cela, vous allez utiliser la fonction Mean Absolute Percentage Change, définie pour vous comme suit :
mapc <- function(a, b) {
mean(abs(b - a) / a, na.rm = TRUE)
}
mapc() retourne un seul nombre indiquant dans quelle mesure b diffère de a. Vous l’utiliserez pour vérifier à quel point les variables imputées évoluent d’une itération à l’autre. À partir de là, vous déciderez du nombre d’itérations nécessaires !
Les masques booléens missing_air_temp et missing_humidity sont à votre disposition, ainsi que le jeu de données tao_imp initialisé par hotdeck.
Cet exercice fait partie du cours
Gérer les données manquantes avec des imputations en R
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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)
}