R 计算分位数错误或不同?
R calculates quantile wrong or different?
我发现一篇文章提供了计算分位数的算法,而 R 显然没有遵循那篇文章。
文章是:
https://www-users.york.ac.uk/~mb55/intro/quantile.htm
在 R 中,我有以下代码:
nv<-c(10,20,30,40)
quantile(nv)
0% 25% 50% 75% 100%
10.0 17.5 25.0 32.5 40.0
不过,75%结果的分位数好像是错误的
根据文章,公式为:
i = q(n+1)
在我的例子中 (75%) q=0.75 和 n=4(我的组合中有 4 个观察值)
X_j + (X_j+1 - X_j) times (i - j)
这意味着它应该是:
30 + (40-30)*(3.75-3) = 37.5 而不是 32.5
我很难认为是 R 弄错了。
我在这里错过了什么?
谢谢。
如果您查看 quantile
的帮助页面:
?quantile
您将看到分位数可以用不同的方式计算,可以使用 type =
参数指定,使用 1-9 的整数。
类型 6 给出了您期望的结果:
quantile(c(10, 20, 30, 40), type = 6)
0% 25% 50% 75% 100%
10.0 12.5 25.0 37.5 40.0
我发现一篇文章提供了计算分位数的算法,而 R 显然没有遵循那篇文章。
文章是: https://www-users.york.ac.uk/~mb55/intro/quantile.htm
在 R 中,我有以下代码:
nv<-c(10,20,30,40)
quantile(nv)
0% 25% 50% 75% 100%
10.0 17.5 25.0 32.5 40.0
不过,75%结果的分位数好像是错误的 根据文章,公式为:
i = q(n+1)
在我的例子中 (75%) q=0.75 和 n=4(我的组合中有 4 个观察值)
X_j + (X_j+1 - X_j) times (i - j)
这意味着它应该是:
30 + (40-30)*(3.75-3) = 37.5 而不是 32.5
我很难认为是 R 弄错了。
我在这里错过了什么?
谢谢。
如果您查看 quantile
的帮助页面:
?quantile
您将看到分位数可以用不同的方式计算,可以使用 type =
参数指定,使用 1-9 的整数。
类型 6 给出了您期望的结果:
quantile(c(10, 20, 30, 40), type = 6)
0% 25% 50% 75% 100%
10.0 12.5 25.0 37.5 40.0