Wykrywanie zbieżności
Świetna robota z iterowaniem po zmiennych w poprzednim ćwiczeniu! Ale ile iteracji jest potrzebnych? Gdy imputowane wartości przestają się zmieniać w kolejnej iteracji, możemy zatrzymać proces.
Rozszerzysz teraz swój kod o obliczanie różnic między imputowanymi zmiennymi w kolejnych iteracjach. Użyjesz do tego funkcji Mean Absolute Percentage Change, zdefiniowanej poniżej:
mapc <- function(a, b) {
mean(abs(b - a) / a, na.rm = TRUE)
}
Funkcja mapc() zwraca pojedynczą liczbę, która mówi, jak bardzo b różni się od a. Użyjesz jej, aby sprawdzić, jak bardzo imputowane zmienne zmieniają się między iteracjami. Na tej podstawie zdecydujesz, ile iteracji jest potrzebnych!
Maski logiczne missing_air_temp i missing_humidity są dla ciebie dostępne, podobnie jak zainicjalizowany metodą hotdeck zbiór danych tao_imp.
To ćwiczenie jest częścią kursu
Obsługa brakujących danych z imputacją w R
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)
}