【问题标题】:How does R handle missing values when matchingR在匹配时如何处理缺失值
【发布时间】:2021-12-23 22:50:39
【问题描述】:

我了解完全匹配的变量不能有 NA。这是否仅适用于处理过的,或者潜在控制也不允许使用 NA?

另外,R 如何处理不需要精确但只需要最接近的被处理变量的缺失值?

我正在使用 MatchIt,距离 = "mahalanobis"

【问题讨论】:

  • 这取决于.. R 有几个匹配的库。您使用的是哪一个?
  • 我正在使用 MatchIt,距离 = "mahalanobis"

标签: r matching


【解决方案1】:

让我们试试看会发生什么:

library(matchit); data("lalonde")
set.seed(123)
lalonde$age[sample(1:nrow(lalonde), 20)] <- NA

m.missing <- matchit(treat ~ age + educ + race + nodegree +
                        married + re74 + re75, data = lalonde,
                        distance = "mahalanobis", replace = TRUE,
                        exact = ~ married + race)

matchit 返回错误信息:

错误:协变量中不允许有缺失值。

在谷歌上搜索时,很容易发现 matchit 在缺失值的情况下不是好兆头。 [1][2]

如果您愿意放弃倾向得分的匹配,您可以考虑使用cem matching,它在某些情况下很自然地处理缺失值(但根据下面的@Noah 回答 ymmv)。根据companion paper(对长引用表示歉意)

在估计缺失数据中的因果效应时 价值观,不同的信息正在将应用研究人员置于一个 困难的位置。来自方法学家的一条关于因果的信息 观察数据的推论是匹配应该用于 在建模之前预处理数据。另一个消息是失踪 数据不应按列表删除,而应通过以下方式处理 多重插补或其他适当的统计方法(鲁宾 1987;金等人。 2001)。尽管大多数因果推理问题都有 一些缺失的数据,如何应用匹配并不明显,而 正确处理丢失的数据。确实,我们知道没有匹配 允许除列表之外的任何数据丢失的软件 匹配之前删除,并且没有丢失数据的软件进行 或允许匹配。因此,我们现在提供两个选项来同时使用 CEM 支持的相同分析;我们所有的软件实现 CEM 允许多重插补数据。

最简单的方法是将缺失值视为离散的 “观察到”值,然后将 CEM 与其他粗化一起使用 对于非缺失值。我们软件的默认操作使用 这种方法。然而,在某些情况下,我们可能希望自定义 这种方法通过粗化处理问题的实质 具有特定观察值的缺失值。例如,对于调查 关于受访者可能不完全熟悉的主题的问题, 答案“没有意见”和“中立”可能传达相似或在某些方面 案例相同的信息,因此分组的目的 匹配可能是一种合理的方法。由于原始值 这些变量仍将传递给分析模型,特别是 仍然可以使用程序来区分效果 两个不同的答案。

【讨论】:

  • cem 论文中描述的方法通常不是有效的,只能在他们描述的场景中使用(即,当缺失意味着类似于给定值的情况时)。否则,它假定变量上具有缺失值的所有单位都是同质的,并阻止匹配除缺失外相似的单位。多重插补一直被认为是解决匹配缺失的最佳方法,并且与引用相反,现在有软件可以实现它。
【解决方案2】:

MatchIt 不能与协变量或处理中的缺失值一起使用。如果多重插补的假设成立,您可以使用多重插补生成多个数据集并在每个数据集内执行匹配,然后使用特殊规则组合结果。

多重插补数据中的匹配是在MatchThem 包中实现的,它是MatchIt 的包装器。 MatchThem 中提供了所有 MatchIt 功能。有关使用 MatchThem 的介绍,请参阅 Pishgar et al. (2021)

【讨论】:

  • 感谢我编辑了我的答案
猜你喜欢
  • 1970-01-01
  • 2015-10-23
  • 2013-04-29
  • 2014-04-27
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 2011-07-17
相关资源
最近更新 更多