gpt4 book ai didi

math - 如何调整方程的系数以获得 y 和 x_i 之间的高相关性?

转载 作者:行者123 更新时间:2023-12-04 19:48:30 25 4
gpt4 key购买 nike

给定一组变量,x的。我想找到这个方程的系数值:

y = a_1*x_1 +... +a_n*x_n + c

哪里 a_1,a_2,...,a_n都是未知数。从数据框的角度考虑这一点,我想创建这个值 y对于数据中的每一行。

我的问题是:对于 y, a_1...a_nc都是未知数,有没有办法让我找到一套解决方案 a_1,...,a_ncorr(y,x_1), corr(y,x_2) .... corr(y,x_n)的条件下均大于 0.7。为简单起见,这里将相关性作为 Pearson 相关性。我知道不会有唯一的解决方案。但是如何为 a_1,...,a_n构建一套解决方案?满足这个条件?

花了一天时间搜索这个想法,但无法从中获得任何信息。欢迎任何解决此问题的编程语言,或至少为此提供一些引用。

最佳答案

不,这是不可能的。在某些特殊情况下可能是可能的。

给定 x₁, x₂, ... 你想找到 y = a₁x₁ + a₂x₂ + ... + c 以便 y 和 x 之间的所有相关性都大于某个目标 R。因为相关性是

Corr(y, xi) = Cov(y, xi) / Sqrt[ Var(y) * Var(xi) ]

你的约束是
Cov(y, xi) / Sqrt[ Var(y) * Var(xi) ] > R

可以重新排列为
Cov(y, xi)² > R² * Var(y) * Var(xi)

这需要对所有 i 都成立。

考虑只有两列 x₁ 和 x₂ 的简单情况,并进一步假设它们的均值为零(因此您可以忽略常数 c)和方差为 1,并且它们不相关。在这种情况下,y = a₁x₁ + a₂x₂,协方差和方差为
Cov(y, x₁) = a₁
Cov(y, x₂) = a₂
Var(x₁) = 1
Var(x₂) = 1
Var(y) = (a₁)² + (a₂)²

所以你需要同时满足
(a₁)² > R² * ((a₁)² + (a₂)²)
(a₂)² > R² * ((a₁)² + (a₂)²)

将这些不等式加在一起,你得到
(a₁)² + (a₂)² > 2 * R² * ((a₁)² + (a₂)²)

这意味着为了满足这两个不等式,您必须有 R < Sqrt(1/2) (通过消除不等式两边的公因数)。因此,在这个简单的情况下,您可以做的最好的事情是选择 a₁ = a₂(只要它们相等,确切的值就无关紧要)以及相关性 Corr(y,a₁) 和 Corr(y,a₂)将等于 0.707。在这种情况下,您无法同时在 y 和所有 x 之间实现高于此的相关性。

对于更一般的情况 n列(每个列的均值为零、方差为 1 和列之间的相关性为零)您无法同时实现大于 1 / sqrt(n) 的相关性(正如@kazemakase 在评论中指出的那样)。

一般来说,自变量越多,y 和 x 之间的相关性就越低。还有(虽然我上面没有提到)x 之间的相关性。如果它们通常呈正相关,您将能够在 y 和 x 之间实现更高的目标相关性。如果它们通常不相关或负相关,您将只能在 y 和 x 之间实现低相关性。

关于math - 如何调整方程的系数以获得 y 和 x_i 之间的高相关性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35219036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com