我有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中实现它。
答案 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)
并复制以计算下一列的平均值。根据需要调整单元格范围。