如何测试两个连续变量是否独立?

机器算法验证 假设检验 参考 独立
2022-01-30 05:00:18

假设我有一个样本(Xn,Yn),n=1..N从联合分布XY. 我如何检验假设XY独立的吗?

没有对联合或边际分配规律作出任何假设XY(至少是联合正态性,因为在这种情况下,独立性与相关性相同0)。

没有假设之间可能的关系的性质XY; 它可能是非线性的,因此变量是不相关的(r=0) 但高度依赖(I=H)。

我可以看到两种方法:

  1. 对两个变量进行分箱并使用Fisher 精确检验G-test

    • 优点:使用完善的统计测试
    • 缺点:取决于分箱
  2. 估计依赖_XYI(X;Y)H(X,Y)(这是0对于独立XY1当他们完全确定对方时)。

    • 优点:产生一个具有明确理论意义的数字
    • Con:取决于近似熵计算(即再次分箱)

这些方法有意义吗?

人们还使用哪些其他方法?

4个回答

一般来说,这是一个非常困难的问题,尽管您的变量显然只有 1d,所以这会有所帮助。当然,第一步(如果可能的话)应该是绘制数据,看看是否有什么突然出现在你面前;你是二维的,所以这应该很容易。

以下是一些可行的方法Rn甚至更一般的设置:

  • 正如您所提到的,通过熵估计互信息。这可能是您的最佳选择;基于最近邻的估计器在低维度上做得很好,甚至直方图在 2d 中也不可怕。如果您担心估计错误,这个估计器很简单,并为您提供有限样本界限(大多数其他人只证明渐近性质):

    斯里查兰、莱奇和英雄。对熵泛函的经验估计充满信心。arXiv:1012.4188 [数学.ST]

    或者,有类似的互信息直接估计器,例如

    Pál、Póczos 和 Svepesári。基于广义最近邻图的 Rényi 熵和互信息估计,NIPS 2010。

  • Hilbert-Schmidt 独立标准:基于内核(在 RKHS 的意义上,而不是 KDE 的意义上)的方法。

    Gretton、Bousqet、Smola 和 Schölkopf,用 Hilbert-Schmidt 规范测量统计独立性,算法学习理论 2005。

  • Schweizer-Wolff 方法:基于 copula 变换,因此对单调递增变换是不变的。我对这个不是很熟悉,但我认为它在计算上更简单,但也可能不那么强大。

    Schweizer 和 Wolff,关于随机变量依赖的非参数测量,统计年鉴 1981。

Hoeffding 使用联合秩来检验两个连续变量的独立性的一般非参数检验H0:H(x,y)=F(x)G(y). 这个 1948 测试是在 RHmisc包的hoeffd函数中实现的。

这篇论文怎么样:

http://arxiv.org/pdf/0803.4101.pdf

“通过距离的相关性测量和测试依赖性”。Székely 和 Bakirov 总是有有趣的东西。

有实现的matlab代码:

http://www.mathworks.com/matlabcentral/fileexchange/39905-distance-correlation

如果您发现任何其他(易于实施)独立性测试,请告诉我们。

很少(从来没有?)在统计中,您可以证明您的样本统计量 = 一个点值。您可以针对点值进行测试并排除它们或不排除它们。但是统计的本质是它是关于检查可变数据的。因为总是存在差异,所以必然无法知道某些东西完全不相关,正常,高斯等。你只能知道它的一系列值。您可以知道某个值是否被排除在合理值的范围之外。例如,很容易排除没有关系并给出关系大小的值范围。

因此,试图证明没有关系,本质上的点值relationship = 0是不会成功的。如果您有一系列可以接受的关系度量,大约为 0。那么就有可能设计一个测试。

假设您可以接受该限制,这将对试图帮助您提供具有低曲线的散点图的人们有所帮助。由于您正在寻找 R 解决方案,请尝试:

scatter.smooth(x, y)

根据您迄今为止提供的有限信息,我认为广义加法模型可能是测试非独立性的最佳方法。如果你用 CI 围绕预测值绘制它,你可能能够就独立性信念做出陈述。查看gammgcv 包。帮助非常好,这里有关于CI的帮助。