수렴 감지하기
이전 연습 문제에서 변수들을 반복 처리하신 점 훌륭해요! 그런데 몇 번의 반복이 필요할까요? 새 반복에서 대치값이 더 이상 변하지 않으면 멈출 수 있어요.
이제 코드를 확장해 연속된 반복에서 대치된 변수들 간의 차이를 계산해 보겠습니다. 이를 위해 아래와 같이 정의된 평균 절대 백분율 변화 함수(Mean Absolute Percentage Change)를 사용할 거예요:
mapc <- function(a, b) {
mean(abs(b - a) / a, na.rm = TRUE)
}
mapc()는 b가 a와 얼마나 다른지를 나타내는 단일 숫자를 출력해요. 이를 사용해 반복(iteration)마다 대치된 변수들이 얼마나 변하는지 확인합니다. 이를 바탕으로 몇 번의 반복이 필요한지 판단할 거예요!
불리언 마스크 missing_air_temp와 missing_humidity, 그리고 hotdeck으로 초기화된 tao_imp 데이터가 준비되어 있어요.
이 연습은 강의의 일부입니다
R에서 대치(Imputation)로 결측치 다루기
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
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)
}