为何quantile(c(0.1,0.2))会生成数据集中不存在的数值?
为什么
quantile(c(0.1,0.2))会生成输入数据中不存在的分位值? - R的
quantile()函数默认采用type=7的分位数计算方法,这个方法允许在数据点之间做线性插值,而非仅返回输入数据里的原始值。 - 你的输入数据是
c(0.1, 0.2),排序后就是这两个数值。默认情况下quantile()会计算0%、25%、50%、75%、100%这五个分位点:- 0%分位是数据最小值0.1,100%分位是最大值0.2,这两个都是原始数据里的数值。
- 25%分位:通过线性插值计算得出,公式为
0.1 + (0.2-0.1)*0.25 = 0.125 - 50%分位(中位数):取0.1和0.2的中间值,也就是0.15
- 75%分位:通过线性插值计算得出,公式为
0.1 + (0.2-0.1)*0.75 = 0.175
- 如果想让结果只包含输入数据里的原始值,可以指定不同的计算类型,比如执行
quantile(c(0.1,0.2), type=1),它会返回0% 25% 50% 75% 100%对应0.1 0.1 0.1 0.2 0.2,因为type=1会取不大于分位位置的最大观测值。
内容的提问来源于stack exchange,提问作者monotonic
相关产品推荐
相关产品推荐

