分位数与ECDF结果比较

6

我尝试使用ecdf,但不确定是否正确。我的最终目的是找到与特定值对应的分位数。以一个例子来说明:

sample_set <- c(20, 40, 60, 80, 100) 
# Now I want to get the 0.75 quantile:
quantile(x = sample_set, probs = 0.75)
#result:
75% 
80
# Let's use ecdf
ecdf(x = sample_set) (80)
#result
0.8

为什么会出现这种差异?是我犯了一些微不足道的错误,还是取分位数的计算方式有所不同?

谢谢, Max


1
如果您查看plot(ecdf(x = sample_set)); abline(h = 0.75,col = "blue"),或许这些计算会更有意义?毫无疑问,这两个方向中的一个(或者两个)是不明确的...? - joran
1个回答

5

有两个要点。首先,正如您猜测的那样,它取决于quantile进行计算的方式。具体而言,它取决于参数type。您可能希望选择type = 1,因为这对应于经验分布函数的反函数(请参见?quantile)。其次,由于ecdf给出离散的阶梯函数,即ecdf不是严格递增的,因此由于quantile的定义方式(请参见第二个公式),您无法获得精确的相等性。


我猜你的意思是 ecdf 不是 严格 单调递增的。在通常使用的单调非递减的意义上,它是一个递增函数。 - A. Webb
@A.Webb,是的,那就是我想表达的意思。我会添加这个词以避免混淆。 - Julius Vainora

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接