Python如何计算Rankits?

How to calculate Rankits with Python?

如何使用 Python 计算 Rankits?

https://en.wikipedia.org/wiki/Rankit

我特别想重现维基百科上的示例: 所以我搜索一个函数,它接受一个列表 [16, 22, 40, 43, 65, 75] 然后 returns 相应的 rankits:[−1.2672, −0.6418, −0.2016, 0.2016, 0.6418, 1.2672]

observation = [16, 22, 40, 43, 65, 75]
import numpy as np
import scipy.stats
def Q_Q_Prob(data):
    n = len(data)
    prob_level = []
    
    for i in range(1,n+1):
        prob_level.append(np.round((i-0.5)/n,5))
    Standard_normal_quantiles = scipy.stats.norm.ppf(prob_level)
    return Standard_normal_quantiles

print(Q_Q_Prob(observation))

这给出了书名中示例的准确结果:Applied Multivariate 统计分析(RICHARD A. JOHNSON),但没有给出上述示例的确切值。分享这个,因为这可能会给你一个想法。

我已经使用 R 确认了 Rakesh V 的回答,它给出了你的确切数字 tam tam。不知道为什么书中的结果不同:

x<-c(16,22,40,43,65,75)
qnorm((rank(x)-0.5)/length(x))
[1] -1.3829941 -0.6744898 -0.2104284  0.2104284  0.6744898  1.3829941