Aan de slagGa gratis aan de slag

Convergentie detecteren

Goed gedaan met het itereren over de variabelen in de vorige oefening! Maar hoeveel iteraties heb je nodig? Als de geïmputeerde waarden niet meer veranderen bij een nieuwe iteratie, kun je stoppen.

Je breidt nu je code uit om de verschillen te berekenen tussen de geïmputeerde variabelen in opeenvolgende iteraties. Hiervoor gebruik je de Mean Absolute Percentage Change-functie, die voor je is gedefinieerd als volgt:

mapc <- function(a, b) {
  mean(abs(b - a) / a, na.rm = TRUE)
}

mapc() geeft één getal terug dat aangeeft hoeveel b afwijkt van a. Je gebruikt dit om te controleren hoeveel de geïmputeerde variabelen per iteratie veranderen. Op basis daarvan bepaal je hoeveel iteraties nodig zijn!

De booleaanse maskers missing_air_temp en missing_humidity zijn beschikbaar, net als de hotdeck-geïnitialiseerde gegevensset tao_imp.

Deze oefening maakt deel uit van de cursus

Omgaan met missende data met imputaties in R

Cursus bekijken

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)

  
  
}
Code bewerken en uitvoeren