【问题标题】:Correlation dependent on samples依赖于样本的相关性
【发布时间】:2015-04-08 11:28:12
【问题描述】:

我有一个变量 y,它依赖于一些变量 x1 ∈ [x1_min,x1_max], x2 ∈ [x2_min,x2_max], x3 ∈ [x3_min,x3_max] 并且 y 也可以是一个矩阵,即 y=y( x1,x2,x3)。我想检测 x1,x2,x3 中哪一个与确定 y 的值不太相关。

我在 Matlab 中使用以下代码:

x = rand(1000,3);  % x1, x2, x3 are the columns of x
y = fct(x);    % A generic function of x1, x2, x3
[corr_mat, p_val] = corrcoef(x,y);
[i,j] = find(p_val > 0.5);
disp([i,j])

问题在于生成的索引很大程度上取决于随机样本(即使我增加了样本数量)。如何获得更精确的测量值?

作为一个简单的替代示例,y=x1+x2+x3,其中 x1∈[50,80],x2∈[0,1],x3∈[0,1]。显然,y 的值更多地取决于 x1,而不是其他 2 个变量。如何量化这种依赖性?

提前谢谢你。

编辑:这就是我所说的“量化”或“相关性”。我想检测哪个变量决定了 y 的非常小的变化,即在前面的示例中,x2 和 x3 使 y 的变化小于 x1。

【问题讨论】:

  • 这只是一个想法,但标准差会有帮助吗? x1 的标准差比其他两个大。
  • @kkuila 我认为标准偏差不会有帮助。例如,假设有 x1∈[1000,1030]、x2∈[0,30]、x3∈[0,30],在这种情况下它们具有相同的标准差,但 x1 更相关。跨度>
  • 如果你这样做min(x) + std(x)?那么x1 的值将高于其他两个。我假设您说x1 更相关,因为最小值高于其他两个。只是一个想法。
  • 那么在这种情况下是的,但这只会解决具体的例子。我一直在寻找对 x1,x2,x3 的通用函数有效的东西,就像相关矩阵一样。唯一的问题是它非常依赖于采样。
  • 您能否详细说明在这个具体示例中相关性对您意味着什么? (用数学术语表述将是最好的)。根据您的 cmets,以下可能为您提供有用的相关性度量: x = [x1=mean(x1), x2=0, x3=0];测量 = fct(x) + dfct(x)/dx1*std(x1);

标签: matlab statistics correlation random-sample


【解决方案1】:

您需要使用协方差而不是相关系数。相关系数通过每个变量的方差进行归一化,以便在所有变量具有不同范围时给予相同的权重,这正是您要避免的。

x1 = 50+30*rand(1000,1); 
x2 = rand(1000,1); 
x3 = rand(1000,1); 

y = x1+x2+x3;

c=cov([x1 x2 x3 y]);
c(1:3,4) % Covariances of x[1-3] and y

【讨论】:

  • 感谢您的回答。我只是尝试按照您的建议进行操作,但在某些情况下结果仍然非常依赖于样本。我该如何解决?
  • 使用示例中的函数和范围,结果不应非常依赖于样本(您应该始终发现 x1 和 y 之间的协方差远大于 x2 和 y 之间或 x3 之间的协方差和 y)。当然,如果函数太复杂(不是线性的),它将不再起作用,但在这种情况下,您的问题没有明确的数学意义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-04
  • 2016-04-06
  • 1970-01-01
  • 2021-11-19
  • 1970-01-01
  • 1970-01-01
  • 2019-12-23
相关资源
最近更新 更多