Detectando convergência
Ótimo trabalho iterando pelas variáveis no exercício anterior! Mas quantas iterações são necessárias? Quando os valores imputados não mudam na nova iteração, podemos parar.
Agora você vai estender seu código para calcular as diferenças entre as variáveis imputadas em iterações subsequentes. Para isso, você vai usar a função de Variação Percentual Absoluta Média, definida para você da seguinte forma:
mapc <- function(a, b) {
mean(abs(b - a) / a, na.rm = TRUE)
}
mapc() retorna um único número que indica o quanto b difere de a. Você vai usá-la para verificar o quanto as variáveis imputadas mudam ao longo das iterações. Com base nisso, você decidirá quantas delas são necessárias!
As máscaras booleanas missing_air_temp e missing_humidity estão disponíveis para você, assim como o tao_imp inicializado por hot deck.
Este exercício faz parte do curso
Tratamento de Dados Ausentes com Imputações em R
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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)
}