Bắt đầu ngayBắt đầu miễn phí

Phát hiện hội tụ

Bạn đã lặp qua các biến rất tốt ở bài trước! Nhưng cần bao nhiêu vòng lặp? Khi các giá trị bù không còn thay đổi ở vòng lặp mới, bạn có thể dừng lại.

Giờ bạn sẽ mở rộng mã để tính độ khác biệt giữa các biến đã bù ở các vòng lặp liên tiếp. Để làm điều này, bạn sẽ dùng hàm Mean Absolute Percentage Change, đã được định nghĩa sẵn như sau:

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

mapc() trả về một số duy nhất cho biết b khác a bao nhiêu. Bạn sẽ dùng nó để kiểm tra mức độ thay đổi của các biến đã bù qua các vòng lặp. Dựa trên đó, bạn sẽ quyết định cần bao nhiêu vòng lặp!

Các mặt nạ boolean missing_air_tempmissing_humidity đã có sẵn cho bạn, cũng như tao_imp được khởi tạo bằng hotdeck.

Bài tập này là một phần của khóa học

Xử lý dữ liệu khuyết bằng Imputation trong R

Xem khóa học

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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)

  
  
}
Chỉnh sửa và Chạy Mã