计算excel中spearman等级统计量的p值(使用vba或不使用vb​​a)

时间:2013-12-29 19:13:27

标签: excel vba statistics correlation rank

由于长期原因,我无法在此部分分析中使用SPSS或其他统计软件包。我有两个问题。

是否有自动排序数据的方法(我可以在以后分析)。我的变量放在一列(1,2,3,4,5,6 ......)中,它已经自行排序了。我的另一个变量可以具有1到5的离散值(例如1或2或3或4或5)。虽然在某种程度上这些已经排名,但它并没有像spearman所希望的那样排名。我想我可以写一些vba代码来自己排名,但如果有一种自动方式,那就更好了!

重要的是,我想要计算出spearman相关性的唯一原因是它允许我计算一个p值,它不会偏离非正态性。但是,所有在线指南都告诉我使用表来查看测试值是否低于P <0.05或某些等级的某个水平。如何根据excel中的N和Rho计算特定的p值?我假设某个地方有一个公式(我在教科书中找不到一个!)。

1 个答案:

答案 0 :(得分:4)

参考Wikipedia Example,我们可以使用下面的公式来计算自由度(ν),斯皮尔曼等级相关系数(ρ)和p值(使用t分布)。

x   y
106 7
86  0
100 27
101 50
99  28
103 29
97  20
113 12
112 6
110 17

ν    8             =COUNT(x)-2
ρ    -0.175757576  =CORREL(RANK.AVG(x,x,1),RANK.AVG(y,y,1))
Pval 0.686405828   =T.DIST(SQRT(ν*ρ^2/(1-ρ^2)),ν,1)

在上面的公式中,已定义的名称已被用于代替单元格引用。相对于A1,引用为:x=A2:A11, y=B2:B11, ν=B13, ρ=B14。 (希腊字母可以通过插入&gt;符号使用)

注意:这假定Excel 2010/13用于RANK.AVG / T.DIST函数(在VBA中使用rank_avg / t_dist)