测量两个变量之间任意非线性关系强度的方法?

机器算法验证 时间序列 相关性
2022-04-08 23:49:14

有哪些方法可以测量两个成对变量之间任意高度非线性关系的强度?我所说的高度非线性是指无法通过回归到已知模型来合理或可靠地建模的关系。我对时间序列特别感兴趣,但我想任何适用于双变量数据的东西都可以在这里工作(如果我们将两个时间序列视为一组数据点)

我知道的两个是均方差(即均方误差,将一个时间序列视为“预期”值,将一个视为观察值)和距离协方差还有哪些?

澄清:我基本上是在询问系列之间的依赖性,其中线性相关或简单的非线性相关(在 log、exp、trig、其他简单的分析转换之后)并没有多大意义。

4个回答

普通的旧线性回归具有很好的非参数解释,作为所有观察对的平均线性趋势;参见 Berman 1988,“雅可比定理及其推广”。因此,数据不必为了使用它而看起来是线性的;任何(大体上)单调趋势都可以这样总结。

您还可以使用 Spearman 等级相关性......除此之外可能还有很多其他东西。

两个离散变量之间的“关系量”X,Y互信息正式测量:I(X,Y). 虽然协方差/相关性在某种程度上是线性关系的数量,但互信息在某种程度上是(任何类型的)关系的数量。我正在粘贴维基百科页面的图片:

在此处输入图像描述

对于连续变量,通常也定义了信息论概念,但不太容易管理,可能意义不大。我暂时不想打扰。让我们坚持离散变量。无论如何,通过离散变量(使用切片)来近似连续变量是有意义的,尤其是在信息论方法中。

信息论概念的问题通常是它们的不切实际。能够近似之间的互信息XY与能够找到它们之间的任意非线性关系相同:您需要的统计功效(数据量)通常远远超出合理范围:对于任何可能的值x,您需要许多(比如 1000 个)样本来计算每个样本的估计值P(Y=y|X=x). 这在大多数机器学习或统计分析问题中是不可能的。这是合乎逻辑的:如果您允许模型能够表达“任何可能性”,那么它只能通过覆盖任何可能性的大量数据进行多次训练。

但是,对于低维变量,如果您强制执行低精度,也许这种方法是可能的:分解域XY分成足够小的切片,以便您的数据可以使用。无论如何,我认为这需要一些研究。

最终,单射函数的最一般形式是

f(x)=y

您可以使用该函数的离散版本作为数据模型。

然后问题减少到确定预期y对于不同的地区a<x<b.

由于模型中的高自由度,该方法并不强大。虽然,这也是问题所固有的,它需要在可以描述数据模型的函数类型中具有高度的自由度(和通用性)。

对于更具体的情况,可以进行改进。

需要一种快速计算的方法,类似于相关性,但可以检测例如二次关系。

在另一个答案中提到的 Spearman 相关性符合要求。它的计算方法是简单地将数据转换为等级,然后找到等级的 Pearson 相关性。它可以检测任何单调关联。

还有肯德尔相关性。Kendall 相关性有一个很好的解释,即(重新调整的版本)一个变量上的案例排名与另一个变量上的排名一致的概率。相比之下,Spearman 相关性有点不透明——谁会根据等级之间的线性关系来考虑数据?就计算复杂性而言,Kendall 相关性并不是“快速计算”(它是O(nlogn)斯皮尔曼是O(n)),但它不需要人工判断来计算,并且它已经在许多统计软件中实现,并且对于现代机器,除了最大的数据集外,无症状的复杂性不太重要。