Detekce konvergence
Skvělá práce s iterováním přes proměnné v předchozím cvičení! Ale kolik iterací je vlastně potřeba? Jakmile se imputované hodnoty s novou iterací přestanou měnit, můžeme zastavit.
Teď svůj kód rozšíříš tak, aby počítal rozdíly mezi imputovanými proměnnými v po sobě jdoucích iteracích. K tomu použiješ funkci Mean Absolute Percentage Change, která je pro tebe definovaná takto:
mapc <- function(a, b) {
mean(abs(b - a) / a, na.rm = TRUE)
}
mapc() vrátí jediné číslo, které říká, o kolik se b liší od a. Použiješ ji ke sledování toho, jak moc se imputované proměnné mezi iteracemi mění. Na základě toho se rozhodneš, kolik iterací je skutečně potřeba!
Booleovské masky missing_air_temp a missing_humidity máš k dispozici, stejně jako hotdeck-inicializovaná data tao_imp.
Toto cvičení je součástí kurzu
Práce s chybějícími daty pomocí imputace v R
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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)
}