开始使用免费开始使用

检测收敛

上一题中您已经很好地在各变量间迭代了!但需要迭代多少次呢?当新一轮迭代后插补值不再变化时,就可以停止。

现在请扩展您的代码,计算相邻迭代中各插补变量的差异。为此,您将使用已为您定义好的平均绝对百分比变化(Mean Absolute Percentage Change)函数:

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

mapc() 会输出一个数,用来表示 b 相对 a 的差异幅度。您将用它来检查各插补变量在不同迭代间的变化程度。基于此,您可以判断需要迭代多少次!

布尔掩码 missing_air_tempmissing_humidity 以及使用 hotdeck 初始化的 tao_imp 数据已为您准备好。

本练习是课程的一部分

R 中的缺失值填补处理

查看课程

交互式实操练习

通过完成这段示例代码来试试这个练习。

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)

  
  
}
编辑并运行代码