在回归中处理 NA ?? 数据标志?

机器算法验证 回归 缺失数据
2022-03-16 07:19:59

我现在正在处理一个包含大约 30 个不同变量的大数据集。几乎我的所有行在至少其中一行中都有缺失值。我想对几个变量进行回归。根据我对 R(或任何其他统计程序)的理解,它将丢弃任何变量中至少有一个 NA 的观察结果。有没有办法阻止 R 这样做?我的意思是可以让 R 忽略缺失的值,但仍然对剩余的值进行回归吗?

我的一位教授曾经告诉我,可以使用“数据标志”来创建当值为 NA 时等于 1 否则为零的虚拟变量。我会为每个带有 NA 的变量创建这些标志。然后我将 NA 设置为零,之后我可以在回归中包含标志。如果我没记错的话,就是这么告诉我的。我现在想用谷歌搜索这个过程,但我找不到任何东西。我这是一种合法的方法吗?是否有任何风险或其他问题?

如果是这样,还有其他解决方案吗?我知道插补和插值,我可以将其用于我的一些变量,但不是全部。

为了清楚起见,我的因变量中没有任何 NA。

3个回答

“标记方法”——通常称为“虚拟变量方法”或“指标变量方法”——主要用于编码具有不适用值的预测变量。它可用于对具有缺失值的预测变量进行编码;当您有兴趣对新数据集进行预测而不是对参数进行推断时,并且当您要进行预测的样本中假定缺失机制相同时。

问题是您正在拟合一个不同的模型,其中非缺失斜率不等于所有预测变量都非缺失的模型中的“真实”斜率。参见例如 Jones (1996), “Indicator and Stratification Methods for Missing Explanatory Variables in Multiple Linear Regression”, JASA , 91 , 433。(一个例外是在预测变量设计为正交的实验研究中。)

请注意,对于最大似然过程,您可以将缺失值设置为任意数字,而不仅仅是零。

† 假设感兴趣的模型是

η=β0+β1x1+β2x2
其中是线性预测器。现在引入作为中缺失的指标:模型变为ηx3x2

η=β0+β1x1+β2x2+β3x3

没有丢失时,您将设置为x2x30

η=β0+β1x1+β2x2

丢失时,您将设置为 &设置为任意常数x2x31x2c

η=β0+β1x1+β2c+β3

显然,当缺失时,的斜率不再以为条件;整体是条件斜率和边际斜率的平均值。一般来说x2x1x2β1β1β1

在回归过程中没有办法“忽略”缺失的数据。您可以估算缺失的数据,并且有很多关于 Crossvalidated 主题的参考文章。您描述的方法与我知道的程序不匹配。

我会提醒您不要用任意值(如 1、0、特征的平均值等)替换缺失值。数据缺失,不宜随意填写。

我采用的通常效果很好的方法是检查您的功能。您的一些特征很可能包含大量丢失的数据。如果是这种情况,请丢弃它们。尽管拥有更多功能通常很好,但如果其中大部分数据缺失,它们无论如何也不会增加太多价值。删除了缺失值最多的特征后,您现在可以删除包含剩余缺失值的行。通常这会给你留下足够的样本量。如果不是,请考虑插补技术。