看,你会发现(相关性)


66

我有几百个测量值。现在,我正在考虑使用某种软件将每个度量与每个度量相关联。这意味着有成千上万的相关性。在这些数据中,即使数据是完全随机的(每个度量值仅包含约100个数据点),它们之间也应具有高度的相关性。

找到关联后,如何将有关如何寻找关联的信息纳入其中?

我的统计水平不高,请耐心等待。


5
这是为什么需要多重假设检验的一个很好的例子。

大概可以使用置换过程为最大相关性的重要阈值生成空分布,为第二最大相关性生成不同的阈值,依此类推。希望这在Python或R中只需要几个小时。(哈!最后一句著名的词。)但是,肯定有人已经这样做并将代码保存在某个地方了吗?

4
@tmo R在这台机器上需要18秒才能获得300 x 100矩阵的最大相关系数的零置换分布的1000个实现xcorrel <- function(x, k=1) { n <- dim(x)[2] * (dim(x)[2]-1) / 2; v <- cor(x); sort(v[lower.tri(v)])[(n-k+1):n] }; sim <- replicate(1000, correl(apply(x,2,sample)))
whuber

Answers:


74

这是一个很好的问题,值得一个明确的统计思想家,因为它认识到多重测试的一个微妙但重要的方面。

有一些标准方法可以调整多个相关系数的p值(或等效地扩大它们的置信区间),例如Bonferroni和Sidak方法(qv)。然而,由于通常必须在相关系数之间保持固有的数学关系,因此对于大的相关矩阵而言,这些过于保守。(有关这种关系的一些示例,请参阅最新问题和随之而来的线索。)处理这种情况的最佳方法之一是进行置换(或重采样)测试。。使用相关性很容易做到这一点:在测试的每次迭代中,只需随机加扰每个字段的值顺序(从而破坏任何固有的相关性)并重新计算完整的相关性矩阵即可。进行几千次迭代(或更多次迭代),然后例如通过给出其97.5和2.5个百分位数来总结相关矩阵项的分布:这些将用作零值下的相互对称的双向95%置信区间没有相关性的假设。(第一次使用大量变量进行操作时,即使没有固有的相关性,您也会惊讶于某些相关系数有多高。)

报告结果时,无论您执行什么计算,都应包括以下内容:

  • 相关矩阵的大小(,您查看了多少个变量)。

  • 如何确定任何相关系数的p值或“显着性”(例如,按原样保留它们,应用Bonferroni校正,进行置换测试等)。

  • 是否查看其他相关度量,例如Spearman等级相关。如果这样做了,还请说明为什么选择了您实际报告和使用的方法。


1
这是对p值调整方法的非常详尽的描述,但是未提及的是调整标准。传统上,这一直是家庭错误率。但这是一个严格的标准,当您查看成千上万的比较时没有用。在那种情况下,本杰米尼最初提出的错误发现率现在被普遍使用。
迈克尔·切尔尼克

CØ[R[RX1个ÿ1个CØ[R[RXñÿñX一世ÿ一世CØ[R[RX一世ÿĴ 一世Ĵ)?我们还需要更正吗?
亚瑟(Jase)2012年

@Jase是的,你知道。校正量取决于变量之间的相互关系。基于仿真的方法是确定这些更正的唯一可行方法。
ub

喔,不错。您讨论的这种方法是否还会纠正序列相关性和异方差问题的标准错误?
亚瑟(Jase)2012年

@Jase在异方差模型中很难解释相关系数。您的评论似乎是指时间序列设置中的线性模型,而不是多元相关系数的估计。
ub

10

从您对彼得·弗洛姆(Peter Flom)的问题的后续回答中,听起来好像您可以通过查看相关矩阵中更高层次结构的技术来更好地为您服务。

诸如因子分析,PCA,多维缩放和变量的聚类分析之类的技术可用于将变量分组为相关性相对较高的变量集。

另外,您可能需要从理论上考虑应该采用哪种结构。当变量数量很大而观察值数量很少时,通常最好还是更多地依赖先前的期望。


1
(+1)鉴于OP对@Peter Flom的回应,这是一个很好的建议。
ub

7

这是多个比较的示例。关于这方面有大量文献。

如果您有100个变量,则将有100 * 99/2 = 4950个相关性。

如果数据只是噪声,那么您会期望其中的20个中的1个在p = .05时很重要。那是247.5

不过,在继续之前,如果您可以说为什么这样做,那将是很好的。这些变量是什么,为什么要关联它们,您的实质思想是什么?

或者,您只是在寻求高相关性?


3
我之所以想这样做,是为了对我的数据有一个开放的胸怀,所以也许我以某种方式寻求相关性,这是我以前从未想过的,以便获得启发。我当然不是为了满足我的老板或某​​些专横的人。我不想深入了解数据的细节,因为我想对此问题有一个一般性的答案,因此我将来可以在所有情况下使用它。
大卫2010年

7

也许您可以对数据的随机子集进行初步分析,以形成假设,然后使用其余数据测试这几个感兴趣的假设。这样,您就不必为几乎相同数量的多重测试进行校正。(我认为...)

当然,如果使用这样的过程,则会减少用于最终分析的数据集的大小,从而降低发现真实效果的能力。但是,对多个比较进行更正也会降低功效,因此我不确定您是否一定会丢失任何东西。


5
(+1)一般来说,这是个好主意。但是,对于大的相关矩阵,统计数据太多,而且它们之间的虚假数量太大,通常需要进行调整。否则,您将追逐大量误导性的“重要”相关性,这些相关性仅会在保留数据中消失。(例如,使用50个不相关的标准正态变量进行数百次抽奖来进行模拟。这令人大开眼界。)
whuber
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.