【问题标题】:Calculate the average of Spearman correlation计算 Spearman 相关性的平均值
【发布时间】:2018-01-01 05:59:00
【问题描述】:
我有 2 列 A 和 B,其中包含 Spearman 的相关值,如下所示:
0.127272727 -0.260606061
-0.090909091 -0.224242424
0.345454545 0.745454545
0.478787879 0.660606061
-0.345454545 -0.333333333
0.151515152 -0.127272727
0.478787879 0.660606061
-0.321212121 -0.284848485
0.284848485 0.515151515
0.36969697 -0.139393939
-0.284848485 0.272727273
如何在 Excel 或 Matlab 中计算这两列中这些相关值的平均值?我在这个链接中找到了一个接近的答案:https://stats.stackexchange.com/questions/8019/averaging-correlation-values
要点是在这种情况下我们不能使用均值或平均值,如链接中所述。他们提出了一个很好的方法来做到这一点,但我不知道如何在 Excel 或 Matlab 中实现它。
【问题讨论】:
标签:
excel
matlab
average
correlation
【解决方案1】:
根据您提供的link 的第二个答案,这是最一般的情况,您可以在 Matlab 中计算平均 Spearman rho,如下所示:
M = [0.127272727 -0.260606061;
-0.090909091 -0.224242424;
0.345454545 0.745454545;
0.478787879 0.660606061;
-0.345454545 -0.333333333;
0.151515152 -0.127272727;
0.478787879 0.660606061;
-0.321212121 -0.284848485;
0.284848485 0.515151515;
0.36969697 -0.139393939;
-0.284848485 0.272727273];
z = atanh(M);
meanRho = tanh(mean(z));
如您所见,它给出了
的平均值
meanRho =
0.1165 0.1796
而简单的平均值非常接近:
mean(M)
ans =
0.1085 0.1350
编辑:有关费舍尔变换的更多信息here。
【解决方案2】:
在 MATLAB 中,使用这些值定义一个矩阵并使用 mean 函数,如下所示:
%define a matrix M
M = [0.127272727 -0.260606061;
-0.090909091 -0.224242424;
0.345454545 0.745454545;
0.478787879 0.660606061;
-0.345454545 -0.333333333;
0.151515152 -0.127272727;
0.478787879 0.660606061;
-0.321212121 -0.284848485;
0.284848485 0.515151515;
0.36969697 -0.139393939;
-0.284848485 0.272727273];
%calculates the mean of each column
meanVals = mean(M);
结果
meanVals =
0.1085 0.1350
也可以按如下方式计算总均值和每一行的均值:
meanVals = mean(M); %total mean
meanVals = mean(M,2); %mean of each row