今天纠结了一天的百分等级问题,现整理一下纠结成果:

由于Excel算出来的百分等级低于SPSS中的数值,因此开始了找原因的漫漫长路

后来搜索过程中,使用R中的:

rank(m1)/length(m1) ## 与spss一致,采用序位中值

 此时计算的结果和SPSS一致

后来发现dplyr包中有个函数叫,percent_rank()

这个函数算出来的百分等级和Excel一致,于是果断查看源代码

发现它是这么算的:

(min_rank(m1) - 1)/(sum(!is.na(m1)) - 1)

 可以看到,它使用的是序位的下界。

rank(m1,ties.method = \'min\')
rank(m1,ties.method = \'average\')

  R中 rank函数默认的是使用均值,因此第一种方法的结果会和SPSS一致,因此SPSS也是用的序位中值计算的秩。

而Excel中用的是最小的秩,而非均值。

具体为什么减一。。。还不知道

 

版权声明:本文为JoAnnal原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/JoAnnal/p/9057402.html