Konvergenz erkennen
Super gemacht mit den Iterationen über die Variablen in der letzten Übung! Aber wie viele Iterationen sind nötig? Wenn sich die imputierten Werte in einer neuen Iteration nicht mehr ändern, können wir stoppen.
Du erweiterst jetzt deinen Code, um die Unterschiede zwischen den imputierten Variablen in aufeinanderfolgenden Iterationen zu berechnen. Dazu verwendest du die Funktion Mean Absolute Percentage Change, die für dich wie folgt definiert ist:
mapc <- function(a, b) {
mean(abs(b - a) / a, na.rm = TRUE)
}
mapc() gibt eine einzelne Zahl aus, die dir sagt, wie stark b von a abweicht. Du nutzt sie, um zu prüfen, wie sehr sich die imputierten Variablen über die Iterationen hinweg verändern. Auf dieser Basis entscheidest du, wie viele Iterationen benötigt werden!
Die booleschen Masken missing_air_temp und missing_humidity stehen dir zur Verfügung, ebenso der mit Hotdeck initialisierte Datensatz tao_imp.
Diese Übung ist Teil des Kurses
Fehlende Daten mit Imputationen in R behandeln
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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)
}