在计算相关矩阵时丢弃具有缺失值的观测值是否存在严重问题?

机器算法验证 r 相关性 缺失数据 相关矩阵
2022-03-28 02:36:58

我有这个庞大的数据集,其中包含 2500 个变量和 142 个观察值。

我想在变量 X 和其余变量之间建立相关性。但是对于许多列,缺少条目。

我尝试在 R 中使用“成对完整”参数 ( use=pairwise.complete.obs) 来执行此操作,它输出了一堆相关性。但是后来 StackOverflow 上的某个人发布了指向这篇文章的链接http://bwlewis.github.io/covar/missing.html,这使得 R 中的“pairwise-complete”方法看起来无法使用。

我的问题:我怎么知道什么时候适合使用“成对完成”选项?

use = complete.obs回来no complete element pairs了,所以如果你也能解释这意味着什么,那就太好了。

3个回答

成对完整观察的相关性问题

在您描述的情况下,主要问题是解释。因为您使用的是成对的完整观测值,所以实际上您正在为每个相关性分析略有不同的数据集,具体取决于缺少哪些观测值。

考虑以下示例:

a <- c(NA,NA,NA, 5, 6, 3, 7, 8, 3)
b <- c(2, 8, 3, NA,NA,NA, 6, 9, 5)
c <- c(2, 9, 6, 3, 2, 3, NA,NA,NA) 

数据集中的三个变量abc,每个变量都有一些缺失值。如果您在此处计算成对变量的相关性,您将只能使用两个相关变量都没有缺失值的案例。在这种情况下,这意味着您将仅分析与之间的相关性的最后 3 个案例,以及与之间的相关性ab前三个案例bc等等。

当您计算每个相关性时,您正在分析完全不同的情况,这意味着由此产生的相关性模式看起来很荒谬。看:

> cor(a,b, use = "pairwise.complete.obs")
[1] 0.8170572
> cor(b,c, use = "pairwise.complete.obs")
[1] 0.9005714
> cor(a,c, use = "pairwise.complete.obs")
[1] -0.7559289

这看起来像一个逻辑矛盾 ---ab是强正相关的,而且bc也是强正相关的,所以你会期望ac也是正相关的,但实际上在相反的方向上有很强的关联。你可以看到为什么很多分析师不喜欢这样。

编辑以包括来自 whuber 的有用说明:

请注意,部分论证取决于“强”相关性可能意味着什么。当和之间存在“在相反方向上的强关联”时, 和 和 很可能“强正相关” a并不本例中那样极端。问题的症结在于估计的相关(或协方差)矩阵可能不是正定的:这就是人们应该量化“强”的方式。bbcac

缺失类型的问题

你可能会想,“好吧,假设我可用于每个相关性的案例子集或多或少地遵循与我拥有完整数据时会得到的相同模式,难道不是可以吗?” 是的,这是真的——只要可用数据是随机的,计算数据子集的相关性从根本上没有错(尽管你会损失精度和功效,当然,因为样本量较小)如果您没有任何缺失,所有数据的样本。

当缺失是纯随机的,这称为 MCAR(完全随机缺失)。在这种情况下,分析没有缺失的数据子集不会系统地偏向您的结果,并且不太可能(但并非不可能)获得我在上面示例中展示的那种疯狂的相关模式。

当你的缺失以某种方式是系统性的(通常缩写为 MAR 或 NI,描述两种不同类型的系统缺失),那么你就会遇到更严重的问题,无论是在计算中可能引入偏差,还是在你概括你的能力方面结果到感兴趣的人群(因为您正在分析的样本不是来自人群的随机样本,即使您的完整数据集本来是)。

有很多很棒的资源可以用来了解丢失的数据以及如何处理它,但我的推荐是 Rubin: 一个经典的以及最近的一篇文章

一个巨大的问题是数据是否以某种系统的方式丢失,这会破坏您的分析。您的数据可能不是随机丢失的。

这是在以前的答案中提出的,但我想我会提供一个例子。

财务示例:缺少回报可能是糟糕的回报

  • 与共同基金不同,法律不要求私募股权基金(和其他私募基金)向某个中央数据库报告其回报。
  • 因此,一个主要的担忧是报告是内生的,更具体地说,一些公司不会报告不良回报。
  • 如果是这样,您报告的基金回报平均值高估真实均值,因为低往往会丢失。1niRiRi

在这些情况下不一定会丢失所有内容(您可以做一些事情),但是天真地对非缺失数据运行回归(或计算相关性)可能会导致对总体中真实参数的严重偏差、不一致的估计。

如果您的缺失数据是随机缺失完整 (MCAR),则成对相关是合适的。Paul Allison 的缺失数据一书是一个很好的起点。

您可以使用包中的 Little (1988) MCAR 测试进行测试BaylorEdPsych