GLM 缺失数据

机器算法验证 r 回归 广义线性模型 缺失数据
2022-03-22 02:56:11

我在做 GLM 时遇到了丢失数据的问题。我正在使用 GLM 在 R 中进行预测。我的因变量是连续的,我的自变量是因素。问题出现了,如何处理因子变量中的 NA 值。

我过去一直在做的是为 NA 制作一个单独的因子水平,然后将它与另一个具有相似 GLM 系数的因子相结合。但正如我所读到的,这可能会导致有偏见的结果。另外让我担心的是,如果某个变量中具有 NA 值的数据实际上应该都处于最低或最高级别怎么办?然后我丢弃额外的信息,做出过高或过低的预测,对吗?

一位同事建议的一种可能性是丢弃所有具有 NA 值的数据。但那样我可能会丢失太多数据。

在这种情况下处理丢失数据的推荐方法是什么?我读过有关插补的文章,但在我看来,这似乎会导致我在某些变量不重要时使它们变得重要(我已经手动将相似的变量组合在一起)。

1个回答

很大程度上取决于数据丢失的原因。有 3 种常见的缺失机制,完全随机缺失 (MCAR)、随机缺失 (MAR) 和非随机缺失 (MNAR)。

MCAR 意味着缺失值在该变量中随机出现,而不依赖于任何其他变量,无论是否观察到。

MAR 意味着缺失值在该变量中随机出现,但缺失的概率取决于一个或多个其他观察到的变量(可能包括您的结果变量)的值。

如果缺失取决于未观察到的变量,则数据不是随机缺失(MNAR)。

删除缺失数据的观察结果(称为完整案例分析或列表删除)至少是一个坏主意,因为它会丢弃导致更大标准误差、更宽置信区间和功率损失的信息。在 MCAR 下,估计值将是无偏的,但在 MAR 下,它们可能有偏差:

完整案例分析将注意力集中在所有变量都存在的案例上。这种方法的优点是...... 缺点源于丢弃不完整案例时可能丢失信息。这种信息丢失有两个方面:精度损失,以及缺失数据机制不是 MCAR 时的偏差,并且完整案例不是所有案例的随机样本”。

来自:缺失数据的统计分析,第二版,Roderick JA Little & Donald B Rubin,John Wiley and Sons,2002。p41: http ://dx.doi.org/10.1002/9781119013563

为缺失创建因子/指标/虚拟变量也是一种有偏的方法,例如参见:

白色红外,卡林 JB。与缺失协变量值的完整案例分析相比,多重插补的偏差和效率。统计医学 2010;29:2920-31。 http://dx.doi.org/10.1002/sim.3944

琼斯议员。多元线性回归中缺失解释变量的指标和分层方法。J Am Stat Assoc 1996;91:222-30。 http://dx.doi.org/10.1080/01621459.1996.10476680

如果数据可能是 MAR 或 MCAR,那么在正确应用时多重插补将产生无偏估计,并且标准误差将小于完整案例分析。如果缺失取决于未观察到的变量,则数据不是随机缺失(MNAR),这更难处理。

多重插补的工作原理是用模型中的合理值填充缺失值。这会进行多次,每次估算值都会有所不同,以允许不确定性。分析模型在每个估算的数据集上运行,并汇总结果。从本质上讲,该方法之所以有效,是因为一方面,虽然可以估计缺失数据的最可能值,但最可能的值实际上不太可能是正确值:存在固有的不确定性。每个完整数据集之间估算的值的可变性提供了反映缺失值产生的不确定性所需的不确定性。

MICE是一个优秀的 R 包,它实现了多重插补。 https://www.jstatsoft.org/index.php/jss/article/view/v045i03/v45i03.pdf

更新: 关于如何使用插补方法和MICE包处理 r 中缺失值的示例: https ://uvastatlab.github.io/2019/05/01/getting-started-with-multiple-imputation-in-r/