成对完整观测值的相关性问题
在您描述的情况下,主要问题是解释。因为您使用的是成对的完整观测值,所以实际上您正在为每个相关性分析略有不同的数据集,具体取决于缺少的观测值。
考虑以下示例:
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)
数据集中的三个变量a
,b
和c
,每个人都有一些缺失值。如果您在此处计算变量对之间的相关性,那么您将只能使用没有两个相关变量都缺少值的案例。在这种情况下,这意味着你将成为之间的相关性分析刚刚过去3案件a
和b
刚刚在前三种情况下对之间的相关性,b
并且c
等
当您计算每个相关性时,您正在分析完全不同的情况,这意味着相关性的结果模式看起来很荒谬。看到:
> 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
这看起来像一个逻辑上的矛盾--- a
和b
强烈正相关,而b
和c
也强烈正相关,所以你可能认为a
和c
作为也呈正相关,但实际上是在相反的方向有很大的关系。您会看到为什么很多分析家都不喜欢这样。
编辑以包括来自whuber的有用说明:
请注意,部分论证取决于“强”相关性可能意味着什么。这是完全可能的a
和b
以及b
和c
,同时存在一个之间的“在相反方向上强关联”或“强正相关” a
和c
,但不是很极端如本例所示。问题的症结在于,估计的相关性(或协方差)矩阵可能不是正定的:这就是量化“强”的方式。
缺少类型的问题
您可能会想自己:“嗯,仅假设我可用于每个关联的案例子集或多或少地遵循与我拥有完整数据时所得到的模式相同的做法就可以了吗?” 是的,这是真的--- 只要数据是随机的,就可以计算数据子集的相关性并没有什么根本错误(尽管您会损失精度和功效,当然是因为样本量较小)。如果您没有任何遗漏,那么所有可能存在的数据的样本。
当缺失纯粹是随机的时,就称为MCAR(完全随机丢失)。在那种情况下,分析没有缺失的数据子集不会系统地偏向您的结果,并且不太可能(但并非不可能)获得我在上面的示例中显示的那种疯狂的关联模式。
当您的缺失以某种方式是系统性的(通常缩写为MAR或NI,描述了两种不同类型的系统性缺失)时,您将面临更严重的问题,既有可能在计算中引入偏差,也有可能使您的归纳能力下降感兴趣的总体的结果(因为您要分析的样本不是来自总体的随机样本,即使您的整个数据集都是如此)。
有很多有用的资源可用来了解丢失的数据以及如何处理它,但是我的建议是Rubin:
经典的,
以及最近的文章