Kom igångKom igång gratis

Detektera konvergens

Bra jobbat med att iterera över variablerna i förra övningen! Men hur många iterationer behövs egentligen? När de imputerade värdena slutar förändras mellan iterationerna kan vi stanna.

Nu ska du bygga vidare på din kod för att beräkna skillnaderna mellan de imputerade variablerna i efterföljande iterationer. Du använder funktionen Mean Absolute Percentage Change, som redan är definierad åt dig:

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

mapc() returnerar ett enskilt tal som anger hur mycket b skiljer sig från a. Du använder den för att kontrollera hur mycket de imputerade variablerna förändras mellan iterationer – och utifrån det avgöra hur många iterationer som faktiskt behövs!

De booleska maskerna missing_air_temp och missing_humidity finns tillgängliga, liksom den hotdeck-initierade datamängden tao_imp.

Den här övningen är en del av kursen

Hantering av saknade värden med imputering i R

Visa kurs

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)

  
  
}
Redigera och kör kod