开始使用免费开始使用

初始化缺失值与按变量迭代

正如您刚刚看到的,运行 impute_lm() 可能无法填充所有缺失值。为确保全部填补,您应先用一种简单方法进行初始化,例如上一章介绍的热平台(hot-deck)插补,它会将最近一次观测到的值向前填充。

此外,单次插补通常不够。它基于初始的简单值,可能带来偏倚。更合适的做法是按变量迭代,在那些最初缺失的位置逐个变量进行插补。

在本练习中,您将先用热平台插补初始化缺失值,然后在 tao 数据中对 air_temphumidity 进行 5 次循环,用线性回归来插补它们。开始吧!

本练习是课程的一部分

R 中的缺失值填补处理

查看课程

练习说明

  • 使用 hotdeck() 插补来初始化缺失值。
  • 为最初缺失的 humidity 创建一个布尔掩码,并将其赋给 missing_humidity
  • 在 for 循环中,利用您创建的布尔掩码,将 tao_imp 中对应位置的 humidity 设为 NA
  • 在 for 循环中,使用线性回归为 tao_imphumidity 进行插补,使用 yearlatitudesea_surface_tempair_temp 作为自变量,并将结果重新赋给 tao_imp

交互式实操练习

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

# Initialize missing values with hot-deck
tao_imp <- ___(tao)

# Create boolean masks for where air_temp and humidity are missing
missing_air_temp <- tao_imp$air_temp_imp
missing_humidity <- ___

for (i in 1:5) {
  # Set air_temp to NA in places where it was originally missing and re-impute it
  tao_imp$air_temp[missing_air_temp] <- NA
  tao_imp <- impute_lm(tao_imp, air_temp ~ year + latitude + sea_surface_temp + humidity)
  # Set humidity to NA in places where it was originally missing and re-impute it
  tao_imp$humidity[___] <- ___
  tao_imp <- ___(___, ___ ~ year + latitude + sea_surface_temp + ___)
}
编辑并运行代码