计算斯皮尔曼相关的平均值

时间:2017-07-26 05:18:25

标签: excel matlab average correlation

我有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中实现它。

3 个答案:

答案 0 :(得分:1)

在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

答案 1 :(得分: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 :(得分:0)

您是否知道Excel具有计算平均值的功能?你可以使用

=AVERAGE(A1:A11)

并复制以计算下一列的平均值。根据需要调整单元格范围。