缺失值被认为是预测建模的首要障碍。因此,掌握克服这些问题的方法很重要。最近我们被客户要求撰写关于缺失值处理的研究报告,包括一些图形和统计输出。
估算缺失值的方法的选择在很大程度上影响了模型的预测能力。在大多数统计分析方法中,删除是用于处理缺失值的默认方法。但是,它会导致信息丢失。
在本文中,我列出了5个R语言方法。
通过链式方程进行的多元插补是R用户常用的。与单个插补(例如均值)相比,创建多个插补可解决缺失值的不确定性。
MICE假定缺失数据是随机(MAR)缺失,这意味着,一个值缺失概率上观测值仅取决于并且可以使用它们来预测。通过为每个变量指定插补模型,可以按变量插补数据。
例如:假设我们有X1,X2….Xk变量。如果X1缺少值,那么它将在其他变量X2到Xk上回归。然后,将X1中的缺失值替换为获得的预测值。同样,如果X2缺少值,则X1,X3至Xk变量将在预测模型中用作自变量。稍后,缺失值将被替换为预测值。
默认情况下,线性回归用于预测连续缺失值。Logistic回归用于分类缺失值。一旦完成此循环,就会生成多个数据集。这些数据集仅在估算的缺失值上有所不同。通常,将这些数据集分别构建模型并组合其结果被认为是一个好习惯。
确切地说,使用的方法是:
现在让我们实际操作。
- > path <- "../Data/Tutorial"
- > setwd(path)
-
- #读取数据
- > data <- iris
-
- #随机产生10%的缺失值
- > summary(iris)
-
- #随机产生10%的缺失值
- > iris.mis <- prodNA(iris, noNA = 0.1)
-
- #检查数据中引入的缺失值
- > summary(iris.mis)
我删除了分类变量。让我们在这里关注连续值。要处理分类变量,只需对