Détecter la convergence
Excellent travail d'itération sur les variables dans le dernier exercice ! Mais de combien d'itérations a-t-on besoin ? Lorsque les valeurs imputées ne changent plus à la nouvelle itération, vous pouvez arrêter.
Vous allez maintenant étendre votre code pour calculer les écarts entre les variables imputées d'une itération à l'autre. Pour ce faire, vous utiliserez la fonction de variation absolue moyenne en pourcentage (Mean Absolute Percentage Change), définie pour vous comme suit :
mapc <- function(a, b) {
mean(abs(b - a) / a, na.rm = TRUE)
}
mapc() renvoie un seul nombre qui indique dans quelle mesure b diffère de a. Vous l'utiliserez pour vérifier l'ampleur des changements des variables imputées au fil des itérations. À partir de cela, vous déciderez combien d'itérations sont nécessaires !
Les masques booléens missing_air_temp et missing_humidity sont à votre disposition, tout comme l'objet tao_imp initialisé par hotdeck.
Cette activité fait partie du cours
Traitement des données manquantes par imputation dans R
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)
}