Mendeteksi konvergensi
Kerja bagus mengiterasi variabel pada latihan sebelumnya! Namun, berapa banyak iterasi yang diperlukan? Ketika nilai imputasi tidak berubah pada iterasi baru, kita dapat berhenti.
Sekarang Anda akan memperluas kode Anda untuk menghitung perbedaan antara variabel yang diimputasi pada iterasi-iterasi berikutnya. Untuk itu, Anda akan menggunakan fungsi Mean Absolute Percentage Change yang sudah didefinisikan untuk Anda sebagai berikut:
mapc <- function(a, b) {
mean(abs(b - a) / a, na.rm = TRUE)
}
mapc() menghasilkan satu angka yang memberi tahu Anda seberapa besar b berbeda dari a. Anda akan menggunakannya untuk memeriksa seberapa besar perubahan variabel hasil imputasi antariterasi. Berdasarkan hal ini, Anda akan memutuskan berapa banyak iterasi yang dibutuhkan!
Mask boolean missing_air_temp dan missing_humidity tersedia untuk Anda, begitu juga tao_imp yang sudah diinisialisasi dengan hotdeck.
Latihan ini adalah bagian dari kursus
Menangani Data Hilang dengan Imputasi di R
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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)
}