Zacznij terazZacznij za darmo

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

Zobacz kurs

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)

  
  
}
Edytuj i uruchom kod